Page 1 of 1

[SOLVED] Available GPIOs when using the LCD shield

Posted: Fri Apr 14, 2017 8:26 pm
by mad_ady
I was thinking about addin a relay to my C2 which uses the LCD shield and I found out from the schematics that I have the following options:
1. J1 (the RTC connector) provides 2 I2C pins and one GPIO
2. J7 (I2S connector on the C2) provides 5 I2S pins. Can they be used as GPIO pins?

What about pins 8, 10, 26, 31, 35, 37 No connection. Can those pins be accessed somehow?

Thanks

Re: Available GPIOs when using the LCD shield

Posted: Sat Apr 15, 2017 12:22 am
by Bagman
2. J7 (I2S connector on the C2) provides 5 I2S pins. Can they be used as GPIO pins?
I am working to utilize the GPIO j7 Pins as well. i know the ODLib says you can use the j7, but i havent been able to access them in a meaningful way yet.

As far as i can see the accessible pins currently are (Pins 7,11,12,13,15,16,18,21,22,23,24,26,29,31,32,35,36) which includes 26, 31, 35 from your pin question.


If anyone knows how to utilize the j7 as GPIO with the ODLib please also let me know!

Re: Available GPIOs when using the LCD shield

Posted: Sat Apr 15, 2017 1:51 am
by mad_ady
I'll try next week (I access them via /sys) and report back

Re: Available GPIOs when using the LCD shield

Posted: Sat Apr 15, 2017 10:23 am
by odroid
You can't use GPIOs in J7 until you change the DT file to disable the I2S function.

Re: Available GPIOs when using the LCD shield

Posted: Sat Apr 15, 2017 12:34 pm
by Bagman
Ill assume that means i would need to do similar steps as

http://forum.odroid.com/viewtopic.php?f ... le#p179328

Re: Available GPIOs when using the LCD shield

Posted: Thu Apr 20, 2017 5:11 pm
by mad_ady
I installed

Code: Select all

sudo apt-get install device-tree-compiler
And used fdtdump /media/boot/meson64_odroidc2.dtb to list the device tree nodes. The I2S relevant nodes are:

Code: Select all

    I2S {
        compatible = "amlogic, aml-i2s-dai";
        #sound-dai-cells = <0x00000000>;
        resets = <0x0000000d 0x0000000d 0x0000000d 0x0000000d 0x0000000d 0x0000000d 0x00000463 0x5f627566 0x6c6b5f6d 0x6f320061 0x65725f72 0x6576656c 0x6e000000 0x0000000d 0x00000003 0x30006d63 0x0000004c 0x00000052 0x6932735f 0x00000003 0x6769632c 0x00000003>;
        reset-names = "top_glue", "aud_buf", "i2s_out", "amclk_measure", "aififo2", "aud_mixer", "mixer_reg", "adc", "top_level", "aoclk", "aud_in";
        clocks = <0x0000000d 0x00000003 0x30006d63 0x0000004c>;
        clock-names = "mpll0", "mclk";
        linux,phandle = <0x00000032>;
        phandle = <0x00000032>;
    };
    i2s_platform {
        compatible = "amlogic, aml-i2s";
        linux,phandle = <0x00000031>;
        phandle = <0x00000031>;
    };
How would one disable it? I'm guessing I'd need to set status = "disabled".

Code: Select all

# fdtput /media/boot/meson64_odroidc2.dtb /I2S status disabled
# fdtget /media/boot/meson64_odroidc2.dtb /I2S status
127
# fdtput /media/boot/meson64_odroidc2.dtb /i2s_platform status disabled
# fdtget /media/boot/meson64_odroidc2.dtb /i2s_platform status
127
The code above seems to disable i2s (I can't see any i2s output in dmesg after reboot): dmesg | grep -i i2s

And once it is disabled, what are the GPIO IDs that we can use?

Re: Available GPIOs when using the LCD shield

Posted: Thu Apr 20, 2017 5:18 pm
by odroid
Visit this link and scroll down little bit. And you can find GPIO numbers on J7 connector.
http://odroid.com/dokuwiki/doku.php?id= ... connectors

Re: Available GPIOs when using the LCD shield

Posted: Thu Apr 20, 2017 5:48 pm
by mad_ady
Thanks odroid, I missed that :)

I tested with the GPIOs, however GPIO #128 (GPIOAO.BIT6) can't be enabled:

Code: Select all

root@kbd:/sys/class/gpio# echo 128 > /sys/class/gpio/export
-su: echo: write error: Invalid argument
root@kbd:/sys/class/gpio# echo 130 > /sys/class/gpio/export
root@kbd:/sys/class/gpio# echo out > /sys/class/gpio/gpio130/direction 
root@kbd:/sys/class/gpio# echo 0 > /sys/class/gpio/gpio130/value
root@kbd:/sys/class/gpio# echo 1 > /sys/class/gpio/gpio130/value
root@kbd:/sys/class/gpio# echo 132 > /sys/class/gpio/export
root@kbd:/sys/class/gpio# echo out > /sys/class/gpio/gpio132/direction 
root@kbd:/sys/class/gpio# echo 0 > /sys/class/gpio/gpio132/value
root@kbd:/sys/class/gpio# echo 1 > /sys/class/gpio/gpio132/value
root@kbd:/sys/class/gpio# echo 131 > /sys/class/gpio/export
root@kbd:/sys/class/gpio# echo out > /sys/class/gpio/gpio131/direction 
root@kbd:/sys/class/gpio# echo 0 > /sys/class/gpio/gpio131/value
root@kbd:/sys/class/gpio# echo 1 > /sys/class/gpio/gpio131/value
root@kbd:/sys/class/gpio# echo 133 > /sys/class/gpio/export
root@kbd:/sys/class/gpio# echo out > /sys/class/gpio/gpio133/direction 
root@kbd:/sys/class/gpio# echo 0 > /sys/class/gpio/gpio133/value 
root@kbd:/sys/class/gpio# echo 1 > /sys/class/gpio/gpio133/value
The others work as expected.
Now, I only have to figure out how to hook the commands to update the dtb after every kernel update...

Re: Available GPIOs when using the LCD shield

Posted: Thu Apr 20, 2017 5:57 pm
by odroid
GPIOAO.BIT6 seems to be mapped to SPDIF output.
So you might need to find another item in the DT file.

Re: Available GPIOs when using the LCD shield

Posted: Thu Apr 20, 2017 6:04 pm
by mad_ady
Ok, quick update. Here's how to make it "stick" across kernel updates:
1. Install device-tree-compiler

Code: Select all

sudo apt-get install device-tree-compiler
2. Create a file called /etc/kernel/postinst.d/i2s-disable

Code: Select all

$ cat /etc/kernel/postinst.d/i2s-disable
#!/bin/bash

#disable i2s for Odroid C2 after each kernel update
#requires device-tree-compiler
# sudo apt-get install device-tree-compiler

echo "Disabling I2S support from the device tree"
/usr/bin/fdtput /media/boot/meson64_odroidc2.dtb /I2S status disabled
/usr/bin/fdtput /media/boot/meson64_odroidc2.dtb /i2s_platform status disabled
3. Mark the file as executable

Code: Select all

$ sudo chmod a+x /etc/kernel/postinst.d/i2s-disable
Now, when you install a new kernel, the file will be executed and will modify the new dtb:

Code: Select all

$ sudo apt-get install --reinstall linux-image-3.14.79-110
...
run-parts: executing /etc/kernel/postinst.d/i2s-disable 3.14.79-110 /boot/vmlinuz-3.14.79-110

Re: Available GPIOs when using the LCD shield

Posted: Thu Apr 20, 2017 6:09 pm
by mad_ady
odroid wrote:GPIOAO.BIT6 seems to be mapped to SPDIF output.
So you might need to find another item in the DT file.
I tried with

Code: Select all

fdtput /media/boot/meson64_odroidc2.dtb /SPDIF  status disabled
but I still can't export GPIO#128. Oh, well, no matter. I have the other 4 working. :)

Re: [SOLVED] Available GPIOs when using the LCD shield

Posted: Thu Apr 20, 2017 7:10 pm
by odroid
Ok.

Nice script to keep using the GPIO functionality. :D

Re: Available GPIOs when using the LCD shield

Posted: Fri Jan 18, 2019 7:56 pm
by Manikandan
mad_ady wrote:
Thu Apr 20, 2017 5:11 pm

Code: Select all

# fdtput /media/boot/meson64_odroidc2.dtb /I2S status disabled
# fdtget /media/boot/meson64_odroidc2.dtb /I2S status
127
# fdtput /media/boot/meson64_odroidc2.dtb /i2s_platform status disabled
# fdtget /media/boot/meson64_odroidc2.dtb /i2s_platform status
127
The code above seems to disable i2s (I can't see any i2s output in dmesg after reboot): dmesg | grep -i i2s
How to disable the UART Function?

Re: [SOLVED] Available GPIOs when using the LCD shield

Posted: Fri Jan 18, 2019 8:07 pm
by Manikandan
After Disabled how to enable it again.

Re: [SOLVED] Available GPIOs when using the LCD shield

Posted: Fri Jan 18, 2019 9:42 pm
by mad_ady
You may need to recompile uboot with uart moved to a different set of pins, and change the kernel boot arguments to have it use a different console.

Re: [SOLVED] Available GPIOs when using the LCD shield

Posted: Mon Jan 28, 2019 7:36 pm
by Manikandan
mad_ady wrote:
Fri Jan 18, 2019 9:42 pm
You may need to recompile uboot with uart moved to a different set of pins, and change the kernel boot arguments to have it use a different console.
Thank you for your support.

Re: [SOLVED] Available GPIOs when using the LCD shield

Posted: Sun Dec 01, 2019 3:37 am
by mad_ady
Well, time to revive this thread :)
Now that I hooked up a VU7A+ to my C2 that uses the 3.5¨ shield, I wanted to make use of the VU7A+ speakers/audio out. But guess what? I'm listening to the sound of silence... Not the song, the actual silence...

Code: Select all

root@uy-scuti:~# cat /proc/asound/cards                                       
 1 [Set            ]: USB-Audio - C-Media USB Headphone Set                        
                      C-Media USB Headphone Set at usb-dwc2_b-1.1.4, full speed    
root@uy-scuti:~# dmesg | grep -i hdmi                                              
[    0.000000] Kernel command line: root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro console=ttyS0,115200n8 console=tty0 no_console_suspend hdmimode=custombuilt modeline=1024,600,49000,37347,60,1024,1029,1042,1312,60
0,602,605,622,0,1,1 m_bpp=32 vout=hdmi fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=true max_freq=1752 maxcpus=4 monitor_onoff=false disableuhs=false mmc_removable=true usbmulticam=false usbhid.quirks=0x0eef:0x0005:0
x0004                                                                              
[    0.000000] logo: get hdmimode: custombuilt                                     
[    0.153416] hdmitx: system: amhdmitx_init                                       
[    0.153425] hdmitx: system: Ver: 2014May6
[    0.159178] hdmitx: system: amhdmitx_probe
[    0.159434] hdmitx hpd irq = 89
[    0.159634] hdmitx20: Mapped PHY: 0xc0800000
[    0.159646] hdmitx20: Mapped PHY: 0xc1104400
[    0.159668] hdmitx20: Mapped PHY: 0xc8100000
[    0.159678] hdmitx20: Mapped PHY: 0xc8834000
[    0.159688] hdmitx20: Mapped PHY: 0xc883a000
[    0.159698] hdmitx20: Mapped PHY: 0xc883c000
[    0.159712] hdmitx20: Mapped PHY: 0xd0100000
[    0.159723] hdmitx20: Mapped PHY: 0xda83a000
[    0.159738] hdmitx: alread display in uboot 0x10
[    0.166750] hdmitx: system: irq 80000002
[    0.483393] hdmitx: plugin
[    0.618893] hdmitx: edid: find IEEEOUT
[    0.618960] hdmitx: video: get current mode: null
[    0.618984] hdmitx tx_aud_src = 0
[    0.619016] hdmitx aud_n_para = 24576
[    0.619039] hdmitx set channel status
[    2.752910] hdmitx: system: irq 80000004
[    2.808714] hdmitx: system: irq 80000002
[    2.828840] hdmitx: system: irq 80000004
[    2.887200] hdmitx: system: irq 80000002
[    3.050227] hdmitx: video: get current mode: custombuilt
[    3.063234] hdmitx: video: get current mode: custombuilt
[    3.066617] hdmitx: system: already init VIC = 0  Now VIC = 790
[    3.072460] hdmitx: rx no SCDC present indicator
[    3.077029] hdmitx: system: irq 80000004
[    3.082926] hdmitx: ddc rd8b error 0x54 0x01
[    3.087149] hdmirx version is 1.4 or below
[    3.089187] hdmitx: system: set pll
[    3.092640] hdmitx: system: param->VIC:790
[    3.106779] hdmitx: set clk of VIC = 790 done
[    3.106827] hdmitx_set_hw[4470] set VIC = 790
[    3.130524] hdmitx: system: irq 2
[    3.235218] hdmitx: system: phy setting done
[    3.306607] Sink is HDMI device
[    3.333241] hdmitx tx_aud_src = 0
[    3.333841] hdmitx: system: irq 80000001
[    3.337740] hdmitx aud_n_para = 24576
[    3.341354] hdmitx set channel status
[    3.348765] hdmitx: warning: tvenc phy 27000 vid 54000 enc 27000 pix 27000 clocks not equal
[    3.357048] fb: vinfo 0 480i60hz, hdmi 7 720x480i60hz, 720x480-60 4:3 27000
[    3.363945] fb: warning: vinfo 1 480i_rpt, 720x480-60 4:3 27000, hdmi 11 no para
[    3.371277] fb: warning: vinfo 2 480cvbs, 720x480-60 4:3 27000, no hdmi vic
[    3.378179] fb: warning: vinfo 4 480p_rpt, 720x480-60 4:3 27000, hdmi 36 no para
[    3.385507] hdmitx: warning: tvenc phy 27000 vid 54000 enc 27000 pix 27000 clocks not equal
[    3.393791] fb: vinfo 5 576i50hz, hdmi 22 720x576i50hz, 720x576-50 4:3 27000
[    3.400767] fb: warning: vinfo 6 576i_rpt, 720x576-50 4:3 27000, hdmi 26 no para
[    3.408111] fb: warning: vinfo 7 576cvbs, 720x576-50 4:3 27000, no hdmi vic
[    3.415006] fb: warning: vinfo 9 576p_rpt, 720x576-50 4:3 27000, hdmi 38 no para
[    3.422351] fb: warning: vinfo 23 4k2k5g, 3840x2160-50 16:9 495000, no hdmi vic
[    3.429598] fb: warning: hdmi 109 (0x000 + 109) no video para
[    3.435288] hdmitx: warning: tvenc no clk for 109 hdmi
[    3.445882] fb: vinfo 29 4k1k120hz, hdmi 109 3840x1080p120hz, 3840x1080-120 32:9 594000
[    3.453830] fb: warning: vinfo 30 4k1k120hz420, 3840x1080-120 32:9 594000, no hdmi vic
[    3.461678] fb: warning: hdmi 110 (0x000 + 110) no video para
[    3.467364] hdmitx: warning: tvenc no clk for 110 hdmi
[    3.472458] fb: warning: hdmi 3840x1080-50 594000 != 3840x1080-100 594000 vinfo
[    3.485227] fb: vinfo 31 4k1k100hz, hdmi 110 3840x1080p100hz, 3840x1080-100 32:9 594000
[    3.493153] fb: warning: vinfo 32 4k1k100hz420, 3840x1080-100 32:9 594000, no hdmi vic
[    3.501014] fb: warning: vinfo 33 4k05k240hz, 3840x1080-240 64:9 594000, no hdmi vic
[    3.508685] fb: warning: vinfo 34 4k05k240hz420, 3840x540-240 64:9 594000, no hdmi vic
[    3.516538] fb: warning: vinfo 35 4k05k200hz, 3840x540-200 64:9 594000, no hdmi vic
[    3.524125] fb: warning: vinfo 36 4k05k200hz420, 3840x1080-200 64:9 594000, no hdmi vic
[    3.532054] hdmitx: warning: tvenc 51830 != 51450 hdmi
[    3.540853] fb: vinfo 41 1024x600p60hz, hdmi 772 1024x600p60hz, 1024x600-60 17:10 51450
[    3.548817] hdmitx: warning: 480x320p 800 263 0 tvenc !=
[    3.548819] hdmitx:          480x320p 800 525 0 hdmi
[    3.548822] hdmitx: warning: 100 120 95 8 100 4 tvenc !=
[    3.548824] hdmitx:          100 120 189 8 100 8 hdmi
[    3.548826] hdmitx: warning: tvenc TOTAL_LINES 263 != 320+107 (320+107) hdmi
[    3.548829] fb: vinfo 56 480x320p60hz, hdmi 787 480x320p60hz, 480x320-60 3:2 25200
[    3.548834] hdmitx: warning: 480x272p 800 263 0 tvenc !=
[    3.548835] hdmitx:          480x272p 800 525 0 hdmi
[    3.548837] hdmitx: warning: 100 120 119 8 100 4 tvenc !=
[    3.548839] hdmitx:          100 120 238 8 100 7 hdmi
[    3.548841] hdmitx: warning: tvenc TOTAL_LINES 263 != 272+131 (272+131) hdmi
[    3.548844] fb: vinfo 57 480x272p60hz, hdmi 788 480x272p60hz, 480x272-60 3:2 25200
[    3.548871] fb: warning: vinfo 62 wsxga, 1440x900-60 8:5 88750, no hdmi vic
[    3.548880] hdmitx: warning: tvenc no clk for 790 hdmi
[    3.548883] fb: vinfo 69 custombuilt, hdmi 790 custombuilt, 1024x600-60 16:9 49000
[    3.548886] fb: validating hdmi format tables
[    3.548889] fb: warning: hdmi 2 (0x000 + 2) no format para
[    3.548892] fb: warning: hdmi 6 (0x000 + 6) no format para
[    3.548895] hdmitx: warning: tvenc phy 27000 vid 54000 enc 27000 pix 27000 clocks not equal
[    3.548898] fb: info: hdmi 7 720x480i60hz, 1440x240-59 27000
[    3.548903] fb: warning: hdmi 17 (0x000 + 17) no format para
[    3.548906] fb: warning: hdmi 21 (0x000 + 21) no format para
[    3.548909] hdmitx: warning: tvenc phy 27000 vid 54000 enc 27000 pix 27000 clocks not equal
[    3.548912] fb: info: hdmi 22 720x576i50hz, 1440x288-50 27000
[    3.548945] fb: warning: hdmi 109 (0x000 + 109) no video para
[    3.548946] hdmitx: warning: tvenc no clk for 109 hdmi
[    3.548949] fb: info: hdmi 109 3840x1080p120hz, 3840x1080-120 594000
[    3.548951] fb: warning: hdmi 110 (0x000 + 110) no video para
[    3.548953] hdmitx: warning: tvenc no clk for 110 hdmi
[    3.548955] fb: info: hdmi 110 3840x1080p100hz, 3840x1080-50 594000
[    3.548957] fb: warning: hdmi 111 (0x000 + 111) no video para
[    3.548960] hdmitx: warning: 3840x1080p 4400 562 0 tvenc !=
[    3.548962] hdmitx:          3840x540p 4400 562 0 hdmi
[    3.548964] hdmitx: warning: tvenc TOTAL_LINES 562 != 1080+22 (1080+22) hdmi
[    3.548965] hdmitx: warning: tvenc no clk for 111 hdmi
[    3.548968] fb: info: hdmi 111 3840x540p240hz, 3840x540-120 594000
[    3.548970] fb: warning: hdmi 112 (0x000 + 112) no video para
[    3.548972] hdmitx: warning: 3840x1080p 5280 562 0 tvenc !=
[    3.548974] hdmitx:          3840x540p 5280 562 0 hdmi
[    3.548976] hdmitx: warning: tvenc TOTAL_LINES 562 != 1080+22 (1080+22) hdmi
[    3.548977] hdmitx: warning: tvenc no clk for 112 hdmi
[    3.548979] fb: info: hdmi 112 3840x540p200hz, 3840x540-50 594000
[    3.549017] fb: warning: hdmi 354 (0x100 + 98) no video para
[    3.549019] fb: warning: hdmi 354 (0x100 + 98) no format para
[    3.549026] hdmitx: warning: tvenc 51830 != 51450 hdmi
[    3.549028] fb: info: hdmi 772 1024x600p60hz, 1024x600-60 51450
[    3.549039] hdmitx: warning: 480x320p 800 263 0 tvenc !=
[    3.549041] hdmitx:          480x320p 800 525 0 hdmi
[    3.549043] hdmitx: warning: 100 120 95 8 100 4 tvenc !=
[    3.549045] hdmitx:          100 120 189 8 100 8 hdmi
[    3.549047] hdmitx: warning: tvenc TOTAL_LINES 263 != 320+107 (320+107) hdmi
[    3.549049] fb: info: hdmi 787 480x320p60hz, 480x320-60 25200
[    3.549052] hdmitx: warning: 480x272p 800 263 0 tvenc !=
[    3.549054] hdmitx:          480x272p 800 525 0 hdmi
[    3.549056] hdmitx: warning: 100 120 119 8 100 4 tvenc !=
[    3.549058] hdmitx:          100 120 238 8 100 7 hdmi
[    3.549060] hdmitx: warning: tvenc TOTAL_LINES 263 != 272+131 (272+131) hdmi
[    3.549062] fb: info: hdmi 788 480x272p60hz, 480x272-60 25200
[    3.549064] fb: found 226 valid hdmi format parameters
[    3.549086] fb: hdmi vic for 69 custombuilt is: 790
[    3.549088] fb: hdmi format para for 790 is: 790 custombuilt
[    3.549090] fb: hdmi format para for 790 is: 790 custombuilt
[    3.716977] hdmitx: system: irq 80000004
[    3.835460] hdmitx: system: irq 80000002
[    3.933165] hdmitx: system: irq 80000004
[    4.278923] cectx c810023c.aocec: aml_cec_probe(): can't find hdmirx
[    4.284071] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    4.284074] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    4.284089] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    4.287618] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    4.287621] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    4.287634] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    4.289541] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    4.289544] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    4.289556] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    4.360159] hdmitx: system: irq 80000002
[    4.365474] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    4.365476] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    4.365492] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    4.365633] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    4.365635] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    4.365642] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    4.413763] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    4.413765] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    4.413779] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    4.545754] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    4.545757] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    4.545766] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    4.965052] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    4.965055] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    4.965067] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    5.409666] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    5.416675] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    5.422665] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    5.436267] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    5.440859] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    5.450006] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    9.397586] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    9.404591] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    9.410616] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    9.450925] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    9.518332] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    9.518353] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    9.518577] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    9.518580] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    9.518587] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[    9.875118] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[    9.879473] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[    9.886627] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[   10.006027] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[   10.020958] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[   10.029317] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[   10.037387] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[   10.047149] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[   10.051588] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[   10.290858] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[   10.290861] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[   10.290895] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[   10.377555] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[   10.491051] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[   10.491074] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[   10.491334] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[   10.491337] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[   10.491348] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[   19.628028] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[   19.629852] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[   19.636310] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[   19.636639] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[   19.663416] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[   19.664051] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
[   19.699437] odroid_hdmi_snd odroid_hdmi: parse aml sound card routing error -517
[   19.701255] odroid_hdmi_snd odroid_hdmi: Can't probe snd_soc_card
[   19.707525] platform odroid_hdmi: Driver odroid_hdmi_snd requests probe deferral
root@uy-scuti:~# cat /proc/asound/cards
 1 [Set            ]: USB-Audio - C-Media USB Headphone Set
                      C-Media USB Headphone Set at usb-dwc2_b-1.1.4, full speed
root@uy-scuti:~# uname -a
Linux uy-scuti 3.16.75-47 #1 SMP PREEMPT Sat Oct 19 14:21:52 -03 2019 aarch64 aarch64 aarch64 GNU/Linux
root@uy-scuti:~# dmesg | grep i2s
root@uy-scuti:~#
So - because I disabled i2s a couple of years ago I seem to have killed HDMI audio in the process. I didn't need it till now.
So, I return to the original question... Can I free up J7 header (so that I can keep using my temperature sensor and heater relay board), but keep i2s enabled for HDMI? Or is the bus routed via hardware both to HDMI and J7 and there is no way to free the J7 pins without killing the bus?