usb: dwc2_udc_otg: support 8-bit interface
Subsystems (4)
PATCH v3 1/1 usb: dwc2_udc_otg: support 8-bit interface
Define CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8 to allow the physical interface to be 8-bit (rather than 16-bit).
---
from [1] (line ~124)
/* The Kona PHY supports an 8-bit wide UTMI interface */
[...snip...]
module_platform_driver(bcm_kona_usb2_driver);
MODULE_ALIAS("platform:bcm-kona-usb2");
MODULE_AUTHOR("Matt Porter <[email protected]>");
MODULE_DESCRIPTION("BCM Kona USB 2.0 PHY driver");
MODULE_LICENSE("GPL v2");[1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/phy/phy-bcm-kona-usb2.c
Changes in v3:
- implement Marek's suggestion
Changes in v2:
- implement as Kconfig
configs/bcm11130_defconfig | 1 + configs/bcm11130_nand_defconfig | 1 + configs/bcm28155_ap_defconfig | 1 + configs/bcm28155_w1d_defconfig | 1 + drivers/usb/gadget/Kconfig | 10 ++++++++++ drivers/usb/gadget/dwc2_udc_otg.c | 4 ++++ 6 files changed, 18 insertions(+)
configs/bcm11130_defconfig +1 -0
@@ -18,6 +18,7 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Broadcom Corporation" CONFIG_G_DNL_VENDOR_NUM=0x18d1
configs/bcm11130_nand_defconfig +1 -0
@@ -18,6 +18,7 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Broadcom Corporation" CONFIG_G_DNL_VENDOR_NUM=0x18d1
configs/bcm28155_ap_defconfig +1 -0
@@ -17,6 +17,7 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Broadcom Corporation" CONFIG_G_DNL_VENDOR_NUM=0x18d1
configs/bcm28155_w1d_defconfig +1 -0
@@ -18,6 +18,7 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Broadcom Corporation" CONFIG_G_DNL_VENDOR_NUM=0x18d1
drivers/usb/gadget/Kconfig +10 -0
@@ -52,6 +52,16 @@ config USB_GADGET_DWC2_OTG driver to operate in Peripheral mode. This option requires USB_GADGET to be enabled. +if USB_GADGET_DWC2_OTG + +config USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8 + bool "DesignWare USB2.0 HS OTG controller 8-bit PHY bus width" + help + Set the Designware USB2.0 high-speed OTG controller + PHY interface width to 8 bits, rather than the default (16 bits). + +endif # USB_GADGET_DWC2_OTG + config CI_UDC bool "ChipIdea device controller" select USB_GADGET_DUALSPEED
drivers/usb/gadget/dwc2_udc_otg.c +4 -0
@@ -415,7 +415,11 @@ static void reconfig_usbd(struct dwc2_udc *dev) |0<<7 /* Ulpi DDR sel*/ |0 <<6 /* 0: high speed utmi+, 1: full speed serial*/ |0<<4 /* 0: utmi+, 1:ulpi*/ +#ifdef CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8 + |0 <<3 /* phy i/f 0:8bit, 1:16bit*/ +#else |1 <<3 /* phy i/f 0:8bit, 1:16bit*/ +#endif |0x7 <<0 ;/* HS/FS Timeout**/ if (dev->pdata->usb_gusbcfg)
Signature · 1 line
1.8.5
PATCH v3 1/1 usb: dwc2_udc_otg: support 8-bit interface
Quoted 4 lines · Steve Rae
Define
CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8to allow the physical interface to be 8-bit (rather than 16-bit).Signed-off-by Steve Rae <[email protected]>
Quoted 1 line
---
btw I'd still like to see the defconfig bit split at least in a separate patch.
Quoted 114 lines
from [1] (line ~124)
/* The Kona PHY supports an 8-bit wide UTMI interface */ [...snip...] module_platform_driver(bcm_kona_usb2_driver); MODULE_ALIAS("platform:bcm-kona-usb2"); MODULE_AUTHOR("Matt Porter <[email protected]>"); MODULE_DESCRIPTION("BCM Kona USB 2.0 PHY driver"); MODULE_LICENSE("GPL v2");[1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/phy/phy-bcm-kona-usb2.c
Changes in v3:
- implement Marek's suggestionChanges in v2:
- implement asKconfigconfigs/bcm11130_defconfig | 1 + configs/bcm11130_nand_defconfig | 1 + configs/bcm28155_ap_defconfig | 1 + configs/bcm28155_w1d_defconfig | 1 + drivers/usb/gadget/Kconfig | 10 ++++++++++ drivers/usb/gadget/dwc2_udc_otg.c | 4 ++++ 6 files changed, 18 insertions(+)configs/bcm11130_defconfig +1
-0@@ -18,6 +18,7 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Broadcom Corporation" CONFIG_G_DNL_VENDOR_NUM=0x18d1configs/bcm11130_nand_defconfig +1
-0@@ -18,6 +18,7 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Broadcom Corporation" CONFIG_G_DNL_VENDOR_NUM=0x18d1configs/bcm28155_ap_defconfig +1
-0@@ -17,6 +17,7 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Broadcom Corporation" CONFIG_G_DNL_VENDOR_NUM=0x18d1configs/bcm28155_w1d_defconfig +1
-0@@ -18,6 +18,7 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="Broadcom Corporation" CONFIG_G_DNL_VENDOR_NUM=0x18d1drivers/usb/gadget/Kconfig +10
-0@@ -52,6 +52,16 @@ config USB_GADGET_DWC2_OTG driver to operate in Peripheral mode. This option requires USB_GADGET to be enabled. +if USB_GADGET_DWC2_OTG + +config USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8 + bool "DesignWare USB2.0 HS OTG controller 8-bit PHY bus width" + help + Set the Designware USB2.0 high-speed OTG controller + PHY interface width to 8 bits, rather than the default (16 bits). + +endif # USB_GADGET_DWC2_OTG + config CI_UDC bool "ChipIdea device controller" select USB_GADGET_DUALSPEEDdrivers/usb/gadget/dwc2_udc_otg.c +4
-0@@ -415,7 +415,11 @@ static void reconfig_usbd(struct dwc2_udc *dev) |0<<7 /* Ulpi DDR sel*/ |0 <<6 /* 0: high speed utmi+, 1: full speed serial*/ |0<<4 /* 0: utmi+, 1:ulpi*/ +#ifdef CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8 + |0 <<3 /* phy i/f 0:8bit, 1:16bit*/ +#else |1 <<3 /* phy i/f 0:8bit, 1:16bit*/ +#endif |0x7 <<0 ;/* HS/FS Timeout**/ if (dev->pdata->usb_gusbcfg)
Signature · 2 lines
Best regards, Marek Vasut