Jump to content

robertoj

Members
  • Posts

    368
  • Joined

  • Last visited

Posts posted by robertoj

  1. 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)

    Spoiler
    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?

     

  2. 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:

    https://forum.armbian.com/topic/47971-driving-the-ili9488-lcd-40-inch-cheap-chinese-clone/#findComment-216779

     

    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)

  3. 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?

  4. 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)

  5. Interesting effect of changing the ili9488 10cm (4.0 inch) for a 9cm (3.5 inch) LCD, same resolution


    https://a.aliexpress.com/_mMKRqan

    https://a.aliexpress.com/_mqk0Qbv

    (I bought a similar with touch)


    maybe I need a different spi frequency

     

    update: 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!

     

    IMG_8196.jpeg

    IMG_8195.jpeg

  6. 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)

     

  7. 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

     

    https://github.com/robertojguerra/orangepi-zero-full-setup/blob/main/README2.md#10-activate-and-use-analog-audio

     

    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

  8. 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=m

     

    I found that the TheGoing repo has a two less patches applied... the zero 2w seems more relevant

    Spoiler

    roberto@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.patch

     

    IMPORTANT:

    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"

  9. 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:80

     

    PC7 and PC14 need to show this:

    pin 71 (PC7): GPIO 300b000.pinctrl:71
    pin 78 (PC14): GPIO 300b000.pinctrl:78

     

    dmesg 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.

  10. 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 supported

    Available 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

     

  11. 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

    Spoiler

    roberto@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 yuv420p

     

     

    I will try with an HDMI LCD now:

    Spoiler

    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.
    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?

  12. 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

  13. 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 :D... the touch screen is also working with the evtest command :) 

     

    I will post the whole DTS in my ili9488 thread :)

     

  14. 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

  15. 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

    Spoiler

    roberto@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 LOW

     

     

    With Linux 6.12, the device is gpiochip1

    Spoiler

    roberto@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 LOW

     

    With Linux 6.11, the GPIO lines for reset and command, and the SPI pins, are shown as connected to a function:

    Spoiler

    roberto@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 PI16

     

    But with Linux 6.12 (from NickA's github):

    Spoiler

    roberto@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 PI16

     

    I 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

    https://forum.armbian.com/topic/49331-nanopi-neo2-v11-how-to-control-otg-port-power-with-gpio-354/#findComment-210992

     

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines