[U-Boot] [RFC 1/6] odroid: exynos: USB initialization on the U3/X2
Jack Mitchell
ml at embed.me.uk
Mon Apr 1 13:22:45 UTC 2019
On 01/04/2019 13:57, Lukasz Majewski wrote:
> Hi Anand,
>
>> From: Tobias Jakobi <tjakobi at math.uni-bielefeld.de>
>>
>> Rename board_usb_init() to exynos_usb_init() and call it
>> early in the Exynos EHCI driver when probing.
>>
>> This kind of works. After a 'usb start; usb stop; usb start'
>> cycle the attached devices are recognized.
>>
>> Add small delay between gpio_direction_output to stable
>> initialization of usb gpio pins.
>>
>> Signed-off-by: Tobias Jakobi <tjakobi at math.uni-bielefeld.de>
>> Signed-off-by: Anand Moon <linux.amoon at gmail.com>
>> ---
>> Reoder the exynos_usb_init so that "usb start" command initialization
>> correcly.
>> ---
>> ---
>> board/samsung/odroid/odroid.c | 14 +++++++++-----
>> drivers/usb/host/ehci-exynos.c | 7 +++++++
>> 2 files changed, 16 insertions(+), 5 deletions(-)
>>
>> diff --git a/board/samsung/odroid/odroid.c
>> b/board/samsung/odroid/odroid.c index 3e594fd850..79d14ead01 100644
>> --- a/board/samsung/odroid/odroid.c
>> +++ b/board/samsung/odroid/odroid.c
>> @@ -468,8 +468,6 @@ struct dwc2_plat_otg_data s5pc210_otg_data = {
>> };
>> #endif
>>
>> -#if defined(CONFIG_USB_GADGET) || defined(CONFIG_CMD_USB)
>> -
>> static void set_usb3503_ref_clk(void)
>> {
>> #ifdef CONFIG_BOARD_TYPES
>> @@ -490,9 +488,8 @@ static void set_usb3503_ref_clk(void)
>> #endif /* CONFIG_BOARD_TYPES */
>> }
>>
>> -int board_usb_init(int index, enum usb_init_type init)
>> +int exynos_usb_init(void)
>> {
>> -#ifdef CONFIG_CMD_USB
>> struct udevice *dev;
>> int ret;
>>
>> @@ -501,6 +498,7 @@ int board_usb_init(int index, enum usb_init_type
>> init) /* Disconnect, Reset, Connect */
>> gpio_direction_output(EXYNOS4X12_GPIO_X34, 0);
>> gpio_direction_output(EXYNOS4X12_GPIO_X35, 0);
>> + sdelay(200000);
>> gpio_direction_output(EXYNOS4X12_GPIO_X35, 1);
>> gpio_direction_output(EXYNOS4X12_GPIO_X34, 1);
>>
>> @@ -530,7 +528,13 @@ int board_usb_init(int index, enum usb_init_type
>> init) pr_err("Regulator %s value setting error: %d\n", dev->name,
>> ret); return ret;
>> }
>> -#endif
>> +
>> + return 0;
>> +}
>> +
>> +#ifdef CONFIG_USB_GADGET
>> +int board_usb_init(int index, enum usb_init_type init)
>
> We are not allowed to add board_usb_* code anymore. The _only_ way to
> update/fix the USB gadget code is to convert it to driver model [DM] and
> describe it via DTS.
>
> Please consider converting this code to DM/DTS.
Patrick currently has a series enabling DWC2 OTG DM support which I'm
attempting to switch the rk3288 over too. A branch can be found at
https://github.com/patrickdelaunay/u-boot/tree/v2019.04-stm32mp for testing.
>
>> +{
>> debug("USB_udc_probe\n");
>> return dwc2_udc_probe(&s5pc210_otg_data);
>> }
>> diff --git a/drivers/usb/host/ehci-exynos.c
>> b/drivers/usb/host/ehci-exynos.c index fabc662eb6..b0f7bd4936 100644
>> --- a/drivers/usb/host/ehci-exynos.c
>> +++ b/drivers/usb/host/ehci-exynos.c
>> @@ -31,6 +31,8 @@ struct exynos_ehci_platdata {
>> struct gpio_desc vbus_gpio;
>> };
>>
>> +extern int exynos_usb_init(void);
>> +
>> /**
>> * Contains pointers to register base addresses
>> * for the usb controller.
>> @@ -152,6 +154,11 @@ static void exynos4412_setup_usb_phy(struct
>> exynos4412_usb_phy *usb) setbits_le32(&usb->usbphyrstcon,
>> (RSTCON_HOSTPHY_SWRST | RSTCON_SWRST)); udelay(10);
>> clrbits_le32(&usb->usbphyrstcon, (RSTCON_HOSTPHY_SWRST |
>> RSTCON_SWRST)); +
>> + /*
>> + * "usb start" initialize the usb driver
>> + */
>> + exynos_usb_init();
>> }
>>
>> static void setup_usb_phy(struct exynos_usb_phy *usb)
>
>
>
>
> Best regards,
>
> Lukasz Majewski
>
> --
>
> DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
>
More information about the U-Boot
mailing list