[U-Boot] [PATCH 4/8] usb: host: xhci-rockchip: add support for rk3328

Marek Vasut marex at denx.de
Sat May 27 10:13:54 UTC 2017


On 05/27/2017 12:09 PM, rock-chips(daniel.meng) wrote:
> 
> 
> On 2017/5/27 16:38, Marek Vasut wrote:
>> On 05/27/2017 09:44 AM, rock-chips(daniel.meng) wrote:
>>>
>>> On 2017/5/18 1:07, Marek Vasut wrote:
>>>> On 05/17/2017 12:21 PM, Meng Dongyang wrote:
>>>>> Add the compatible "rockchip,rk3328-xhci" in match table
>>>>> for rk3328 to probe xhci controller. Turn off vbus when
>>>>> usb stop.
>>>>>
>>>>> Signed-off-by: Meng Dongyang <daniel.meng at rock-chips.com>
>>>>> ---
>>>>>   drivers/usb/host/xhci-rockchip.c | 6 ++++++
>>>>>   1 file changed, 6 insertions(+)
>>>>>
>>>>> diff --git a/drivers/usb/host/xhci-rockchip.c
>>>>> b/drivers/usb/host/xhci-rockchip.c
>>>>> index f559830..8db92cb 100644
>>>>> --- a/drivers/usb/host/xhci-rockchip.c
>>>>> +++ b/drivers/usb/host/xhci-rockchip.c
>>>>> @@ -168,6 +168,7 @@ static int xhci_usb_probe(struct udevice *dev)
>>>>>     static int xhci_usb_remove(struct udevice *dev)
>>>>>   {
>>>>> +    struct rockchip_xhci_platdata *plat = dev_get_platdata(dev);
>>>>>       struct rockchip_xhci *ctx = dev_get_priv(dev);
>>>>>       int ret;
>>>>>   @@ -178,11 +179,15 @@ static int xhci_usb_remove(struct udevice *dev)
>>>>>       if (ret)
>>>>>           return ret;
>>>>>   +    if (dm_gpio_is_valid(&plat->vbus_gpio))
>>>>> +        dm_gpio_set_value(&plat->vbus_gpio, 0);
>>>> This should be a fixed regulator, then you don't have to mess with GPIOs
>>>> directly.
>>> Indeed, this is better to be a fixed regulator. Yet other platforms
>>> still use GPIOs directly.
>>> So I must change the dts of the other platforms if change like this.
>>> Maybe it's better to change
>>> by another commit. This patch is only for turning off vbus when usb stop.
>> How do you assure the polarity of this GPIO here though ? Anyway,
>> turning this into regulator could be done in separate patch if this
>> practice is already establish.
> I config the active voltageof gpio throw dts to assure the polarity.
> 
> for example:
>     vbus-gpio = <&gpio0 27 GPIO_ACTIVE_HIGH>;
> The active voltage is configed to high, then if I call the function
>     dm_gpio_set_value(&plat->vbus_gpio, 1);
> the gpio output voltage will be high.

So DM handles the polarity for you behind the scenes ?

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list