Hello,
I am using a Jetson Nano with a custom carrier board. On my carrier board, the USB2 port goes to a TI USB2046 hub IC. If I use the stock Jetpack 4.6 Kernel and DTB, then the USB port and hub works great. If I attempt to modify the device tree to add an I2C GPIO expander, then the USB port and hub stops working. The log from the terminal is attached below so you can see the error indications.
My carrier board has a PCA9555 GPIO expander on I2C0. I wish to add this to the device tree, so I do the following:
- Edit the file tegra210-p3448-0002-p3449-0000-b00.dts
- Added following code to that DTS file:
i2c0 {
status = "okay";
gpio@20 {
status = "okay";
compatible = "nxp,pca9555";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
vcc = <&battery_reg>;
gpio-line-names = "BT-M2-WAKE-AP", "BT-M2-EN";
};
};
- My complete DTS file is attached for reference
- Place the DTS file in [jetpack]/sources/hardware/nvidia/platform/t210/porg/kernel-dts
- Compile kernel using “make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j4”
- Copy compiled DTB to [jetpack]/kernel/dtb
- Flash unit using recovery mode and flash.sh script
- Reboot
Upon reboot the USB port no longer works.
I am new to Linux and device tree modification so it’s probably something I am doing incorrectly.
The I2C device works correctly. If I boot the system using the stock kernel and DTB and use i2cdetect, I can talk to my IO expander.
I attached a snippet of the circuit so you can see the hub arrangement.
Could you point me in the right direction to solve my issue? How should I modify the device tree such that I can use I2C0 and the USB port?
tegra210-p3448-0002-p3449-0000-b00.dts (3.9 KB)
BootTerminalLog.txt (24.3 KB)
