Jetpack 4.4 enables MCLK and i2s4 pins by modifying u-boot, but I can’t modify it in jetpack 4.5. What can I do for you?
Hello!
JP4.5 provides the jetson-io tool for configuring the pins on the 40-pin header. To enable the pins you just need to execute the following on the target …
$ sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s4 aud_mclk
$ sudo reboot
To list all available functions that can be enabled on the 40-pin header …
$ sudo /opt/nvidia/jetson-io/config-by-function.py -l all
To list all enabled functions that can be enabled on the 40-pin header …
$ sudo /opt/nvidia/jetson-io/config-by-function.py -l enabled
Regards,
Jon
Hi!
After I execute
$ sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s4 aud_mclk
$ sudo reboot
,I can’t start the machine. The display is as follows
Hello!
That is not expected. I have tried this on my Jetson Nano and it works fine. The release I am using is …
$ cat /etc/nv_tegra_release
# R32 (release), REVISION: 5.1, GCID: 26202423, BOARD: t210ref, EABI: aarch64, DATE: Fri Feb 19 16:45:52 UTC 2021
Have you made any other modifications to device-tree and/or the kernel? If so you may wish to try again without any previous modifications.
Regards,
Jon
Hi!
I modified the devicetree, tegra210-porg-p3448-common.dtsi, as follows:
sdhci@700b0400 {
-
/*status = "disabled";*/
-
};status = "okay"; /delete-property/ keep-power-in-suspend; /delete-property/ non-removable; mmc-ddr-1_8v; mmc-ocr-mask = <3>; uhs-mask = <0x0>; tap-delay = <3>;
That’s why I failed,In this case, what should I do?
Hello!
Are you able to revert the change?
Jon
Hi!
Sorry! I can’t because we need this support sd!
Hello!
I mean can you try reverting this to see if it is the problem or not.
Jon
P3448-SD can execute commands
sudo /opt/nvidia/jetson-io/jetson-io.py
But p3448-EMMC doesn’t work
Hello!
Yes that is correct. The jetson-io tool is primarily for the Jetson DevKits. For Jetson Nano the DevKits ship with the SD-card variant. If you have an eMMC variant of the module, then unfortunately the only way to re-configure the pinmux is by following this guide.
Regards,
Jon
Hi!
I set i2s4 and MCLK, and modify them as follows: pinmux_ default: common {
/* SFIO Pin Configuration */
aud_ mclk_ pbb0 {
nvidia,pins = “aud_ mclk_ pbb0”;
nvidia,function = “aud”;
nvidia,pull = <TEGRA_ PIN_ PULL_ NONE>;
nvidia,tristate = <TEGRA_ PIN_ DISABLE>;
nvidia,enable-input = <TEGRA_ PIN_ DISABLE>;
};
…
dap4_ din_ pj5 {
nvidia,pins = “dap4_ din_ pj5”;
nvidia,function = “i2s4b”;
nvidia,pull = <TEGRA_ PIN_ PULL_ NONE>;
nvidia,tristate = <TEGRA_ PIN_ DISABLE>;
nvidia,enable-input = <TEGRA_ PIN_ ENABLE>;
};
dap4_ dout_ pj6 {
nvidia,pins = “dap4_ dout_ pj6”;
nvidia,function = “i2s4b”;
nvidia,pull = <TEGRA_ PIN_ PULL_ NONE>;
nvidia,tristate = <TEGRA_ PIN_ DISABLE>;
nvidia,enable-input = <TEGRA_ PIN_ ENABLE>;
};
dap4_ fs_ pj4 {
nvidia,pins = “dap4_ fs_ pj4”;
nvidia,function = “i2s4b”;
nvidia,pull = <TEGRA_ PIN_ PULL_ NONE>;
nvidia,tristate = <TEGRA_ PIN_ DISABLE>;
nvidia,enable-input = <TEGRA_ PIN_ ENABLE>;
};
dap4_ sclk_ pj7 {
nvidia,pins = “dap4_ sclk_ pj7”;
nvidia,function = “i2s4b”;
nvidia,pull = <TEGRA_ PIN_ PULL_ NONE>;
nvidia,tristate = <TEGRA_ PIN_ DISABLE>;
nvidia,enable-input = <TEGRA_ PIN_ ENABLE>;
};
In addition, tegra210-porg-gpio-p3448-0002-b00.dtsi is modified as follows:
gpio_ default: default {
gpio-input = <
TEGRA_ GPIO(B, 4)
TEGRA_ GPIO(B, 5)
TEGRA_ GPIO(B, 6)
TEGRA_ GPIO(B, 7)
TEGRA_ GPIO(DD, 0)
TEGRA_ GPIO(E, 6)
TEGRA_ GPIO(S, 5)
TEGRA_ GPIO(A, 5)
TEGRA_ GPIO(X, 4)
TEGRA_ GPIO(X, 5)
TEGRA_ GPIO(X, 6)
TEGRA_ GPIO(Y, 1)
TEGRA_ GPIO(Y, 2)
TEGRA_ GPIO(V, 0)
TEGRA_ GPIO(V, 1)
TEGRA_ GPIO(Z, 0)
TEGRA_ GPIO(Z, 2)
TEGRA_ GPIO(G, 2)
TEGRA_ GPIO(G, 3)
TEGRA_ GPIO(C, 0)
TEGRA_ GPIO(C, 1)
TEGRA_ GPIO(C, 2)
TEGRA_ GPIO(C, 3)
TEGRA_ GPIO(C, 4)
TEGRA_ GPIO(H, 2)
TEGRA_ GPIO(H, 5)
TEGRA_ GPIO(H, 6)
TEGRA_ GPIO(I, 1)
TEGRA_ GPIO(CC, 4)
;
gpio-output-low = <
TEGRA_ GPIO(S, 7)
TEGRA_ GPIO(T, 0)
TEGRA_ GPIO(Z, 3)
TEGRA_ GPIO(H, 0)
TEGRA_ GPIO(H, 3)
TEGRA_ GPIO(H, 4)
TEGRA_ GPIO(H, 7)
TEGRA_ GPIO(I, 0)
TEGRA_ GPIO(I, 2)
;
gpio-output-high = <
TEGRA_ GPIO(A, 6)
TEGRA_ GPIO(X, 3)
TEGRA_ GPIO(CC, 7)
;
};
};
Finally, the generated DT file is burned to the board, but the sound cannot be detected.
Hello!
Which version is this the SD card or eMMC?
You can check if the pins have been configured as expected by …
$ sudo grep dap4 /sys/kernel/debug/tegra_pinctrl_reg
$ sudo cat /sys/kernel/debug/tegra_gpio
Regards,
Jon
Hi!
I use EMMC.
sudo grep dap4 /sys/kernel/debug/tegra_pinctrl_reg
Bank: 1 Reg: 0x700003144 Val: 0x00000040 → dap4_fs_pj4
Bank: 1 Reg: 0x700003148 Val: 0x00000040 → dap4_fs_pj5
Bank: 1 Reg: 0x70000314c Val: 0x00000040 → dap4_fs_pj6
Bank: 1 Reg: 0x700003150 Val: 0x00000040 → dap4_fs_pj7
Hello!
That looks fine, but you also need to read the /sys/kernel/debug/tegra_gpio to see if the pins are gpio or I2S. You can compare the settings between the SD card and eMMC versions.
Regards,
Jon
Hello!
The dap4 pins are …
dap4_fs_pj4
dap4_fs_pj5
dap4_fs_pj6
dap4_fs_pj7
The ‘pjX’ indicates that the corresponding GPIOs are J4-J7. So we care about the GPIOs in the row starting “J:”. Now the output above shows that the ‘CNF’ value for ‘J’ is 0xf0 and this means that J4-J7 are GPIO and not I2S.
Did you re-flash the DTB files after modifying them?
Regards,
Jon
This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.