[PATCH v2 12/32] board: dragonboard410c: upstream DT compat

Caleb Connolly caleb.connolly at linaro.org
Fri Dec 22 17:13:50 CET 2023


Hi Sumit,

[...]
>> -       if (init == USB_INIT_HOST) {
>> -               /* Start USB Hub */
>> -               dm_gpio_set_dir_flags(&hub_reset,
>> -                                     GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
>> -               mdelay(100);
>> -               /* Switch usb to host connectors */
>> -               dm_gpio_set_dir_flags(&usb_sel,
>> -                                     GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
>> -               mdelay(100);
>> -       } else { /* Device */
>> -               /* Disable hub */
>> -               dm_gpio_set_dir_flags(&hub_reset, GPIOD_IS_OUT);
>> -               /* Switch back to device connector */
>> -               dm_gpio_set_dir_flags(&usb_sel, GPIOD_IS_OUT);
>> +       /* Select "default" or "device" pinctrl */
>> +       switch (init) {
>> +       case USB_INIT_HOST:
>> +               pinctrl_select_state(usb, "default");
>> +               break;
>> +       case USB_INIT_DEVICE:
>> +               pinctrl_select_state(usb, "device");
>> +               break;
>> +       default:
>> +               debug("Unknown usb_init_type %d\n", init);
>> +               break;
> 
> Can this pinctrl configuration move to the corresponding USB driver instead?

Possibly, this is definitely something where DT is currently lacking,
similar discussions in Linux resulted in the USB onboard_hub driver, it
would be nice to add support for that U-Boot at some point.

I don't think putting the pinctrl code directly into the USB driver is
the right way to go, as it definitely wouldn't be accepted in upstream
DT bindings.
> 
> -Sumit
> 
-- 
// Caleb (they/them)


More information about the U-Boot mailing list