Message ID | 20190913132417.19206-1-patrick.delaunay@st.com |
---|---|
State | Accepted |
Delegated to: | Patrick Delaunay |
Headers | show |
Series | [U-Boot] board: stm32mp1: fixup the usb product id for USB download gadget | expand |
Hi Patrick On 9/13/19 3:24 PM, Patrick Delaunay wrote: > Select the correct USB product id used by the download gadget > for ST stm32mp1 boards. > > The board stm32mp1 select the correct product id, as defined in > http://www.linux-usb.org/usb.ids for the STMicroelectronics > vendor id = 0x0483 (CONFIG_USB_GADGET_VENDOR_NUM): > - dfu = 0xdf11 : STM Device in DFU mode > it is the value used by ROM code and reused for stm32prog > command > - fasboot = 0x0afb : Android Fastboot device > - others = 0x5720 (CONFIG_USB_GADGET_PRODUCT_NUM) > Mass Storage Device > it is used for UMS command / usb_dnl_ums > > This patch avoid conflict when the same USB VID/PID is used for > ums, fastboot or dfu command (two different protocols associated > to the same PID). > > Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> > --- > > board/st/stm32mp1/stm32mp1.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c > index 18f9b84876..126af30173 100644 > --- a/board/st/stm32mp1/stm32mp1.c > +++ b/board/st/stm32mp1/stm32mp1.c > @@ -233,6 +233,23 @@ int g_dnl_board_usb_cable_connected(void) > > return dwc2_udc_B_session_valid(dwc2_udc_otg); > } > + > +#define STM32MP1_G_DNL_DFU_PRODUCT_NUM 0xdf11 > +#define STM32MP1_G_DNL_FASTBOOT_PRODUCT_NUM 0x0afb > + > +int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) > +{ > + if (!strcmp(name, "usb_dnl_dfu")) > + put_unaligned(STM32MP1_G_DNL_DFU_PRODUCT_NUM, &dev->idProduct); > + else if (!strcmp(name, "usb_dnl_fastboot")) > + put_unaligned(STM32MP1_G_DNL_FASTBOOT_PRODUCT_NUM, > + &dev->idProduct); > + else > + put_unaligned(CONFIG_USB_GADGET_PRODUCT_NUM, &dev->idProduct); > + > + return 0; > +} > + > #endif /* CONFIG_USB_GADGET */ > > #ifdef CONFIG_LED Acked-by: Patrice Chotard <patrice.chotard@st.com> Thanks
> > Select the correct USB product id used by the download gadget for ST stm32mp1 > boards. > > The board stm32mp1 select the correct product id, as defined in http://www.linux- > usb.org/usb.ids for the STMicroelectronics vendor id = 0x0483 > (CONFIG_USB_GADGET_VENDOR_NUM): > - dfu = 0xdf11 : STM Device in DFU mode > it is the value used by ROM code and reused for stm32prog > command > - fasboot = 0x0afb : Android Fastboot device > - others = 0x5720 (CONFIG_USB_GADGET_PRODUCT_NUM) > Mass Storage Device > it is used for UMS command / usb_dnl_ums > > This patch avoid conflict when the same USB VID/PID is used for ums, fastboot or > dfu command (two different protocols associated to the same PID). > > Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> > --- Applied to u-boot-stm32/master, thanks!
diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c index 18f9b84876..126af30173 100644 --- a/board/st/stm32mp1/stm32mp1.c +++ b/board/st/stm32mp1/stm32mp1.c @@ -233,6 +233,23 @@ int g_dnl_board_usb_cable_connected(void) return dwc2_udc_B_session_valid(dwc2_udc_otg); } + +#define STM32MP1_G_DNL_DFU_PRODUCT_NUM 0xdf11 +#define STM32MP1_G_DNL_FASTBOOT_PRODUCT_NUM 0x0afb + +int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) +{ + if (!strcmp(name, "usb_dnl_dfu")) + put_unaligned(STM32MP1_G_DNL_DFU_PRODUCT_NUM, &dev->idProduct); + else if (!strcmp(name, "usb_dnl_fastboot")) + put_unaligned(STM32MP1_G_DNL_FASTBOOT_PRODUCT_NUM, + &dev->idProduct); + else + put_unaligned(CONFIG_USB_GADGET_PRODUCT_NUM, &dev->idProduct); + + return 0; +} + #endif /* CONFIG_USB_GADGET */ #ifdef CONFIG_LED
Select the correct USB product id used by the download gadget for ST stm32mp1 boards. The board stm32mp1 select the correct product id, as defined in http://www.linux-usb.org/usb.ids for the STMicroelectronics vendor id = 0x0483 (CONFIG_USB_GADGET_VENDOR_NUM): - dfu = 0xdf11 : STM Device in DFU mode it is the value used by ROM code and reused for stm32prog command - fasboot = 0x0afb : Android Fastboot device - others = 0x5720 (CONFIG_USB_GADGET_PRODUCT_NUM) Mass Storage Device it is used for UMS command / usb_dnl_ums This patch avoid conflict when the same USB VID/PID is used for ums, fastboot or dfu command (two different protocols associated to the same PID). Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> --- board/st/stm32mp1/stm32mp1.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)