Open ShellAlbert opened 4 years ago
我们继续查找pinctrl-0=<0xb6>所引用的节点,即找到哪一个节点的phandle=<0xb6>,我们找到了,是pinmux这个节点。因为pinctrl-names的第一个是“default",则复位上电时,”default"作为第一个被使用的引脚状态。
我们再找pinctrl-1=<0xac>所引用的节点
我们再找pinctrl-2=<0xad>所引用的节点
分析这些节点的引用关系,我们可以得到 usb2-0使用的vbus-supply是phandle=<0xb0>的节点,即名字为vdd-usb0-5v的regulator,受gpio控制。 usb2-1使用的vbus-supply是phandle=<0xb1>的节点,即名字为vdd-usb1-5v的regulator,受gpio控制。 usb2-2使用的vbus-supply是phandle=<0x26>的节点,即名字为vdd-ac-bat的regulator, regulator-always-on始终开启。
那么问题来了,如果使用官方的程序,那么板载电源监控I2C总线芯片INA3221,代码逻辑是 只有监控到电源正常的情况下,才控制gpio开启regulator. 那么,现在我精化了底板,去掉了INA3221,那么就需要这个regulator一直开启,那么 是不是将usb2-0和usb2-1的vbus-supply引用的节点改为regulator-name=vdd-ac-bat的就行呢?
参考这个贴子修改成功 https://devtalk.nvidia.com/default/topic/1049988/jetson-tx2/third-usb-on-custom-board-not-working-with-jetpack-4-2/post/5330117/#5330117 eh-steve#5 第5层楼的回复具有参考价植 操作方法 R32.2 cd /home/zhangshaoyan/nvidia/nvidia_sdk/JetPack_4.2._Linux_GA_P3310/Linux_for_Tegra/kernel/dtb ../dtc -I dtb -O dts -o a.dts tegra186-quill-p3310-1000-c03-00-base.dtb vim a.dts 修改完后 ../dtc -I dts -O dtb -o tegra186-quill-p3310-1000-c03-00-base.dtb a.dts 然后刷新dtb sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1 重启后,usb2.0与usb3.0共用一个插座的那个引脚上的usb2.0接上usb声卡可以正常被识别,正常播放音乐。
修改1:修xhci@3530000节点的phys和phy-names属性,增加utmi-2和0xa9 0x12 修改2:修改pinctrl@3520000节点的vbus-2-supply的值改为 vbus-2-supply= <0x26> 修改3:修改xusb_padctl@3520000节点中的ports/usb2-2中的vbus-supply的值改为vbus-supply=<0x26>
https://devtalk.nvidia.com/default/topic/1057885/jetson-tx2/usb-not-working-in-jetson-tx2-r32-2/post/5364464/
这里的phy-names与phys的关系是一一对应的,故有 utmi-0对应着<0xa9 0x10> utmi-1对应着<0xa9 0x11> usb3-0对应着<0xa9 0x0> 这里的<0xa9>应该是一个phandle引用句柄,那么我们继续搜索找到phandle=<0xa9>,我们发现如下: