* [U-Boot] [PATCH 0/4] rk3399: enable dwc3 gadget and fastboot
@ 2016-08-16 10:03 Kever Yang
2016-08-16 10:03 ` [U-Boot] [PATCH 1/4] rk3399: add a empty "sys_proto.h" header file Kever Yang
` (3 more replies)
0 siblings, 4 replies; 17+ messages in thread
From: Kever Yang @ 2016-08-16 10:03 UTC (permalink / raw)
To: u-boot
This patch set enable rk3399 dwc3 controller and gadget driver
for fastboot.
Kever Yang (4):
rk3399: add a empty "sys_proto.h" header file
board: evb-rk3399: add api to support dwc3 gadget
usb: dwc3: add support for 16 bit UTMI+ interface
config: rk3399: add support for dwc3 gadget
arch/arm/include/asm/arch-rockchip/sys_proto.h | 10 ++++++++++
board/rockchip/evb_rk3399/evb-rk3399.c | 22 ++++++++++++++++++++++
drivers/usb/dwc3/core.c | 10 ++++++++++
drivers/usb/dwc3/core.h | 11 +++++++++++
include/configs/rk3399_common.h | 21 +++++++++++++++++++++
5 files changed, 74 insertions(+)
create mode 100644 arch/arm/include/asm/arch-rockchip/sys_proto.h
--
1.9.1
^ permalink raw reply [flat|nested] 17+ messages in thread* [U-Boot] [PATCH 1/4] rk3399: add a empty "sys_proto.h" header file 2016-08-16 10:03 [U-Boot] [PATCH 0/4] rk3399: enable dwc3 gadget and fastboot Kever Yang @ 2016-08-16 10:03 ` Kever Yang 2016-08-17 6:10 ` Kever Yang 2016-08-18 3:44 ` Simon Glass 2016-08-16 10:03 ` [U-Boot] [PATCH 2/4] board: evb-rk3399: add api to support dwc3 gadget Kever Yang ` (2 subsequent siblings) 3 siblings, 2 replies; 17+ messages in thread From: Kever Yang @ 2016-08-16 10:03 UTC (permalink / raw) To: u-boot driver/usb/dwc3/gadget.c need a "sys_proto.h" header file, add a empty one to make compile success. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> --- arch/arm/include/asm/arch-rockchip/sys_proto.h | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 arch/arm/include/asm/arch-rockchip/sys_proto.h diff --git a/arch/arm/include/asm/arch-rockchip/sys_proto.h b/arch/arm/include/asm/arch-rockchip/sys_proto.h new file mode 100644 index 0000000..35423e1 --- /dev/null +++ b/arch/arm/include/asm/arch-rockchip/sys_proto.h @@ -0,0 +1,10 @@ +/* + * (C) Copyright 2016 Rockchip Electronics Co.,Ltd + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef _ASM_ARCH_SYS_PROTO_H +#define _ASM_ARCH_SYS_PROTO_H + +#endif /* _ASM_ARCH_SYS_PROTO_H */ -- 1.9.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 1/4] rk3399: add a empty "sys_proto.h" header file 2016-08-16 10:03 ` [U-Boot] [PATCH 1/4] rk3399: add a empty "sys_proto.h" header file Kever Yang @ 2016-08-17 6:10 ` Kever Yang 2016-08-18 3:44 ` Simon Glass 1 sibling, 0 replies; 17+ messages in thread From: Kever Yang @ 2016-08-17 6:10 UTC (permalink / raw) To: u-boot + Simon, On 08/16/2016 06:03 PM, Kever Yang wrote: > driver/usb/dwc3/gadget.c need a "sys_proto.h" header file, add a > empty one to make compile success. > > Signed-off-by: Kever Yang <kever.yang@rock-chips.com> > --- > > arch/arm/include/asm/arch-rockchip/sys_proto.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > create mode 100644 arch/arm/include/asm/arch-rockchip/sys_proto.h > > diff --git a/arch/arm/include/asm/arch-rockchip/sys_proto.h b/arch/arm/include/asm/arch-rockchip/sys_proto.h > new file mode 100644 > index 0000000..35423e1 > --- /dev/null > +++ b/arch/arm/include/asm/arch-rockchip/sys_proto.h > @@ -0,0 +1,10 @@ > +/* > + * (C) Copyright 2016 Rockchip Electronics Co.,Ltd > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#ifndef _ASM_ARCH_SYS_PROTO_H > +#define _ASM_ARCH_SYS_PROTO_H > + > +#endif /* _ASM_ARCH_SYS_PROTO_H */ ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 1/4] rk3399: add a empty "sys_proto.h" header file 2016-08-16 10:03 ` [U-Boot] [PATCH 1/4] rk3399: add a empty "sys_proto.h" header file Kever Yang 2016-08-17 6:10 ` Kever Yang @ 2016-08-18 3:44 ` Simon Glass 1 sibling, 0 replies; 17+ messages in thread From: Simon Glass @ 2016-08-18 3:44 UTC (permalink / raw) To: u-boot On 16 August 2016 at 04:03, Kever Yang <kever.yang@rock-chips.com> wrote: > driver/usb/dwc3/gadget.c need a "sys_proto.h" header file, add a > empty one to make compile success. > > Signed-off-by: Kever Yang <kever.yang@rock-chips.com> > --- > > arch/arm/include/asm/arch-rockchip/sys_proto.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > create mode 100644 arch/arm/include/asm/arch-rockchip/sys_proto.h Acked-by: Simon Glass <sjg@chromium.org> ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 2/4] board: evb-rk3399: add api to support dwc3 gadget 2016-08-16 10:03 [U-Boot] [PATCH 0/4] rk3399: enable dwc3 gadget and fastboot Kever Yang 2016-08-16 10:03 ` [U-Boot] [PATCH 1/4] rk3399: add a empty "sys_proto.h" header file Kever Yang @ 2016-08-16 10:03 ` Kever Yang 2016-08-17 6:11 ` Kever Yang 2016-08-18 3:44 ` Simon Glass 2016-08-16 10:03 ` [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface Kever Yang 2016-08-16 10:03 ` [U-Boot] [PATCH 4/4] config: rk3399: add support for dwc3 gadget Kever Yang 3 siblings, 2 replies; 17+ messages in thread From: Kever Yang @ 2016-08-16 10:03 UTC (permalink / raw) To: u-boot This patch add board_usb_init() and interrupt callback for dwc3 gadget. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> --- board/rockchip/evb_rk3399/evb-rk3399.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c index d394276..cd61f59 100644 --- a/board/rockchip/evb_rk3399/evb-rk3399.c +++ b/board/rockchip/evb_rk3399/evb-rk3399.c @@ -7,6 +7,8 @@ #include <dm.h> #include <dm/pinctrl.h> #include <asm/arch/periph.h> +#include <usb.h> +#include <dwc3-uboot.h> DECLARE_GLOBAL_DATA_PTR; @@ -54,3 +56,23 @@ void dram_init_banksize(void) gd->bd->bi_dram[0].start = 0x200000; gd->bd->bi_dram[0].size = 0x80000000; } + +#ifdef CONFIG_USB_DWC3 +static struct dwc3_device dwc3_device_data = { + .maximum_speed = USB_SPEED_HIGH, + .base = 0xfe800000, + .dr_mode = USB_DR_MODE_PERIPHERAL, + .index = 0, +}; + +int usb_gadget_handle_interrupts(void) +{ + dwc3_uboot_handle_interrupt(0); + return 0; +} + +int board_usb_init(int index, enum usb_init_type init) +{ + return dwc3_uboot_init(&dwc3_device_data); +} +#endif -- 1.9.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 2/4] board: evb-rk3399: add api to support dwc3 gadget 2016-08-16 10:03 ` [U-Boot] [PATCH 2/4] board: evb-rk3399: add api to support dwc3 gadget Kever Yang @ 2016-08-17 6:11 ` Kever Yang 2016-08-18 3:44 ` Simon Glass 1 sibling, 0 replies; 17+ messages in thread From: Kever Yang @ 2016-08-17 6:11 UTC (permalink / raw) To: u-boot + Simon, On 08/16/2016 06:03 PM, Kever Yang wrote: > This patch add board_usb_init() and interrupt callback > for dwc3 gadget. > > Signed-off-by: Kever Yang <kever.yang@rock-chips.com> > --- > > board/rockchip/evb_rk3399/evb-rk3399.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c > index d394276..cd61f59 100644 > --- a/board/rockchip/evb_rk3399/evb-rk3399.c > +++ b/board/rockchip/evb_rk3399/evb-rk3399.c > @@ -7,6 +7,8 @@ > #include <dm.h> > #include <dm/pinctrl.h> > #include <asm/arch/periph.h> > +#include <usb.h> > +#include <dwc3-uboot.h> > > DECLARE_GLOBAL_DATA_PTR; > > @@ -54,3 +56,23 @@ void dram_init_banksize(void) > gd->bd->bi_dram[0].start = 0x200000; > gd->bd->bi_dram[0].size = 0x80000000; > } > + > +#ifdef CONFIG_USB_DWC3 > +static struct dwc3_device dwc3_device_data = { > + .maximum_speed = USB_SPEED_HIGH, > + .base = 0xfe800000, > + .dr_mode = USB_DR_MODE_PERIPHERAL, > + .index = 0, > +}; > + > +int usb_gadget_handle_interrupts(void) > +{ > + dwc3_uboot_handle_interrupt(0); > + return 0; > +} > + > +int board_usb_init(int index, enum usb_init_type init) > +{ > + return dwc3_uboot_init(&dwc3_device_data); > +} > +#endif ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 2/4] board: evb-rk3399: add api to support dwc3 gadget 2016-08-16 10:03 ` [U-Boot] [PATCH 2/4] board: evb-rk3399: add api to support dwc3 gadget Kever Yang 2016-08-17 6:11 ` Kever Yang @ 2016-08-18 3:44 ` Simon Glass 1 sibling, 0 replies; 17+ messages in thread From: Simon Glass @ 2016-08-18 3:44 UTC (permalink / raw) To: u-boot Hi, On 16 August 2016 at 04:03, Kever Yang <kever.yang@rock-chips.com> wrote: > This patch add board_usb_init() and interrupt callback > for dwc3 gadget. > > Signed-off-by: Kever Yang <kever.yang@rock-chips.com> > --- > > board/rockchip/evb_rk3399/evb-rk3399.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) Reviewed-by: Simon Glass <sjg@chromium.org> > > diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c > index d394276..cd61f59 100644 > --- a/board/rockchip/evb_rk3399/evb-rk3399.c > +++ b/board/rockchip/evb_rk3399/evb-rk3399.c > @@ -7,6 +7,8 @@ > #include <dm.h> > #include <dm/pinctrl.h> > #include <asm/arch/periph.h> > +#include <usb.h> > +#include <dwc3-uboot.h> > > DECLARE_GLOBAL_DATA_PTR; > > @@ -54,3 +56,23 @@ void dram_init_banksize(void) > gd->bd->bi_dram[0].start = 0x200000; > gd->bd->bi_dram[0].size = 0x80000000; > } > + > +#ifdef CONFIG_USB_DWC3 > +static struct dwc3_device dwc3_device_data = { > + .maximum_speed = USB_SPEED_HIGH, > + .base = 0xfe800000, > + .dr_mode = USB_DR_MODE_PERIPHERAL, > + .index = 0, I think you are already talking about how this might move to device tree / driver model. Is that right? > +}; > + > +int usb_gadget_handle_interrupts(void) > +{ > + dwc3_uboot_handle_interrupt(0); > + return 0; > +} > + > +int board_usb_init(int index, enum usb_init_type init) > +{ > + return dwc3_uboot_init(&dwc3_device_data); > +} > +#endif > -- > 1.9.1 > > _______________________________________________ > U-Boot mailing list > U-Boot at lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot Regards, Simon ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface 2016-08-16 10:03 [U-Boot] [PATCH 0/4] rk3399: enable dwc3 gadget and fastboot Kever Yang 2016-08-16 10:03 ` [U-Boot] [PATCH 1/4] rk3399: add a empty "sys_proto.h" header file Kever Yang 2016-08-16 10:03 ` [U-Boot] [PATCH 2/4] board: evb-rk3399: add api to support dwc3 gadget Kever Yang @ 2016-08-16 10:03 ` Kever Yang 2016-08-16 13:18 ` Marek Vasut 2016-08-16 10:03 ` [U-Boot] [PATCH 4/4] config: rk3399: add support for dwc3 gadget Kever Yang 3 siblings, 1 reply; 17+ messages in thread From: Kever Yang @ 2016-08-16 10:03 UTC (permalink / raw) To: u-boot The dwc3 controller is using 8 bit UTMI+ interface for USB2.0 PHY, add one MACRO CONFIG_USB_DWC3_USB2PHY_16BIT to support 16 bit UTMI+ interface on some SoCs like Rockchip rk3399. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> --- drivers/usb/dwc3/core.c | 10 ++++++++++ drivers/usb/dwc3/core.h | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 85cc96a..7141d11 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -75,6 +75,11 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc) /* Clear USB2 PHY reset */ reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); reg &= ~DWC3_GUSB2PHYCFG_PHYSOFTRST; +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; +#endif dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); mdelay(100); @@ -388,6 +393,11 @@ static void dwc3_phy_setup(struct dwc3 *dwc) if (dwc->dis_u2_susphy_quirk) reg &= ~DWC3_GUSB2PHYCFG_SUSPHY; +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; +#endif dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); mdelay(100); diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index 72d2fcd..b4f3963 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -74,6 +74,7 @@ #define DWC3_GCTL 0xc110 #define DWC3_GEVTEN 0xc114 #define DWC3_GSTS 0xc118 +#define DWC3_GUCTL1 0xc11c #define DWC3_GSNPSID 0xc120 #define DWC3_GGPIO 0xc124 #define DWC3_GUID 0xc128 @@ -162,7 +163,17 @@ /* Global USB2 PHY Configuration Register */ #define DWC3_GUSB2PHYCFG_PHYSOFTRST (1 << 31) +#define DWC3_GUSB2PHYCFG_ENBLSLPM (1 << 8) #define DWC3_GUSB2PHYCFG_SUSPHY (1 << 6) +#define DWC3_GUSB2PHYCFG_PHYIF_8BIT (0 << 3) +#define DWC3_GUSB2PHYCFG_PHYIF_16BIT (1 << 3) +#define DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT (10) +#define DWC3_GUSB2PHYCFG_USBTRDTIM_MASK (0xf << \ + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) +#define DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT (0x5 << \ + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) +#define DWC3_GUSB2PHYCFG_USBTRDTIM_8BIT (0x9 << \ + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) /* Global USB3 PIPE Control Register */ #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) -- 1.9.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface 2016-08-16 10:03 ` [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface Kever Yang @ 2016-08-16 13:18 ` Marek Vasut 2016-08-17 1:31 ` Kever Yang 0 siblings, 1 reply; 17+ messages in thread From: Marek Vasut @ 2016-08-16 13:18 UTC (permalink / raw) To: u-boot On 08/16/2016 12:03 PM, Kever Yang wrote: > The dwc3 controller is using 8 bit UTMI+ interface for USB2.0 PHY, > add one MACRO CONFIG_USB_DWC3_USB2PHY_16BIT to support 16 bit > UTMI+ interface on some SoCs like Rockchip rk3399. > > Signed-off-by: Kever Yang <kever.yang@rock-chips.com> This should be configured from either DT or Kconfig option. > --- > > drivers/usb/dwc3/core.c | 10 ++++++++++ > drivers/usb/dwc3/core.h | 11 +++++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 85cc96a..7141d11 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -75,6 +75,11 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc) > /* Clear USB2 PHY reset */ > reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); > reg &= ~DWC3_GUSB2PHYCFG_PHYSOFTRST; > +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT > + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; > + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; > + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; > +#endif > dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); > > mdelay(100); > @@ -388,6 +393,11 @@ static void dwc3_phy_setup(struct dwc3 *dwc) > if (dwc->dis_u2_susphy_quirk) > reg &= ~DWC3_GUSB2PHYCFG_SUSPHY; > > +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT > + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; > + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; > + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; > +#endif > dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); > > mdelay(100); > diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h > index 72d2fcd..b4f3963 100644 > --- a/drivers/usb/dwc3/core.h > +++ b/drivers/usb/dwc3/core.h > @@ -74,6 +74,7 @@ > #define DWC3_GCTL 0xc110 > #define DWC3_GEVTEN 0xc114 > #define DWC3_GSTS 0xc118 > +#define DWC3_GUCTL1 0xc11c > #define DWC3_GSNPSID 0xc120 > #define DWC3_GGPIO 0xc124 > #define DWC3_GUID 0xc128 > @@ -162,7 +163,17 @@ > > /* Global USB2 PHY Configuration Register */ > #define DWC3_GUSB2PHYCFG_PHYSOFTRST (1 << 31) > +#define DWC3_GUSB2PHYCFG_ENBLSLPM (1 << 8) > #define DWC3_GUSB2PHYCFG_SUSPHY (1 << 6) > +#define DWC3_GUSB2PHYCFG_PHYIF_8BIT (0 << 3) > +#define DWC3_GUSB2PHYCFG_PHYIF_16BIT (1 << 3) > +#define DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT (10) > +#define DWC3_GUSB2PHYCFG_USBTRDTIM_MASK (0xf << \ > + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) > +#define DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT (0x5 << \ > + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) > +#define DWC3_GUSB2PHYCFG_USBTRDTIM_8BIT (0x9 << \ > + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) > > /* Global USB3 PIPE Control Register */ > #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) > -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface 2016-08-16 13:18 ` Marek Vasut @ 2016-08-17 1:31 ` Kever Yang 2016-08-17 1:39 ` Marek Vasut 0 siblings, 1 reply; 17+ messages in thread From: Kever Yang @ 2016-08-17 1:31 UTC (permalink / raw) To: u-boot Hi Marek, On 08/16/2016 09:18 PM, Marek Vasut wrote: > On 08/16/2016 12:03 PM, Kever Yang wrote: >> The dwc3 controller is using 8 bit UTMI+ interface for USB2.0 PHY, >> add one MACRO CONFIG_USB_DWC3_USB2PHY_16BIT to support 16 bit >> UTMI+ interface on some SoCs like Rockchip rk3399. >> >> Signed-off-by: Kever Yang <kever.yang@rock-chips.com> > This should be configured from either DT or Kconfig option. This setting in kernel is from DT, but we do not use DT for gadget mode in U-Boot. How about we add a quirk for it like u2phy_utmi_width_quirk in both dwc3_device and dwc3 struct for device mode? For Host mode, we can get from DT and also need a quirk to store it. Thanks, - Kever > >> --- >> >> drivers/usb/dwc3/core.c | 10 ++++++++++ >> drivers/usb/dwc3/core.h | 11 +++++++++++ >> 2 files changed, 21 insertions(+) >> >> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c >> index 85cc96a..7141d11 100644 >> --- a/drivers/usb/dwc3/core.c >> +++ b/drivers/usb/dwc3/core.c >> @@ -75,6 +75,11 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc) >> /* Clear USB2 PHY reset */ >> reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); >> reg &= ~DWC3_GUSB2PHYCFG_PHYSOFTRST; >> +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT >> + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; >> + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; >> + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; >> +#endif >> dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); >> >> mdelay(100); >> @@ -388,6 +393,11 @@ static void dwc3_phy_setup(struct dwc3 *dwc) >> if (dwc->dis_u2_susphy_quirk) >> reg &= ~DWC3_GUSB2PHYCFG_SUSPHY; >> >> +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT >> + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; >> + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; >> + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; >> +#endif >> dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); >> >> mdelay(100); >> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h >> index 72d2fcd..b4f3963 100644 >> --- a/drivers/usb/dwc3/core.h >> +++ b/drivers/usb/dwc3/core.h >> @@ -74,6 +74,7 @@ >> #define DWC3_GCTL 0xc110 >> #define DWC3_GEVTEN 0xc114 >> #define DWC3_GSTS 0xc118 >> +#define DWC3_GUCTL1 0xc11c >> #define DWC3_GSNPSID 0xc120 >> #define DWC3_GGPIO 0xc124 >> #define DWC3_GUID 0xc128 >> @@ -162,7 +163,17 @@ >> >> /* Global USB2 PHY Configuration Register */ >> #define DWC3_GUSB2PHYCFG_PHYSOFTRST (1 << 31) >> +#define DWC3_GUSB2PHYCFG_ENBLSLPM (1 << 8) >> #define DWC3_GUSB2PHYCFG_SUSPHY (1 << 6) >> +#define DWC3_GUSB2PHYCFG_PHYIF_8BIT (0 << 3) >> +#define DWC3_GUSB2PHYCFG_PHYIF_16BIT (1 << 3) >> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT (10) >> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_MASK (0xf << \ >> + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) >> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT (0x5 << \ >> + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) >> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_8BIT (0x9 << \ >> + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) >> >> /* Global USB3 PIPE Control Register */ >> #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) >> > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface 2016-08-17 1:31 ` Kever Yang @ 2016-08-17 1:39 ` Marek Vasut 2016-08-17 2:06 ` Kever Yang 0 siblings, 1 reply; 17+ messages in thread From: Marek Vasut @ 2016-08-17 1:39 UTC (permalink / raw) To: u-boot On 08/17/2016 03:31 AM, Kever Yang wrote: > Hi Marek, Hi, > On 08/16/2016 09:18 PM, Marek Vasut wrote: >> On 08/16/2016 12:03 PM, Kever Yang wrote: >>> The dwc3 controller is using 8 bit UTMI+ interface for USB2.0 PHY, >>> add one MACRO CONFIG_USB_DWC3_USB2PHY_16BIT to support 16 bit >>> UTMI+ interface on some SoCs like Rockchip rk3399. >>> >>> Signed-off-by: Kever Yang <kever.yang@rock-chips.com> >> This should be configured from either DT or Kconfig option. > > This setting in kernel is from DT, but we do not use DT for gadget mode > in U-Boot. > How about we add a quirk for it like u2phy_utmi_width_quirk in both > dwc3_device > and dwc3 struct for device mode? > > For Host mode, we can get from DT and also need a quirk to store it. Surely, if you can get this info from DT for host mode, you can also get it from DT for gadget mode, yes ? > Thanks, > - Kever >> >>> --- >>> >>> drivers/usb/dwc3/core.c | 10 ++++++++++ >>> drivers/usb/dwc3/core.h | 11 +++++++++++ >>> 2 files changed, 21 insertions(+) >>> >>> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c >>> index 85cc96a..7141d11 100644 >>> --- a/drivers/usb/dwc3/core.c >>> +++ b/drivers/usb/dwc3/core.c >>> @@ -75,6 +75,11 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc) >>> /* Clear USB2 PHY reset */ >>> reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); >>> reg &= ~DWC3_GUSB2PHYCFG_PHYSOFTRST; >>> +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT >>> + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; >>> + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; >>> + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; >>> +#endif >>> dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); >>> mdelay(100); >>> @@ -388,6 +393,11 @@ static void dwc3_phy_setup(struct dwc3 *dwc) >>> if (dwc->dis_u2_susphy_quirk) >>> reg &= ~DWC3_GUSB2PHYCFG_SUSPHY; >>> +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT >>> + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; >>> + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; >>> + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; >>> +#endif >>> dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); >>> mdelay(100); >>> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h >>> index 72d2fcd..b4f3963 100644 >>> --- a/drivers/usb/dwc3/core.h >>> +++ b/drivers/usb/dwc3/core.h >>> @@ -74,6 +74,7 @@ >>> #define DWC3_GCTL 0xc110 >>> #define DWC3_GEVTEN 0xc114 >>> #define DWC3_GSTS 0xc118 >>> +#define DWC3_GUCTL1 0xc11c >>> #define DWC3_GSNPSID 0xc120 >>> #define DWC3_GGPIO 0xc124 >>> #define DWC3_GUID 0xc128 >>> @@ -162,7 +163,17 @@ >>> /* Global USB2 PHY Configuration Register */ >>> #define DWC3_GUSB2PHYCFG_PHYSOFTRST (1 << 31) >>> +#define DWC3_GUSB2PHYCFG_ENBLSLPM (1 << 8) >>> #define DWC3_GUSB2PHYCFG_SUSPHY (1 << 6) >>> +#define DWC3_GUSB2PHYCFG_PHYIF_8BIT (0 << 3) >>> +#define DWC3_GUSB2PHYCFG_PHYIF_16BIT (1 << 3) >>> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT (10) >>> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_MASK (0xf << \ >>> + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) >>> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT (0x5 << \ >>> + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) >>> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_8BIT (0x9 << \ >>> + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) >>> /* Global USB3 PIPE Control Register */ >>> #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) >>> >> > > -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface 2016-08-17 1:39 ` Marek Vasut @ 2016-08-17 2:06 ` Kever Yang 2016-08-17 8:07 ` Marek Vasut 0 siblings, 1 reply; 17+ messages in thread From: Kever Yang @ 2016-08-17 2:06 UTC (permalink / raw) To: u-boot Hi Marek, On 08/17/2016 09:39 AM, Marek Vasut wrote: > On 08/17/2016 03:31 AM, Kever Yang wrote: >> Hi Marek, > Hi, > >> On 08/16/2016 09:18 PM, Marek Vasut wrote: >>> On 08/16/2016 12:03 PM, Kever Yang wrote: >>>> The dwc3 controller is using 8 bit UTMI+ interface for USB2.0 PHY, >>>> add one MACRO CONFIG_USB_DWC3_USB2PHY_16BIT to support 16 bit >>>> UTMI+ interface on some SoCs like Rockchip rk3399. >>>> >>>> Signed-off-by: Kever Yang <kever.yang@rock-chips.com> >>> This should be configured from either DT or Kconfig option. >> This setting in kernel is from DT, but we do not use DT for gadget mode >> in U-Boot. >> How about we add a quirk for it like u2phy_utmi_width_quirk in both >> dwc3_device >> and dwc3 struct for device mode? >> >> For Host mode, we can get from DT and also need a quirk to store it. > Surely, if you can get this info from DT for host mode, you can also get > it from DT for gadget mode, yes ? No, for gadget mode, the controller is init by board_usb_init() called from cmd like fastboot, there is no uclass driver for a udc driver and no one parse the DT currently. You can see my patch "[PATCH 2/4] board: evb-rk3399: add api to support dwc3 gadget" for how it initialized. Thanks, - Kever > >> Thanks, >> - Kever >>>> --- >>>> >>>> drivers/usb/dwc3/core.c | 10 ++++++++++ >>>> drivers/usb/dwc3/core.h | 11 +++++++++++ >>>> 2 files changed, 21 insertions(+) >>>> >>>> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c >>>> index 85cc96a..7141d11 100644 >>>> --- a/drivers/usb/dwc3/core.c >>>> +++ b/drivers/usb/dwc3/core.c >>>> @@ -75,6 +75,11 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc) >>>> /* Clear USB2 PHY reset */ >>>> reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); >>>> reg &= ~DWC3_GUSB2PHYCFG_PHYSOFTRST; >>>> +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT >>>> + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; >>>> + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; >>>> + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; >>>> +#endif >>>> dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); >>>> mdelay(100); >>>> @@ -388,6 +393,11 @@ static void dwc3_phy_setup(struct dwc3 *dwc) >>>> if (dwc->dis_u2_susphy_quirk) >>>> reg &= ~DWC3_GUSB2PHYCFG_SUSPHY; >>>> +#ifdef CONFIG_USB_DWC3_USB2PHY_16BIT >>>> + reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK; >>>> + reg |= DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT; >>>> + reg |= DWC3_GUSB2PHYCFG_PHYIF_16BIT; >>>> +#endif >>>> dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); >>>> mdelay(100); >>>> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h >>>> index 72d2fcd..b4f3963 100644 >>>> --- a/drivers/usb/dwc3/core.h >>>> +++ b/drivers/usb/dwc3/core.h >>>> @@ -74,6 +74,7 @@ >>>> #define DWC3_GCTL 0xc110 >>>> #define DWC3_GEVTEN 0xc114 >>>> #define DWC3_GSTS 0xc118 >>>> +#define DWC3_GUCTL1 0xc11c >>>> #define DWC3_GSNPSID 0xc120 >>>> #define DWC3_GGPIO 0xc124 >>>> #define DWC3_GUID 0xc128 >>>> @@ -162,7 +163,17 @@ >>>> /* Global USB2 PHY Configuration Register */ >>>> #define DWC3_GUSB2PHYCFG_PHYSOFTRST (1 << 31) >>>> +#define DWC3_GUSB2PHYCFG_ENBLSLPM (1 << 8) >>>> #define DWC3_GUSB2PHYCFG_SUSPHY (1 << 6) >>>> +#define DWC3_GUSB2PHYCFG_PHYIF_8BIT (0 << 3) >>>> +#define DWC3_GUSB2PHYCFG_PHYIF_16BIT (1 << 3) >>>> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT (10) >>>> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_MASK (0xf << \ >>>> + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) >>>> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_16BIT (0x5 << \ >>>> + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) >>>> +#define DWC3_GUSB2PHYCFG_USBTRDTIM_8BIT (0x9 << \ >>>> + DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT) >>>> /* Global USB3 PIPE Control Register */ >>>> #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) >>>> >> > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface 2016-08-17 2:06 ` Kever Yang @ 2016-08-17 8:07 ` Marek Vasut 2016-08-18 9:04 ` Kever Yang 0 siblings, 1 reply; 17+ messages in thread From: Marek Vasut @ 2016-08-17 8:07 UTC (permalink / raw) To: u-boot On 08/17/2016 04:06 AM, Kever Yang wrote: > Hi Marek, > > On 08/17/2016 09:39 AM, Marek Vasut wrote: >> On 08/17/2016 03:31 AM, Kever Yang wrote: >>> Hi Marek, >> Hi, >> >>> On 08/16/2016 09:18 PM, Marek Vasut wrote: >>>> On 08/16/2016 12:03 PM, Kever Yang wrote: >>>>> The dwc3 controller is using 8 bit UTMI+ interface for USB2.0 PHY, >>>>> add one MACRO CONFIG_USB_DWC3_USB2PHY_16BIT to support 16 bit >>>>> UTMI+ interface on some SoCs like Rockchip rk3399. >>>>> >>>>> Signed-off-by: Kever Yang <kever.yang@rock-chips.com> >>>> This should be configured from either DT or Kconfig option. >>> This setting in kernel is from DT, but we do not use DT for gadget mode >>> in U-Boot. >>> How about we add a quirk for it like u2phy_utmi_width_quirk in both >>> dwc3_device >>> and dwc3 struct for device mode? >>> >>> For Host mode, we can get from DT and also need a quirk to store it. >> Surely, if you can get this info from DT for host mode, you can also get >> it from DT for gadget mode, yes ? > > No, for gadget mode, the controller is init by board_usb_init() called > from cmd like fastboot, > there is no uclass driver for a udc driver and no one parse the DT > currently. Which doesn't imply you cannot parse the DT though, correct ? I would _much_ rather see you parsing DT over adding new ad-hoc compile time config option. > You can see my patch "[PATCH 2/4] board: evb-rk3399: add api to support > dwc3 gadget" > for how it initialized. > > Thanks, > - Kever [...] -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface 2016-08-17 8:07 ` Marek Vasut @ 2016-08-18 9:04 ` Kever Yang 2016-08-18 23:23 ` Marek Vasut 0 siblings, 1 reply; 17+ messages in thread From: Kever Yang @ 2016-08-18 9:04 UTC (permalink / raw) To: u-boot Hi Marek, On 08/17/2016 04:07 PM, Marek Vasut wrote: > On 08/17/2016 04:06 AM, Kever Yang wrote: >> Hi Marek, >> >> On 08/17/2016 09:39 AM, Marek Vasut wrote: >>> On 08/17/2016 03:31 AM, Kever Yang wrote: >>>> Hi Marek, >>> Hi, >>> >>>> On 08/16/2016 09:18 PM, Marek Vasut wrote: >>>>> On 08/16/2016 12:03 PM, Kever Yang wrote: >>>>>> The dwc3 controller is using 8 bit UTMI+ interface for USB2.0 PHY, >>>>>> add one MACRO CONFIG_USB_DWC3_USB2PHY_16BIT to support 16 bit >>>>>> UTMI+ interface on some SoCs like Rockchip rk3399. >>>>>> >>>>>> Signed-off-by: Kever Yang <kever.yang@rock-chips.com> >>>>> This should be configured from either DT or Kconfig option. >>>> This setting in kernel is from DT, but we do not use DT for gadget mode >>>> in U-Boot. >>>> How about we add a quirk for it like u2phy_utmi_width_quirk in both >>>> dwc3_device >>>> and dwc3 struct for device mode? >>>> >>>> For Host mode, we can get from DT and also need a quirk to store it. >>> Surely, if you can get this info from DT for host mode, you can also get >>> it from DT for gadget mode, yes ? >> No, for gadget mode, the controller is init by board_usb_init() called >> from cmd like fastboot, >> there is no uclass driver for a udc driver and no one parse the DT >> currently. > Which doesn't imply you cannot parse the DT though, correct ? > I would _much_ rather see you parsing DT over adding new ad-hoc compile > time config option. Sorry, I don't understand what do you mean by "adding new ad-hoc compile time config option". Do you mean (a) add fdt_get_property() to parse DT only for this setting? Or (b) implement a new driver for gadget mode with driver-model support which bind the device during DT instead of board_usb_init()? The case (a) would be easy while case (b) suppose to be a big update. The source of driver for dwc3 gadget is in drivers/usb/dwc3 and the source of driver for dwc3 host is in drivers/usb/host, we will have to merge this two driver into one in case (b) bacause they are using the some controller which means the same dts node. I would like to see these two driver merge into one like what kernel do, but I think it need someone who very familiar with both dwc3 host and gadget to port the driver from kernel. Thanks, - Kever > >> You can see my patch "[PATCH 2/4] board: evb-rk3399: add api to support >> dwc3 gadget" >> for how it initialized. >> >> Thanks, >> - Kever > [...] > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface 2016-08-18 9:04 ` Kever Yang @ 2016-08-18 23:23 ` Marek Vasut 0 siblings, 0 replies; 17+ messages in thread From: Marek Vasut @ 2016-08-18 23:23 UTC (permalink / raw) To: u-boot On 08/18/2016 11:04 AM, Kever Yang wrote: > Hi Marek, Hi, > On 08/17/2016 04:07 PM, Marek Vasut wrote: >> On 08/17/2016 04:06 AM, Kever Yang wrote: >>> Hi Marek, >>> >>> On 08/17/2016 09:39 AM, Marek Vasut wrote: >>>> On 08/17/2016 03:31 AM, Kever Yang wrote: >>>>> Hi Marek, >>>> Hi, >>>> >>>>> On 08/16/2016 09:18 PM, Marek Vasut wrote: >>>>>> On 08/16/2016 12:03 PM, Kever Yang wrote: >>>>>>> The dwc3 controller is using 8 bit UTMI+ interface for USB2.0 PHY, >>>>>>> add one MACRO CONFIG_USB_DWC3_USB2PHY_16BIT to support 16 bit >>>>>>> UTMI+ interface on some SoCs like Rockchip rk3399. >>>>>>> >>>>>>> Signed-off-by: Kever Yang <kever.yang@rock-chips.com> >>>>>> This should be configured from either DT or Kconfig option. >>>>> This setting in kernel is from DT, but we do not use DT for gadget >>>>> mode >>>>> in U-Boot. >>>>> How about we add a quirk for it like u2phy_utmi_width_quirk in both >>>>> dwc3_device >>>>> and dwc3 struct for device mode? >>>>> >>>>> For Host mode, we can get from DT and also need a quirk to store it. >>>> Surely, if you can get this info from DT for host mode, you can also >>>> get >>>> it from DT for gadget mode, yes ? >>> No, for gadget mode, the controller is init by board_usb_init() called >>> from cmd like fastboot, >>> there is no uclass driver for a udc driver and no one parse the DT >>> currently. >> Which doesn't imply you cannot parse the DT though, correct ? >> I would _much_ rather see you parsing DT over adding new ad-hoc compile >> time config option. > > Sorry, I don't understand what do you mean by "adding new ad-hoc compile > time config option". I mean adding CONFIG_USB_DWC3_USB2PHY_16BIT instead of parsing DT . > Do you mean (a) add fdt_get_property() to parse DT only for this setting? > Or (b) implement a new driver for gadget mode with driver-model support > which > bind the device during DT instead of board_usb_init()? I think the former would be easier, yes ? > The case (a) would be easy while case (b) suppose to be a big update. > The source of driver for dwc3 gadget is in drivers/usb/dwc3 and the > source of driver for > dwc3 host is in drivers/usb/host, we will have to merge this two driver > into one in case (b) > bacause they are using the some controller which means the same dts node. I believe drivers/usb/dwc3 is pulled from Linux, so this is the only codebase which we should ever use to add host mode to. > I would like to see these two driver merge into one like what kernel do, > but I think it need > someone who very familiar with both dwc3 host and gadget to port the > driver from kernel. Implementing (a) is fine, while (b) would be excellent. > Thanks, > - Kever >> >>> You can see my patch "[PATCH 2/4] board: evb-rk3399: add api to support >>> dwc3 gadget" >>> for how it initialized. >>> >>> Thanks, >>> - Kever >> [...] >> > > -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 4/4] config: rk3399: add support for dwc3 gadget 2016-08-16 10:03 [U-Boot] [PATCH 0/4] rk3399: enable dwc3 gadget and fastboot Kever Yang ` (2 preceding siblings ...) 2016-08-16 10:03 ` [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface Kever Yang @ 2016-08-16 10:03 ` Kever Yang 2016-08-17 4:16 ` Simon Glass 3 siblings, 1 reply; 17+ messages in thread From: Kever Yang @ 2016-08-16 10:03 UTC (permalink / raw) To: u-boot To support fastboot, we need to enable the controller first. rk3399 is using dwc3 as usb device controller, this patch enable the configs for dwc3 gadget. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> --- include/configs/rk3399_common.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/include/configs/rk3399_common.h b/include/configs/rk3399_common.h index 6875308..bc85e2f 100644 --- a/include/configs/rk3399_common.h +++ b/include/configs/rk3399_common.h @@ -27,6 +27,27 @@ #define CONFIG_SYS_BOOTM_LEN (64 << 20) /* 64M */ +/* usb device */ +#define CONFIG_USB_DWC3 +#define CONFIG_USB_DWC3_GADGET +#define CONFIG_USB_DWC3_USB2PHY_16BIT +#define CONFIG_USB_GADGET +#define CONFIG_USB_GADGET_DUALSPEED +#define CONFIG_USB_GADGET_VBUS_DRAW 0 + +/* fastboot */ +#define CONFIG_CMD_FASTBOOT +#define CONFIG_USB_FUNCTION_FASTBOOT +#define CONFIG_FASTBOOT_FLASH +#define CONFIG_FASTBOOT_FLASH_MMC_DEV 1 /* eMMC */ +#define CONFIG_FASTBOOT_BUF_ADDR CONFIG_SYS_LOAD_ADDR +#define CONFIG_FASTBOOT_BUF_SIZE 0x08000000 + +#define CONFIG_USB_GADGET_DOWNLOAD +#define CONFIG_G_DNL_MANUFACTURER "Rockchip" +#define CONFIG_G_DNL_VENDOR_NUM 0x2207 +#define CONFIG_G_DNL_PRODUCT_NUM 0x330a + /* MMC/SD IP block */ #define CONFIG_MMC #define CONFIG_GENERIC_MMC -- 1.9.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [U-Boot] [PATCH 4/4] config: rk3399: add support for dwc3 gadget 2016-08-16 10:03 ` [U-Boot] [PATCH 4/4] config: rk3399: add support for dwc3 gadget Kever Yang @ 2016-08-17 4:16 ` Simon Glass 0 siblings, 0 replies; 17+ messages in thread From: Simon Glass @ 2016-08-17 4:16 UTC (permalink / raw) To: u-boot On 16 August 2016 at 04:03, Kever Yang <kever.yang@rock-chips.com> wrote: > To support fastboot, we need to enable the controller first. > rk3399 is using dwc3 as usb device controller, this patch enable > the configs for dwc3 gadget. > > Signed-off-by: Kever Yang <kever.yang@rock-chips.com> > --- > > include/configs/rk3399_common.h | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) Reviewed-by: Simon Glass <sjg@chromium.org> ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2016-08-18 23:23 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-08-16 10:03 [U-Boot] [PATCH 0/4] rk3399: enable dwc3 gadget and fastboot Kever Yang 2016-08-16 10:03 ` [U-Boot] [PATCH 1/4] rk3399: add a empty "sys_proto.h" header file Kever Yang 2016-08-17 6:10 ` Kever Yang 2016-08-18 3:44 ` Simon Glass 2016-08-16 10:03 ` [U-Boot] [PATCH 2/4] board: evb-rk3399: add api to support dwc3 gadget Kever Yang 2016-08-17 6:11 ` Kever Yang 2016-08-18 3:44 ` Simon Glass 2016-08-16 10:03 ` [U-Boot] [PATCH 3/4] usb: dwc3: add support for 16 bit UTMI+ interface Kever Yang 2016-08-16 13:18 ` Marek Vasut 2016-08-17 1:31 ` Kever Yang 2016-08-17 1:39 ` Marek Vasut 2016-08-17 2:06 ` Kever Yang 2016-08-17 8:07 ` Marek Vasut 2016-08-18 9:04 ` Kever Yang 2016-08-18 23:23 ` Marek Vasut 2016-08-16 10:03 ` [U-Boot] [PATCH 4/4] config: rk3399: add support for dwc3 gadget Kever Yang 2016-08-17 4:16 ` Simon Glass
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox