您好!
我想在基于 BeagleBone Black 的电路板上激活 OTG。 在器件树中、我提到了以下内容:
&usb {
status = "okay";
};
&usb_ctrl_mod {
status = "okay";
};
&usb0_phy {
status = "okay";
};
&usb1_phy {
status = "okay";
};
&usb0 {
status = "okay";
dr_mode = "peripheral";
interrupts-extended = <&intc 18 &tps 0>;
interrupt-names = "mc", "vbus";
};
&usb1 {
status = "okay";
dr_mode = "otg";
};
&cppi41dma {
status = "okay";
};
当我引导并检查寄存器 USB1MODE 时、我得到了值0x00000100。 根据 TRM、它应该由 USB1_ID 引脚驱动。
但是、当我将 USB1_ID 引脚接地时、USB_DRVVBUS 不会升高。
如果我将 dr_mode 设置为"host"、那么在启动后、我将 USB_DRVVBUS 引脚设置为高电平、并且可以连接 USB 闪存驱动器。 USB1MODE 寄存器为0x00000080。
我使用的是主线 Linux 4.19.68。
下面是我的 defconfig 的 USB 片段:
# CONFIG_USB_NET_DRIVERS is not set # CONFIG_SND_USB is not set # CONFIG_USB_HID is not set CONFIG_USB=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_OTG=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PLATFORM=y CONFIG_USB_STORAGE=y CONFIG_USB_MUSB_HDRC=y CONFIG_USB_MUSB_OMAP2PLUS=y CONFIG_USB_MUSB_DSPS=y CONFIG_USB_INVENTRA_DMA=y CONFIG_USB_TI_CPPI41_DMA=y CONFIG_NOP_USB_XCEIV=y CONFIG_AM335X_PHY_USB=y CONFIG_USB_GPIO_VBUS=m CONFIG_USB_GADGET=y CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=32 CONFIG_USB_CONFIGFS=y CONFIG_USB_CONFIGFS_SERIAL=y CONFIG_USB_CONFIGFS_ACM=y CONFIG_USB_CONFIGFS_OBEX=y CONFIG_USB_CONFIGFS_NCM=y CONFIG_USB_CONFIGFS_ECM=y CONFIG_USB_CONFIGFS_ECM_SUBSET=y CONFIG_USB_CONFIGFS_RNDIS=y CONFIG_USB_CONFIGFS_EEM=y CONFIG_USB_CONFIGFS_MASS_STORAGE=y CONFIG_USB_CONFIGFS_F_LB_SS=y CONFIG_USB_CONFIGFS_F_FS=y CONFIG_USB_CONFIGFS_F_UAC1=y CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y CONFIG_USB_CONFIGFS_F_UAC2=y CONFIG_USB_CONFIGFS_F_MIDI=y CONFIG_USB_CONFIGFS_F_HID=y CONFIG_USB_CONFIGFS_F_PRINTER=y CONFIG_USB_ETH=y CONFIG_USB_ROLE_SWITCH=y CONFIG_OMAP_USB2=m
有什么想法、可能会出什么问题?