我现在用的am3358,linux内核版本3.8.13 ,标准版是beaglebone black
首先我做了2次其他实验:
1、我只将usb0端口设置成host模式,能够发现usb0端口下的设备。
此时我修改了am33xx.dtsi文件中,关于usb_otg_hs部分的
usb_otg_hs: usb@47400000 {
compatible = "ti,musb-am33xx";
reg = <0x47400000 0x1000 /* usbss */
0x47401000 0x800 /* musb instance 0 */
0x47401800 0x800>; /* musb instance 1 */
interrupts = <17 /* usbss */
18 /* musb instance 0 */
19>; /* musb instance 1 */
multipoint = <1>;
num-eps = <16>;
ram-bits = <12>;
port0-mode = <1>;
/* port1-mode = <1>; */
power = <250>;
ti,hwmods = "usb_otg_hs";
status = "disabled";
};
2、我只将usb1端口设置成host模式,能够发现usb1端口下的设备。
此时我修改了am33xx.dtsi文件中,关于usb_otg_hs部分的
usb_otg_hs: usb@47400000 {
compatible = "ti,musb-am33xx";
reg = <0x47400000 0x1000 /* usbss */
0x47401000 0x800 /* musb instance 0 */
0x47401800 0x800>; /* musb instance 1 */
interrupts = <17 /* usbss */
18 /* musb instance 0 */
19>; /* musb instance 1 */
multipoint = <1>;
num-eps = <16>;
ram-bits = <12>;
/* port0-mode = <1>; */
port1-mode = <1>;
power = <250>;
ti,hwmods = "usb_otg_hs";
status = "disabled";
};
3、目前我把cpu的usb控制器的两个端口均设置成host模式,此时只能发现usb0下的设备,usb1的设备发现不到,这是我遇到的问题。
此时我修改了am33xx.dtsi文件中,关于usb_otg_hs部分的
usb_otg_hs: usb@47400000 {
compatible = "ti,musb-am33xx";
reg = <0x47400000 0x1000 /* usbss */
0x47401000 0x800 /* musb instance 0 */
0x47401800 0x800>; /* musb instance 1 */
interrupts = <17 /* usbss */
18 /* musb instance 0 */
19>; /* musb instance 1 */
multipoint = <1>;
num-eps = <16>;
ram-bits = <12>;
port0-mode = <1>;
port1-mode = <1>;
power = <250>;
ti,hwmods = "usb_otg_hs";
status = "disabled";
};
更改host模式是通过设备树中的port0-mode和port1-mode设置的。请指教!