From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Tue, 07 Jun 2016 03:02:19 +0200 Subject: [U-Boot] [PATCH v2] usb: dwc2_udc_otg: support 8-bit interface In-Reply-To: References: <1465257520-7571-1-git-send-email-srae@broadcom.com> <5756177E.6010004@denx.de> Message-ID: <57561D1B.4080307@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 06/07/2016 02:55 AM, Steve Rae wrote: > On Mon, Jun 6, 2016 at 5:38 PM, Marek Vasut wrote: >> On 06/07/2016 01:58 AM, Steve Rae wrote: >>> Define CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8 to allow the >>> physical interface to be 8-bit (rather than 16-bit). >>> >>> Signed-off-by: Steve Rae >> >> Hi, minor nits below. >> >>> --- >>> 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 "); >>> 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 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(+) >>> >>> diff --git a/configs/bcm11130_defconfig b/configs/bcm11130_defconfig >>> index b8ec8ac..2716868 100644 >>> --- a/configs/bcm11130_defconfig >>> +++ b/configs/bcm11130_defconfig >>> @@ -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 >>> diff --git a/configs/bcm11130_nand_defconfig b/configs/bcm11130_nand_defconfig >>> index 6021fd2..8e01c52 100644 >>> --- a/configs/bcm11130_nand_defconfig >>> +++ b/configs/bcm11130_nand_defconfig >>> @@ -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 >>> diff --git a/configs/bcm28155_ap_defconfig b/configs/bcm28155_ap_defconfig >>> index 4404f32..eb58401 100644 >>> --- a/configs/bcm28155_ap_defconfig >>> +++ b/configs/bcm28155_ap_defconfig >>> @@ -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 >>> diff --git a/configs/bcm28155_w1d_defconfig b/configs/bcm28155_w1d_defconfig >>> index 60eb328..35d04af 100644 >>> --- a/configs/bcm28155_w1d_defconfig >>> +++ b/configs/bcm28155_w1d_defconfig >>> @@ -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 >> >> Config file changes should go through the bcm tree or whoever picks those. > As far as I know, "nobody" is assigned to pick the "bcm tree" > I've added Albert (arm) ?!?!? Yeah, either Albert or Tom then. Still ... this might be an indication that this situation needs to be fixed ;-) >>> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig >>> index a35a1c7..39e5c03 100644 >>> --- a/drivers/usb/gadget/Kconfig >>> +++ b/drivers/usb/gadget/Kconfig >>> @@ -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 PHY interface width" >> >> Rename it to "8-bit PHY bus width", otherwise the boolean value won't >> make sense here. > DONE = v3 Thanks >>> + 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 >>> diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c >>> index cb20b00..a23278d 100644 >>> --- a/drivers/usb/gadget/dwc2_udc_otg.c >>> +++ b/drivers/usb/gadget/dwc2_udc_otg.c >>> @@ -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) >>> >> >> >> -- >> Best regards, >> Marek Vasut -- Best regards, Marek Vasut