

robertoj
-
Posts
368 -
Joined
-
Last visited
Content Type
Forums
Store
Crowdfunding
Applications
Events
Raffles
Community Map
Posts posted by robertoj
-
-
I received my new LCD today. It is a 9486 but luckily it worked with my 9488 dts
HOWEVER:
The touch xpt2046/ads7846 is not sending any events…checking with evtest… same dts works with the ili9488 4.0”
I already tried changing the GPIO polarity (level and clock transition)
has anyone worked with any of the red 3.5 lcd ili9488 or 9486
-
I don't think increasing the SPI clock can help
Try adding "BGR=<1>;" under the rotation line... this works for the ili9341, but i dont know about the driver that you use.
-
Great find.... this will be useful for me very soon
-
Try again with Linux 6.10 or older if you have an armbian img.
Two things I found needed for linux 6.12+:
1. Define the pinctrl-names and pinctrl-0 parameters
2. MAYBE: rebuild Armbian in your computer, with one less Armbian patch
As seen in:
In this thread, you can see how I detected miscofigurations of the SPI GPIO:
https://forum.armbian.com/topic/50418-dont-use-kernel-61216-on-sunxi64/page/2/#findComment-216924
WDR_s: did you try upgrading to Linux 6.12? (you could get H264 acceleration if you upgrade)
-
pithecanthrope,
That DTS is specific for the raspberry pi lcd... not for the red pcb ili9486. Do you have that?
You can name the DTS any filename, for example ~/ili9486/ili9486-35.dts
cd ~/ili9486-35
sudo armbian-add-overlay ili9486-35.dts
The command will also add it to armbianEnv.txt
Make sure to not add any other overlays related to SPI
It is very nice that the raspberry pi lcd doesn't need us to fabricate a custom cable, just plug it in the correct orientation.
Are you using Linux 6.12?
-
Start with a minimal image: no X11, no desktop
sudo systemctl list-units --type=service --all
Find those services you don't need, and "sudo systemctl disable <service>"
Is buildroot a nice experience like armbian?
-
I have an IoT project that uses an SPI LCD (480x320), showing 1 full screen application on top of X11, which starts automatically, almost in kiosk mode.
Is it worth a lot trying to switch to Wayland? I have 2 roadblocks, which I am trying to drill through:
* tkinter app re-write in pyqt
* starting from a minimal armbian image, and install the bare minimum to have wayland and start the app
Solid advantage:
* Future proofing the product
I have these preconceived advantages:
* less resources needed: my application is fine with an OrangePi Zero 3 with 1 GB RAM, I don't want to upgrade RAM
* faster startup (now I need to wait 1 minute from power-on to app ready to use, reducing it to 30 seconds would be nice)
I know that I can't expect these advantages, since I use SPI instead of HDMI or DSI:
* 30 FPS
* No frame tearing
But really, my main objective is faster startup: will Wayland help me with that? (without having disadvantageous side effects)
-
Can you connect with a USB-serial adapter, then run dmesg and look for error messages?
Maybe the power supplies are not isolated and by some bad luck, they are trying to push electrons to each other on the 0V wire. Try using the SSD without its own power supply.
-
I will get an ili9486 soon, but it is different to yours: it has a red PCB and does not have the serial-to-parallel chip like those made for raspberry.
-
Interesting effect of changing the ili9488 10cm (4.0 inch) for a 9cm (3.5 inch) LCD, same resolution
https://a.aliexpress.com/_mMKRqanhttps://a.aliexpress.com/_mqk0Qbv
(I bought a similar with touch)
maybe I need a different spi frequencyupdate: I changed 40 MHz to 60 MHz and my new LCD works perfectly:)
update: with 60 Hz, full screen video has a lot of noise and distortion. With 70Hz, there’s only white dots on black background
with 50hz, the console shows wrong colors and video is white noise
with 30 hz, console text and video are ok… but video looks 10 fps
the touch panel in the smaller 9cm LCD does not work. Do not buy it!
-
Nice find
I don't know why those changes happen... but we as bleeding edge linux users, must be aware of those things (by searching in the armbian forum... or sometimes in the raspberry forum)
-
With these instructions, you may get UART5 in ttyS1
https://forum.armbian.com/topic/43718-orange-pi-zero-3-issues-with-gps-on-uart/
https://forum.armbian.com/topic/44034-using-gpio-ports-on-orangepi-zero3/#comment-201030
-
The touch part is actually I2C, so the many DTS examples here will get you close to displaying stuff on the LCD, but not touch.
Pay attention to this thread in the raspberry forum... they have a LCD similar to yours 50% working (you will have to modify pin numbers to make it work with opiz2w)
https://forums.raspberrypi.com/viewtopic.php?p=2310966#p2310966
-
Danubio, build Armbian with latest Linux kernel 6.13, and see this old instruction I made for the opiz-lts audio… maybe it will help you for the opiz3
i just confirmed that opiz3 can play audio (alsa) with Linux 6.13.11.
mpv.conf must contain the line:
audio-device=alsa/plughw:CARD=Codec,DEV=0
-
When I start from scratch with TheGoing repo, linux 6.13.7, I apply my DTS, copy my firmware, and I get this DT (snipped in the area that counts)
Spoiler$ dtc -I fs -O dts /sys/firmware/devicetree/base
...
spi@5011000 {
pinctrl-names = "default";
#address-cells = <0x01>;
pinctrl-0 = <0x57>;
clock-names = "ahb\0mod";
resets = <0x02 0x1d>;
interrupts = <0x00 0x0d 0x04>;
clocks = <0x02 0x50 0x02 0x4e>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun50i-h616-spi\0allwinner,sun8i-h3-spi";
status = "okay";
reg = <0x5011000 0x1000>;
phandle = <0x76>;
dmas = <0x1c 0x17 0x1c 0x17>;
cs-gpios = <0x16 0x07 0x09 0x00 0x16 0x02 0x0f 0x00>;panel@0 {
format = "b6x2g6x2r6x2";
width-mm = <0x54>;
spi-max-frequency = <0x2625a00>;
reset-gpios = <0x16 0x02 0x0e 0x00>;
compatible = "panel-mipi-dbi-spi";
dc-gpios = <0x16 0x02 0x07 0x00>;
write-only;
reg = <0x00>;
phandle = <0xa3>;
height-mm = <0x38>;panel-timing {
vfront-porch = <0x00>;
vback-porch = <0x00>;
hsync-len = <0x00>;
vactive = <0x140>;
clock-frequency = <0x00>;
hactive = <0x1e0>;
vsync-len = <0x00>;
hback-porch = <0x00>;
hfront-porch = <0x00>;
};
};ads7846@1 {
ti,pressure-min = [00 00];
ti,y-max = [0f ff];
pinctrl-names = "default";
ti,pressure-max = [0f ff];
interrupts = <0x02 0x0a 0x02>;
spi-max-frequency = <0xf4240>;
interrupt-parent = <0x16>;
ti,x-min = [00 00];
compatible = "ti,ads7846";
pendown-gpio = <0x16 0x02 0x0a 0x01>;
ti,x-plate-ohms = [01 90];
reg = <0x01>;
ti,x-max = [0f ff];
phandle = <0xa4>;
ti,y-min = [00 00];
ti,swap-xy = <0x01>;
};
};And the LCD works.
And when I start from scratch from the Armbian repo, linux 6.13.11, I apply my DTS, copy my firmware, and get this Device Tree:
Spoiler...
spi@5011000 {
pinctrl-names = "default";
#address-cells = <0x01>;
pinctrl-0 = <0x62>;
clock-names = "ahb\0mod";
resets = <0x02 0x1d>;
interrupts = <0x00 0x0d 0x04>;
clocks = <0x02 0x50 0x02 0x4e>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun50i-h616-spi\0allwinner,sun8i-h3-spi";
status = "okay";
reg = <0x5011000 0x1000>;
phandle = <0x81>;
dmas = <0x22 0x17 0x22 0x17>;
cs-gpios = <0x1c 0x07 0x09 0x00 0x1c 0x02 0x0f 0x00>;panel@0 {
format = "b6x2g6x2r6x2";
width-mm = <0x54>;
spi-max-frequency = <0x2625a00>;
reset-gpios = <0x1c 0x02 0x0e 0x00>;
compatible = "panel-mipi-dbi-spi";
dc-gpios = <0x1c 0x02 0x07 0x00>;
write-only;
reg = <0x00>;
phandle = <0xae>;
height-mm = <0x38>;panel-timing {
vfront-porch = <0x00>;
vback-porch = <0x00>;
hsync-len = <0x00>;
vactive = <0x140>;
clock-frequency = <0x00>;
hactive = <0x1e0>;
vsync-len = <0x00>;
hback-porch = <0x00>;
hfront-porch = <0x00>;
};
};ads7846@1 {
ti,pressure-min = [00 00];
ti,y-max = [0f ff];
pinctrl-names = "default";
ti,pressure-max = [0f ff];
interrupts = <0x02 0x0a 0x02>;
spi-max-frequency = <0xf4240>;
interrupt-parent = <0x1c>;
ti,x-min = [00 00];
compatible = "ti,ads7846";
pendown-gpio = <0x1c 0x02 0x0a 0x01>;
ti,x-plate-ohms = [01 90];
reg = <0x01>;
ti,x-max = [0f ff];
phandle = <0xaf>;
ti,y-min = [00 00];
ti,swap-xy = <0x01>;
};
};But the GPIO pins PC7 and PC14 appear unclaimed (as seen in previous post), and the LCD remains white.
The linux build configs are practically the same (side in 6.13.11 has the error in SPI configuration)
Spoiler$ diff config-6.13.7-going config-6.13.11-official
3c3
< # Linux/arm64 6.13.7 Kernel Configuration
---
> # Linux/arm64 6.13.11 Kernel Configuration
20a21
> CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y
3012a3014
> CONFIG_RTL8189FS=m
5806d5807
< CONFIG_SND_SUN50IW9_CODEC=m
5820d5820
< CONFIG_SND_SOC_SUNXI_SUN50IW9_CODEC=mI found that the TheGoing repo has a two less patches applied... the zero 2w seems more relevant
Spoilerroberto@linux:~/armbian-theGoing/armbian-build/patch/kernel/archive/sunxi-6.13$ diff series.armbian ~/armbian-apr2025/build/patch/kernel/archive/sunxi-6.13/series.armbian
156c156
< - patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch
---
> patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch
168,169c168,170
< patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-234-ph-pg-uart-25-ph-pg.patch
< - patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch
---
> patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch
> patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch
> patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patchIMPORTANT:
I just added "-" before "patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch" in the:
build/patch/kernel/archive/sunxi-6.13/series.conf file, and I finally have the ili9488 LCD working with my ili9488-ads7846 DTS
My SBC is the OrangePiZero 3, and I select that specific SBC in the menuconfigs after starting "./compile.sh"
-
Help! My DTS, which used to work with 6.13 and 6.12 from the unofficial repo's from NickA and Going... are not working in the official armbian linux 6.13
This is an issue of not owning the DC and RESET pins, as seen in
Spoiler$ sudo cat /sys/kernel/debug/pinctrl/300b000.pinctrl/pinmux-pins
...
pin 64 (PC0): device 5010000.spi function spi0 group PC0
pin 65 (PC1): UNCLAIMED
pin 66 (PC2): device 5010000.spi function spi0 group PC2
pin 67 (PC3): device 5010000.spi function spi0 group PC3
pin 68 (PC4): device 5010000.spi function spi0 group PC4
pin 69 (PC5): UNCLAIMED
pin 70 (PC6): UNCLAIMED
pin 71 (PC7): UNCLAIMED
pin 72 (PC8): UNCLAIMED
pin 73 (PC9): UNCLAIMED
pin 74 (PC10): GPIO 300b000.pinctrl:74
pin 75 (PC11): UNCLAIMED
pin 76 (PC12): GPIO 300b000.pinctrl:76
pin 77 (PC13): GPIO 300b000.pinctrl:77
pin 78 (PC14): UNCLAIMED
pin 79 (PC15): GPIO 300b000.pinctrl:79
pin 80 (PC16): GPIO 300b000.pinctrl:80PC7 and PC14 need to show this:
pin 71 (PC7): GPIO 300b000.pinctrl:71
pin 78 (PC14): GPIO 300b000.pinctrl:78dmesg shows this error:
$ dmesg|grep spi
[ 1.911366] sun6i-spi 5010000.spi: Error applying setting, reverse things back
[ 1.911650] sun6i-spi 5011000.spi: Error applying setting, reverse things back
[ 1.917726] sun6i-spi 5010000.spi: Error applying setting, reverse things back
[ 1.918005] sun6i-spi 5011000.spi: Error applying setting, reverse things back...
The DTS I used is:
Spoiler/dts-v1/;
/plugin/;
/ {
compatible = "allwinner,sun50i-h616";
fragment@0 {
target = <&spi1>;
__overlay__ {
status = "okay";
pinctrl-names = "default"; //new for linux 6.13
pinctrl-0 = <&spi1_pins>; //new for linux 6.13
cs-gpios = <&pio 7 9 0>,<&pio 2 15 0>; // PH9=CS0 for lcd, PC15=CS1 for touch
panel: panel@0 {
compatible = "panel-mipi-dbi-spi";
reg = <0>;
spi-max-frequency = <40000000>;
width-mm=<84>;
height-mm=<56>;
reset-gpios = <&pio 2 14 0>; // PC14
dc-gpios = <&pio 2 7 0>; // PC7
write-only;
format = "b6x2g6x2r6x2";
panel-timing {
hactive = <480>;
vactive = <320>;
hback-porch = <0>;
vback-porch = <0>;
clock-frequency = <0>;
hfront-porch = <0>;
hsync-len = <0>;
vfront-porch = <0>;
vsync-len = <0>;
};
};ads7846: ads7846@1 {
compatible = "ti,ads7846";
reg = <1>;
pinctrl-names = "default";
spi-max-frequency = <1000000>;
interrupt-parent = <&pio>;
interrupts = <2 10 2>; /* PC10 - IRQ */
pendown-gpio = <&pio 2 10 1>; /* PC10 */
/* OPTIONS */
ti,x-min = /bits/ 16 <0>;
ti,y-min = /bits/ 16 <0>;
ti,x-max = /bits/ 16 <0xFFF>;
ti,y-max = /bits/ 16 <0xFFF>;
ti,pressure-min = /bits/ 16 <0>;
ti,pressure-max = /bits/ 16 <0xFFF>;
ti,x-plate-ohms = /bits/ 16 <400>;
ti,swap-xy = <1>;
};
};
};
};I think anyone with Linux 6.13 (armbian official) can try this DTS without an LCD connected to the orange pi zero 3... at this time, I only need that the PC7 and PC14 are owned by the SPI driver.
-
I confirm I got my Orange Pi Zero 3 playing hardware decoded videos:
* armbian official, built with the EDGE kernel 6.13.11, xfce environment
* followed all the instructions in the first post of this thread
* connected to a 1080p LCD monitor with HDMI
* MPV plays a 1080p video with frame "tearing" with a window 800 pixels height. CPU usage 25% in all 4 cores
* 720p video can be resized to almost full screen, but then it suffers tearing when resized larger. 10% to 15% CPU usage.
* with all videos, when I try to play full screen, MPV plays the video every other frame, and shows a static frame (the frame that was showing when I double-clicked for full screen)
UPDATE: without X11, to play videos on tty1, with an ili9488 LCD
* check what drm connections are available:
Spoiler$ mpv --drm-connector=help
Available connectors for card 0 (/dev/dri/card1):
SPI-1 (connected)Available connectors for card 1 (/dev/dri/card2):
Cannot retrieve DRM resources: Operation not supportedAvailable connectors for card 2 (/dev/dri/card0):
HDMI-A-1 (disconnected)* find your connected DRM device, and run mpv from SSH
$mpv --vo=drm --gpu-context=drm --drm-connector=SPI-1 myvideo.mp4 (+) Video --vid=1 (*) (h264 1920x1080 60.000fps) [vo/drm] VT_GETMODE failed: Inappropriate ioctl for device [vo/drm] Failed to set up VT switcher. Terminal switching will be unavailable. VO: [drm] 1920x1080 yuv420p
{plays video in tty1
}
A 360p video uses 15% in all cpus. 720p video->25% in all cpus. 1080p video->100% in all cpus
It might be related to the fact that the SPI port is not hardware accelerated for video, like HDMI... but I will keep trying to get results similar to 720p... like scaling and changing framerate from the mpv command
Press ctrl-c and mpv will exit
-
I tested NickA's armbian build, so I could get the cedrus+v4l2 improvements that would allow me to get h264 acceleration... but in my ili9488
I got these playback errors and 100% CPU usage with a 720p video in a 480x320 screen
Spoilerroberto@orangepizero3:~$ DISPLAY=:0.0 mpv donde\ venderan\ buen\ trago\ 720p.mp4
(+) Video --vid=1 (*) (h264 1280x720 29.970fps)
(+) Audio --aid=1 --alang=eng (*) (aac 2ch 44100Hz)
libEGL warning: DRI2: failed to authenticate
[vo/gpu/opengl] Suspected software renderer or indirect context.
[vo/gpu] VT_GETMODE failed: Inappropriate ioctl for device
[vo/gpu/opengl] Failed to set up VT switcher. Terminal switching will be unavailable.
[vo/gpu/opengl/kms] No connected connectors found
[vo/gpu/opengl] Failed to create KMS.
libEGL warning: DRI2: failed to authenticate
[vo/gpu-next/opengl] Suspected software renderer or indirect context.
[vo/gpu-next] Can't handle VT release - signal already used
[vo/gpu-next/opengl] Failed to set up VT switcher. Terminal switching will be unavailable.
[vo/gpu-next/opengl/kms] No connected connectors found
[vo/gpu-next/opengl] Failed to create KMS.
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[vo/vdpau] Error when calling vdp_device_create_x11: 1
[vo/xv] No Xvideo support found.
[vo/sdl] Using opengl
[vo/sdl] Warning: this legacy VO has bad performance. Consider fixing your graphics drivers, or not forcing the sdl VO.
[W][01554.919773] pw.conf | [ conf.c: 939 try_load_conf()] can't load config client.conf: No such file or directory
[E][01554.921633] pw.conf | [ conf.c: 963 pw_conf_load_conf_for_context()] can't load default config client.conf: No such file or directory
AO: [alsa] 44100Hz stereo 2ch float
VO: [sdl] 1280x720 yuv420pI will try with an HDMI LCD now:
SpoilerDISPLAY=:0.0 mpv donde\ venderan\ buen\ trago\ 720p.mp4
(+) Video --vid=1 (*) (h264 1280x720 29.970fps)
(+) Audio --aid=1 --alang=eng (*) (aac 2ch 44100Hz)
libEGL warning: DRI2: failed to authenticate
[vo/gpu/opengl] Suspected software renderer or indirect context.
[vo/gpu] VT_GETMODE failed: Inappropriate ioctl for device
[vo/gpu/opengl] Failed to set up VT switcher. Terminal switching will be unavailable.
Using hardware decoding (drm).
[W][00226.803020] pw.conf | [ conf.c: 939 try_load_conf()] can't load config client.conf: No such file or directory
[E][00226.803389] pw.conf | [ conf.c: 963 pw_conf_load_conf_for_context()] can't load default config client.conf: No such file or directory
AO: [alsa] 44100Hz stereo 2ch float
VO: [gpu] 1280x720 drm_prime[nv12]
[vo/gpu] Using HW-overlay mode. No GL filtering is performed on the video!
[vo/gpu] Failed to commit atomic request (-22)
AV: 00:00:00 / 00:04:18 (0%) A-V: -0.000
[vo/gpu] Failed to commit atomic request (-22)
AV: 00:00:00 / 00:04:18 (0%) A-V: -0.000
[vo/gpu] Failed to commit atomic request (-22)
AV: 00:00:00 / 00:04:18 (0%) A-V: -0.000
[vo/gpu] Failed to commit atomic request (-22)...
(typed command from an SSH session)
The HDMI LCD just turns black.
But I think this may be because I am using openbox... I think everyone else is using xfce
UPDATE: I installed the xfce environment, selected it, and I still get a black LCD screen...
I will try with the armbian official... does it now offer linux 6.13 with the edge kernel option?
-
The DTS I posted before works for up to Linux 6.11
If anybody wants to use ili9488 in Linux 6.13, this is the modified DTS to use:
Spoiler/dts-v1/; /plugin/; / { compatible = "allwinner,sun50i-h616"; fragment@0 { target = <&spi1>; __overlay__ { status = "okay"; pinctrl-names = "default"; //new for linux 6.13 pinctrl-0 = <&spi1_pins>; //new for linux 6.13 cs-gpios = <&pio 7 9 0>,<&pio 2 15 0>; // PH9=CS0 for lcd, PC15=CS1 for touch panel: panel@0 { compatible = "panel-mipi-dbi-spi"; reg = <0>; spi-max-frequency = <40000000>; width-mm=<84>; height-mm=<56>; reset-gpios = <&pio 2 14 0>; // PC14 dc-gpios = <&pio 2 7 0>; // PC7 write-only; format = "b6x2g6x2r6x2"; panel-timing { hactive = <480>; vactive = <320>; hback-porch = <0>; vback-porch = <0>; clock-frequency = <0>; hfront-porch = <0>; hsync-len = <0>; vfront-porch = <0>; vsync-len = <0>; }; }; ads7846: ads7846@1 { compatible = "ti,ads7846"; reg = <1>; pinctrl-names = "default"; spi-max-frequency = <1000000>; interrupt-parent = <&pio>; interrupts = <2 10 2>; /* PC10 - IRQ */ pendown-gpio = <&pio 2 10 1>; /* PC10 */ /* OPTIONS */ ti,x-min = /bits/ 16 <0>; ti,y-min = /bits/ 16 <0>; ti,x-max = /bits/ 16 <0xFFF>; ti,y-max = /bits/ 16 <0xFFF>; ti,pressure-min = /bits/ 16 <0>; ti,pressure-max = /bits/ 16 <0xFFF>; ti,x-plate-ohms = /bits/ 16 <400>; ti,swap-xy = <1>; }; }; }; };
Notice the new lines commented with "new for linux 6.13"
Remenber that the firmware file must be named panel-mipi-dbi-spi.bin and copied to /lib/firmware
I will test this with Linux 6.12 shortly... update: it works with linux 6.12.20 (The Going's repo) and 6.12.11 (NickA's repo, self built, not downloaded image)
For reference, I discuss the process of finding this solution here: https://forum.armbian.com/topic/50418-dont-use-kernel-61216-on-sunxi64/page/2/#findComment-215554
Update: this DTS works for Linux 6.12 and 6.13... but make sure to add "-" before "patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch"
in the build/patch/kernel/archive/sunxi-6.13/series.conf file then build your OS with ./compile.sh
-
Thank you for the suggestion
At first it didn't work... then I tried:
fragment@0 { target = <&spi1>; __overlay__ { status = "okay"; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&spi1_pins>; cs-gpios = <&pio 7 9 0>,<&pio 2 15 0>; // PH9=CS0 for lcd, PC15=CS1 for touch ...
Because I use non default CS pins
The ili9488 LCD is now working in linux 6.13
... the touch screen is also working with the evtest command
I will post the whole DTS in my ili9488 thread
-
Thank you. I will try it
When I helped someone with an orange pi zero 2w (same h618) there were some slight differences to access the spi… I wonder if i need the same changes for my opiz3
Update: the line compatible="armbian,spi-dev"; didnt work...
*The PH6,7,8 still show as unclaimed
*the /dev/input/event0 was not created by ads7846
*the /dev/fb0 was not created
These device files were created with my original DTS... but it appears the drivers think they have an SPI port for themselves, but not really.
UPDATE: here's a difference I saw in the DTS when using Linux 6.11 (spi working) vs Linux 6.12 (spi not working)
6.11:
Spoiler# dtc -I fs -O dts /sys/firmware/devicetree/base
...
pinctrl@300b000 {
vcc-pi-supply = <0x12>;
clock-names = "apb\0hosc\0losc";
gpio-controller;
interrupts = <0x00 0x33 0x04 0x00 0x34 0x04 0x00 0x35 0x04 0x00 0x2b 0x04 0x00 0x36 0x04 0x00 0x37 0x04 0x00 0x38 0x04 0x00 0x39 0x04>;
clocks = <0x02 0x1a 0x11 0x0b 0x00>;
compatible = "allwinner,sun50i-h616-pinctrl";
#interrupt-cells = <0x03>;
vcc-pc-supply = <0x12>;
reg = <0x300b000 0x400>;
phandle = <0x15>;
#gpio-cells = <0x03>;
vcc-pf-supply = <0x12>;
vcc-pg-supply = <0x13>;
interrupt-controller;
vcc-ph-supply = <0x12>;...
spi1-pins {
function = "spi1";
pins = "PH6\0PH7\0PH8";
phandle = <0x20>;
};6.12:
Spoiler# dtc -I fs -O dts /sys/firmware/devicetree/base
...
pinctrl@300b000 {
vcc-pi-supply = <0x11>;
clock-names = "apb\0hosc\0losc";
gpio-controller;
interrupts = <0x00 0x33 0x04 0x00 0x34 0x04 0x00 0x35 0x04 0x00 0x2b 0x04 0x00 0x36 0x04 0x00 0x37 0x04 0x00 0x38 0x04 0x00 0x39 0x04>;
clocks = <0x02 0x1a 0x10 0x0b 0x00>;
compatible = "allwinner,sun50i-h616-pinctrl";
#interrupt-cells = <0x03>;
vcc-pc-supply = <0x11>;
reg = <0x300b000 0x400>;
phandle = <0x14>;
#gpio-cells = <0x03>;
vcc-pf-supply = <0x11>;
vcc-pg-supply = <0x12>;
interrupt-controller;
vcc-ph-supply = <0x11>;...
spi1-pins {
function = "spi1";
pins = "PH6\0PH7\0PH8";
phandle = <0x50>;
};I see there's a difference in phandles... but maybe it is meant to be that way... since I see differences in spi0, which works
UPDATE: I tried with linux 6.13.7... it still didn't work.
UPDATE: when comparing the Device Trees, focusing in the SPI branch:
6.11 (working):
Spoiler# dtc -I fs -O dts /sys/firmware/devicetree/base
...
spi@5011000 {
pinctrl-names = "default";
#address-cells = <0x01>;
pinctrl-0 = <0x20>;
clock-names = "ahb\0mod";
resets = <0x02 0x1d>;
interrupts = <0x00 0x0d 0x04>;
clocks = <0x02 0x50 0x02 0x4e>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun50i-h616-spi\0allwinner,sun8i-h3-spi";
status = "okay";
reg = <0x5011000 0x1000>;
phandle = <0x6a>;
dmas = <0x1b 0x17 0x1b 0x17>;
cs-gpios = <0x15 0x07 0x09 0x00 0x15 0x02 0x0f 0x00>;6.12 (not working)
Spoiler# dtc -I fs -O dts /sys/firmware/devicetree/base
...
spi@5011000 {
#address-cells = <0x01>;
clock-names = "ahb\0mod";
resets = <0x02 0x1d>;
interrupts = <0x00 0x0d 0x04>;
clocks = <0x02 0x50 0x02 0x4e>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun50i-h616-spi\0allwinner,sun8i-h3-spi";
status = "okay";
reg = <0x5011000 0x1000>;
phandle = <0x6f>;
dmas = <0x1a 0x17 0x1a 0x17>;
cs-gpios = <0x14 0x07 0x09 0x00 0x14 0x02 0x0f 0x00>;Notice that in 6.12, the properties pinctrl-names and pinctrl-0 do not exist, but I used the same ili9488-ads7846.dts in both if them...
Does anybody know what may be happening? Or what's needed to add what is missing?
I added pinctrl-names = "default"; and pinctrl-0 = <0x20>; and I see these properties in my resulting device tree... but I still dont see PH6,7,8 owned, still unclaimed
-
On 12/13/2024 at 9:06 PM, mantouboji said:
edge 6.11.9 kernel
added symbolic link for overlay
Hello
Have you tried using the SPI pins under Linux 6.12?
Update: Opiz3 SPI pins work with Linux 6.12 and 6.13... but I needed 2 extra lines in the DTS. See: https://forum.armbian.com/topic/47971-driving-the-ili9488-lcd-40-inch-cheap-chinese-clone/#findComment-216779
-
I keep trying to make my ili9488 SPI LCD with Linux 6.12, from the image in NickA's github... with no success so far
Now I have a strong feeling that it is the gpiochip configuration, since I make this test in Linux 6.11 which works with my LCD
With Linux 6.11, the device is gpiochip0
Spoilerroberto@orangepizero3:~$ sudo cat /sys/kernel/debug/gpio
[sudo] password for roberto:
gpiochip0: GPIOs 0-287, parent: platform/300b000.pinctrl, 300b000.pinctrl:
gpio-71 ( |dc ) out hi
gpio-73 ( |interrupt ) in hi IRQ
gpio-74 ( |pendown ) in hi IRQ ACTIVE LOW
gpio-76 ( |red:status ) out lo
gpio-77 ( |green:power ) out hi
gpio-78 ( |reset ) out hi
gpio-79 ( |spi1 CS1 ) out hi ACTIVE LOW
gpio-80 ( |regulator-usb1-vbus ) out hi
gpio-166 ( |cd ) in lo ACTIVE LOW
gpio-210 ( |reset ) out hi ACTIVE LOW
gpio-226 ( |BLINK EXAMPLE LINES ) out lo
gpio-233 ( |spi1 CS0 ) out hi ACTIVE LOWWith Linux 6.12, the device is gpiochip1
Spoilerroberto@orangepizero3:~$ sudo cat /sys/kernel/debug/gpio
[sudo] password for roberto:
gpiochip1: GPIOs 0-287, parent: platform/300b000.pinctrl, 300b000.pinctrl:
gpio-73 ( |interrupt ) in hi IRQ
gpio-74 ( |pendown ) in hi IRQ ACTIVE LOW
gpio-76 ( |red:disk-activity ) out lo
gpio-77 ( |green:status ) out lo
gpio-79 ( |spi1 CS1 ) out hi ACTIVE LOW
gpio-80 ( |regulator-usb1-vbus ) out hi
gpio-166 ( |cd ) in lo ACTIVE LOW
gpio-210 ( |reset ) out hi ACTIVE LOW
gpio-233 ( |spi1 CS0 ) out hi ACTIVE LOWWith Linux 6.11, the GPIO lines for reset and command, and the SPI pins, are shown as connected to a function:
Spoilerroberto@orangepizero3:~$ sudo cat /sys/kernel/debug/pinctrl/300b000.pinctrl/pinmux-pins
Pinmux settings per pin
Format: pin (name): mux_owner|gpio_owner (strict) hog?
pin 0 (PA0): UNCLAIMED
pin 1 (PA1): UNCLAIMED
pin 2 (PA2): UNCLAIMED
pin 3 (PA3): UNCLAIMED
pin 4 (PA4): UNCLAIMED
pin 5 (PA5): UNCLAIMED
pin 6 (PA6): UNCLAIMED
pin 7 (PA7): UNCLAIMED
pin 8 (PA8): UNCLAIMED
pin 9 (PA9): UNCLAIMED
pin 10 (PA10): UNCLAIMED
pin 11 (PA11): UNCLAIMED
pin 12 (PA12): UNCLAIMED
pin 64 (PC0): device 5010000.spi function spi0 group PC0
pin 65 (PC1): UNCLAIMED
pin 66 (PC2): device 5010000.spi function spi0 group PC2
pin 67 (PC3): device 5010000.spi function spi0 group PC3
pin 68 (PC4): device 5010000.spi function spi0 group PC4
pin 69 (PC5): UNCLAIMED
pin 70 (PC6): UNCLAIMED
pin 71 (PC7): GPIO 300b000.pinctrl:71
pin 72 (PC8): UNCLAIMED
pin 73 (PC9): UNCLAIMED
pin 74 (PC10): GPIO 300b000.pinctrl:74
pin 75 (PC11): UNCLAIMED
pin 76 (PC12): GPIO 300b000.pinctrl:76
pin 77 (PC13): GPIO 300b000.pinctrl:77
pin 78 (PC14): GPIO 300b000.pinctrl:78
pin 79 (PC15): GPIO 300b000.pinctrl:79
pin 80 (PC16): GPIO 300b000.pinctrl:80
pin 96 (PD0): UNCLAIMED
pin 97 (PD1): UNCLAIMED
pin 98 (PD2): UNCLAIMED
pin 99 (PD3): UNCLAIMED
pin 100 (PD4): UNCLAIMED
pin 101 (PD5): UNCLAIMED
pin 102 (PD6): UNCLAIMED
pin 103 (PD7): UNCLAIMED
pin 104 (PD8): UNCLAIMED
pin 105 (PD9): UNCLAIMED
pin 106 (PD10): UNCLAIMED
pin 107 (PD11): UNCLAIMED
pin 108 (PD12): UNCLAIMED
pin 109 (PD13): UNCLAIMED
pin 110 (PD14): UNCLAIMED
pin 111 (PD15): UNCLAIMED
pin 112 (PD16): UNCLAIMED
pin 113 (PD17): UNCLAIMED
pin 114 (PD18): UNCLAIMED
pin 115 (PD19): UNCLAIMED
pin 116 (PD20): UNCLAIMED
pin 117 (PD21): UNCLAIMED
pin 118 (PD22): UNCLAIMED
pin 119 (PD23): UNCLAIMED
pin 120 (PD24): UNCLAIMED
pin 121 (PD25): UNCLAIMED
pin 122 (PD26): UNCLAIMED
pin 123 (PD27): UNCLAIMED
pin 124 (PD28): UNCLAIMED
pin 128 (PE0): UNCLAIMED
pin 129 (PE1): UNCLAIMED
pin 130 (PE2): UNCLAIMED
pin 131 (PE3): UNCLAIMED
pin 132 (PE4): UNCLAIMED
pin 133 (PE5): UNCLAIMED
pin 134 (PE6): UNCLAIMED
pin 135 (PE7): UNCLAIMED
pin 136 (PE8): UNCLAIMED
pin 137 (PE9): UNCLAIMED
pin 138 (PE10): UNCLAIMED
pin 139 (PE11): UNCLAIMED
pin 140 (PE12): UNCLAIMED
pin 141 (PE13): UNCLAIMED
pin 142 (PE14): UNCLAIMED
pin 143 (PE15): UNCLAIMED
pin 144 (PE16): UNCLAIMED
pin 145 (PE17): UNCLAIMED
pin 146 (PE18): UNCLAIMED
pin 147 (PE19): UNCLAIMED
pin 148 (PE20): UNCLAIMED
pin 149 (PE21): UNCLAIMED
pin 150 (PE22): UNCLAIMED
pin 160 (PF0): device 4020000.mmc function mmc0 group PF0
pin 161 (PF1): device 4020000.mmc function mmc0 group PF1
pin 162 (PF2): device 4020000.mmc function mmc0 group PF2
pin 163 (PF3): device 4020000.mmc function mmc0 group PF3
pin 164 (PF4): device 4020000.mmc function mmc0 group PF4
pin 165 (PF5): device 4020000.mmc function mmc0 group PF5
pin 166 (PF6): GPIO 300b000.pinctrl:166
pin 192 (PG0): device 4021000.mmc function mmc1 group PG0
pin 193 (PG1): device 4021000.mmc function mmc1 group PG1
pin 194 (PG2): device 4021000.mmc function mmc1 group PG2
pin 195 (PG3): device 4021000.mmc function mmc1 group PG3
pin 196 (PG4): device 4021000.mmc function mmc1 group PG4
pin 197 (PG5): device 4021000.mmc function mmc1 group PG5
pin 198 (PG6): UNCLAIMED
pin 199 (PG7): UNCLAIMED
pin 200 (PG8): UNCLAIMED
pin 201 (PG9): UNCLAIMED
pin 202 (PG10): UNCLAIMED
pin 203 (PG11): UNCLAIMED
pin 204 (PG12): UNCLAIMED
pin 205 (PG13): UNCLAIMED
pin 206 (PG14): UNCLAIMED
pin 207 (PG15): UNCLAIMED
pin 208 (PG16): UNCLAIMED
pin 209 (PG17): UNCLAIMED
pin 210 (PG18): GPIO 300b000.pinctrl:210
pin 211 (PG19): UNCLAIMED
pin 224 (PH0): device 5000000.serial function uart0 group PH0
pin 225 (PH1): device 5000000.serial function uart0 group PH1
pin 226 (PH2): GPIO 300b000.pinctrl:226
pin 227 (PH3): UNCLAIMED
pin 228 (PH4): UNCLAIMED
pin 229 (PH5): UNCLAIMED
pin 230 (PH6): device 5011000.spi function spi1 group PH6
pin 231 (PH7): device 5011000.spi function spi1 group PH7
pin 232 (PH8): device 5011000.spi function spi1 group PH8
pin 233 (PH9): GPIO 300b000.pinctrl:233
pin 234 (PH10): UNCLAIMED
pin 256 (PI0): device 5020000.ethernet function emac0 group PI0
pin 257 (PI1): device 5020000.ethernet function emac0 group PI1
pin 258 (PI2): device 5020000.ethernet function emac0 group PI2
pin 259 (PI3): device 5020000.ethernet function emac0 group PI3
pin 260 (PI4): device 5020000.ethernet function emac0 group PI4
pin 261 (PI5): device 5020000.ethernet function emac0 group PI5
pin 262 (PI6): UNCLAIMED
pin 263 (PI7): device 5020000.ethernet function emac0 group PI7
pin 264 (PI8): device 5020000.ethernet function emac0 group PI8
pin 265 (PI9): device 5020000.ethernet function emac0 group PI9
pin 266 (PI10): device 5020000.ethernet function emac0 group PI10
pin 267 (PI11): device 5020000.ethernet function emac0 group PI11
pin 268 (PI12): device 5020000.ethernet function emac0 group PI12
pin 269 (PI13): device 5020000.ethernet function emac0 group PI13
pin 270 (PI14): device 5020000.ethernet function emac0 group PI14
pin 271 (PI15): device 5020000.ethernet function emac0 group PI15
pin 272 (PI16): device 5020000.ethernet function emac0 group PI16But with Linux 6.12 (from NickA's github):
Spoilerroberto@orangepizero3:~$ sudo cat /sys/kernel/debug/pinctrl/300b000.pinctrl/pinmux-pins
Pinmux settings per pin
Format: pin (name): mux_owner|gpio_owner (strict) hog?
pin 0 (PA0): UNCLAIMED
pin 1 (PA1): UNCLAIMED
pin 2 (PA2): UNCLAIMED
pin 3 (PA3): UNCLAIMED
pin 4 (PA4): UNCLAIMED
pin 5 (PA5): UNCLAIMED
pin 6 (PA6): UNCLAIMED
pin 7 (PA7): UNCLAIMED
pin 8 (PA8): UNCLAIMED
pin 9 (PA9): UNCLAIMED
pin 10 (PA10): UNCLAIMED
pin 11 (PA11): UNCLAIMED
pin 12 (PA12): UNCLAIMED
pin 64 (PC0): device 5010000.spi function spi0 group PC0
pin 65 (PC1): UNCLAIMED
pin 66 (PC2): device 5010000.spi function spi0 group PC2
pin 67 (PC3): device 5010000.spi function spi0 group PC3
pin 68 (PC4): device 5010000.spi function spi0 group PC4
pin 69 (PC5): UNCLAIMED
pin 70 (PC6): UNCLAIMED
pin 71 (PC7): UNCLAIMED
pin 72 (PC8): UNCLAIMED
pin 73 (PC9): UNCLAIMED
pin 74 (PC10): GPIO 300b000.pinctrl:74
pin 75 (PC11): UNCLAIMED
pin 76 (PC12): GPIO 300b000.pinctrl:76
pin 77 (PC13): GPIO 300b000.pinctrl:77
pin 78 (PC14): UNCLAIMED
pin 79 (PC15): GPIO 300b000.pinctrl:79
pin 80 (PC16): GPIO 300b000.pinctrl:80
pin 96 (PD0): UNCLAIMED
pin 97 (PD1): UNCLAIMED
pin 98 (PD2): UNCLAIMED
pin 99 (PD3): UNCLAIMED
pin 100 (PD4): UNCLAIMED
pin 101 (PD5): UNCLAIMED
pin 102 (PD6): UNCLAIMED
pin 103 (PD7): UNCLAIMED
pin 104 (PD8): UNCLAIMED
pin 105 (PD9): UNCLAIMED
pin 106 (PD10): UNCLAIMED
pin 107 (PD11): UNCLAIMED
pin 108 (PD12): UNCLAIMED
pin 109 (PD13): UNCLAIMED
pin 110 (PD14): UNCLAIMED
pin 111 (PD15): UNCLAIMED
pin 112 (PD16): UNCLAIMED
pin 113 (PD17): UNCLAIMED
pin 114 (PD18): UNCLAIMED
pin 115 (PD19): UNCLAIMED
pin 116 (PD20): UNCLAIMED
pin 117 (PD21): UNCLAIMED
pin 118 (PD22): UNCLAIMED
pin 119 (PD23): UNCLAIMED
pin 120 (PD24): UNCLAIMED
pin 121 (PD25): UNCLAIMED
pin 122 (PD26): UNCLAIMED
pin 123 (PD27): UNCLAIMED
pin 124 (PD28): UNCLAIMED
pin 128 (PE0): UNCLAIMED
pin 129 (PE1): UNCLAIMED
pin 130 (PE2): UNCLAIMED
pin 131 (PE3): UNCLAIMED
pin 132 (PE4): UNCLAIMED
pin 133 (PE5): UNCLAIMED
pin 134 (PE6): UNCLAIMED
pin 135 (PE7): UNCLAIMED
pin 136 (PE8): UNCLAIMED
pin 137 (PE9): UNCLAIMED
pin 138 (PE10): UNCLAIMED
pin 139 (PE11): UNCLAIMED
pin 140 (PE12): UNCLAIMED
pin 141 (PE13): UNCLAIMED
pin 142 (PE14): UNCLAIMED
pin 143 (PE15): UNCLAIMED
pin 144 (PE16): UNCLAIMED
pin 145 (PE17): UNCLAIMED
pin 146 (PE18): UNCLAIMED
pin 147 (PE19): UNCLAIMED
pin 148 (PE20): UNCLAIMED
pin 149 (PE21): UNCLAIMED
pin 150 (PE22): UNCLAIMED
pin 160 (PF0): device 4020000.mmc function mmc0 group PF0
pin 161 (PF1): device 4020000.mmc function mmc0 group PF1
pin 162 (PF2): device 4020000.mmc function mmc0 group PF2
pin 163 (PF3): device 4020000.mmc function mmc0 group PF3
pin 164 (PF4): device 4020000.mmc function mmc0 group PF4
pin 165 (PF5): device 4020000.mmc function mmc0 group PF5
pin 166 (PF6): GPIO 300b000.pinctrl:166
pin 192 (PG0): device 4021000.mmc function mmc1 group PG0
pin 193 (PG1): device 4021000.mmc function mmc1 group PG1
pin 194 (PG2): device 4021000.mmc function mmc1 group PG2
pin 195 (PG3): device 4021000.mmc function mmc1 group PG3
pin 196 (PG4): device 4021000.mmc function mmc1 group PG4
pin 197 (PG5): device 4021000.mmc function mmc1 group PG5
pin 198 (PG6): device 5000400.serial function uart1 group PG6
pin 199 (PG7): device 5000400.serial function uart1 group PG7
pin 200 (PG8): device 5000400.serial function uart1 group PG8
pin 201 (PG9): device 5000400.serial function uart1 group PG9
pin 202 (PG10): device wifi-pwrseq function clock group PG10
pin 203 (PG11): UNCLAIMED
pin 204 (PG12): UNCLAIMED
pin 205 (PG13): UNCLAIMED
pin 206 (PG14): UNCLAIMED
pin 207 (PG15): UNCLAIMED
pin 208 (PG16): UNCLAIMED
pin 209 (PG17): UNCLAIMED
pin 210 (PG18): GPIO 300b000.pinctrl:210
pin 211 (PG19): UNCLAIMED
pin 224 (PH0): device 5000000.serial function uart0 group PH0
pin 225 (PH1): device 5000000.serial function uart0 group PH1
pin 226 (PH2): UNCLAIMED
pin 227 (PH3): UNCLAIMED
pin 228 (PH4): device 5093000.spdif function spdif group PH4
pin 229 (PH5): UNCLAIMED
pin 230 (PH6): UNCLAIMED
pin 231 (PH7): UNCLAIMED
pin 232 (PH8): UNCLAIMED
pin 233 (PH9): GPIO 300b000.pinctrl:233
pin 234 (PH10): device 7040000.ir function ir_rx group PH10
pin 256 (PI0): device 5020000.ethernet function emac0 group PI0
pin 257 (PI1): device 5020000.ethernet function emac0 group PI1
pin 258 (PI2): device 5020000.ethernet function emac0 group PI2
pin 259 (PI3): device 5020000.ethernet function emac0 group PI3
pin 260 (PI4): device 5020000.ethernet function emac0 group PI4
pin 261 (PI5): device 5020000.ethernet function emac0 group PI5
pin 262 (PI6): UNCLAIMED
pin 263 (PI7): device 5020000.ethernet function emac0 group PI7
pin 264 (PI8): device 5020000.ethernet function emac0 group PI8
pin 265 (PI9): device 5020000.ethernet function emac0 group PI9
pin 266 (PI10): device 5020000.ethernet function emac0 group PI10
pin 267 (PI11): device 5020000.ethernet function emac0 group PI11
pin 268 (PI12): device 5020000.ethernet function emac0 group PI12
pin 269 (PI13): device 5020000.ethernet function emac0 group PI13
pin 270 (PI14): device 5020000.ethernet function emac0 group PI14
pin 271 (PI15): device 5020000.ethernet function emac0 group PI15
pin 272 (PI16): device 5020000.ethernet function emac0 group PI16I had a pending task to check that all the patches for SPI are included in my build... so I check the source code:
armbian-nickA-20250306/build/patch/kernel/archive/sunxi-6.12/series.conf
And I see that very few patches that are excluded... none of them relate to SPI... I don't know how to make the SPI work in Linux 6.12 as well as it does in Linux 6.12
Am i doing this right?
UPDATE: I tried the same DTS, as shown in https://forum.armbian.com/topic/47971-driving-the-ili9488-lcd-40-inch-cheap-chinese-clone/#findComment-208446
with TheGoing build system in his github https://github.com/The-going/armbian-build/tree/main-sunxi-6.12
... and I still see the SPI pins PH6,7,8 as unclaimed
Is anyone able to use the H618 SPI pins in Linux 6.12.x?
UPDATE: in this thread, people discuss the gpiochip0 vs gpiochip1 as a sign that the driver is not "occupying" the GPIO, and a DTS change may be needed
-
Can you tell us what you did?
diff old.dts new.dts
Driving the ili9488 LCD (4.0 inch cheap chinese clone)
in Allwinner sunxi
Posted · Edited by robertoj
Does anyone know if the spi-cpol and spi-cpha parameters are applicable in the ads7846 part of the DTS?
I have seen cpol in an LCD discussion here:
https://forum.armbian.com/topic/38896-orange-pi-lite-problem-with-latest-firmware/#findComment-191293
I am running out of ideas to try to make touch work... I can also try using gpio-spi.ko
I need to check that the IRQ pin is changing from 3.3 to 0V... if I connect a LED to it, will it be a 0.0V pulse or held low while I press my finger?
I learnt that /proc/interrupts can tell me if the IRQ input is seeing something... and I can see the number increase each time I press my finger on the screen:
(see the line that ends with ads7846)
roberto@orangepizero3:~$ cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 12: 36456 16042 18786 33391 GICv2 30 Level arch_timer 15: 1 0 0 0 GICv2 74 Level 3002000.dma-controller 16: 0 0 0 0 GICv2 93 Level 30f0000.iommu 17: 0 0 0 0 GICv2 136 Level 7000000.rtc 18: 40 0 0 0 GICv2 123 Level sun8i-ce-ns 19: 0 0 0 0 GICv2 172 Level arm-pmu 20: 0 0 0 0 GICv2 173 Level arm-pmu 21: 0 0 0 0 GICv2 174 Level arm-pmu 22: 0 0 0 0 GICv2 175 Level arm-pmu 23: 0 0 0 0 GICv2 98 Level 6515000.lcd-controller 24: 0 0 0 0 GICv2 95 Level 6000000.hdmi, dw-hdmi-cec 25: 706 0 0 0 GICv2 137 Level mv64xxx_i2c 26: 7068 0 0 0 GICv2 51 Level ths 76: 1 0 0 0 sunxi_pio_level 41 Level axp313a_irq_chip 77: 19 0 0 1 sunxi_pio_edge 42 Edge ads7846 299: 2280 0 0 3649 GICv2 67 Level sunxi-mmc 300: 6 0 0 0 GICv2 32 Level ttyS0 301: 9691 0 0 0 GICv2 68 Level sunxi-mmc
https://forums.raspberrypi.com/viewtopic.php?t=187023&start=25
Is there any way to debug the ads7846 kernel module?
I have seen this J1jumper mentioned here:
https://forum.arduino.cc/t/solved-3-5-tft-not-stable-at-power-up/684536/19
"if you jumper J1, you feed it with 3.3V"
I power it with 3.3V and the J1 contacts are disconnected... so maybe the 7846 is undervolted... does anyone have experience with this?