[U-Boot] [PATCH v5 04/11] usb: host: xhci-rockchip: use fixed regulator to control vbus

Simon Glass sjg at chromium.org
Sat Jun 17 03:41:55 UTC 2017


Hi Marek,

On 15 June 2017 at 10:53, Marek Vasut <marex at denx.de> wrote:
> On 06/15/2017 05:51 AM, rock-chips(daniel.meng) wrote:
>>
>>
>> On 2017/6/13 17:11, Marek Vasut wrote:
>>> On 06/12/2017 11:19 AM, Meng Dongyang wrote:
>>>> Use fixed regulator to control the voltage of vbus and turn off
>>>> vbus when usb stop.
>>>>
>>>> Signed-off-by: Meng Dongyang <daniel.meng at rock-chips.com>
>>>> ---
>>>>
>>>> Changes in v5:
>>>> - Propagate return value and print error message when failed
>>>>
>>>> Changes in v4:
>>>> - Splited from patch [Uboot,v3,04/10]
>>>> - Define set vbus as empty function if the macros aren't set
>>>>
>>>> Changes in v3: None
>>>> Changes in v2:
>>>> - Use fixed regulator to control vbus instead of gpio
>>>>
>>>>   drivers/usb/host/xhci-rockchip.c | 55
>>>> ++++++++++++++++++++++++++++++----------
>>>>   1 file changed, 42 insertions(+), 13 deletions(-)
>>>>
>>>> diff --git a/drivers/usb/host/xhci-rockchip.c
>>>> b/drivers/usb/host/xhci-rockchip.c
>>>> index f559830..15df6ef 100644
>>>> --- a/drivers/usb/host/xhci-rockchip.c
>>>> +++ b/drivers/usb/host/xhci-rockchip.c
>>>> @@ -11,10 +11,10 @@
>>>>   #include <malloc.h>
>>>>   #include <usb.h>
>>>>   #include <watchdog.h>
>>>> -#include <asm/gpio.h>
>>>>   #include <linux/errno.h>
>>>>   #include <linux/compat.h>
>>>>   #include <linux/usb/dwc3.h>
>>>> +#include <power/regulator.h>
>>>>     #include "xhci.h"
>>>>   @@ -23,7 +23,7 @@ DECLARE_GLOBAL_DATA_PTR;
>>>>   struct rockchip_xhci_platdata {
>>>>       fdt_addr_t hcd_base;
>>>>       fdt_addr_t phy_base;
>>>> -    struct gpio_desc vbus_gpio;
>>>> +    struct udevice *vbus_supply;
>>>>   };
>>>>     /*
>>>> @@ -48,7 +48,7 @@ static int xhci_usb_ofdata_to_platdata(struct
>>>> udevice *dev)
>>>>        */
>>>>       plat->hcd_base = dev_get_addr(dev);
>>>>       if (plat->hcd_base == FDT_ADDR_T_NONE) {
>>>> -        debug("Can't get the XHCI register base address\n");
>>>> +        error("Can't get the XHCI register base address\n");
>>>>           return -ENXIO;
>>>>       }
>>>>   @@ -62,19 +62,39 @@ static int xhci_usb_ofdata_to_platdata(struct
>>>> udevice *dev)
>>>>       }
>>>>         if (plat->phy_base == FDT_ADDR_T_NONE) {
>>>> -        debug("Can't get the usbphy register address\n");
>>>> +        error("Can't get the usbphy register address\n");
>>>>           return -ENXIO;
>>>>       }
>>>>   -    /* Vbus gpio */
>>>> -    ret = gpio_request_by_name(dev, "rockchip,vbus-gpio", 0,
>>>> -                   &plat->vbus_gpio, GPIOD_IS_OUT);
>>>> +#if defined(CONFIG_DM_USB) && defined(CONFIG_DM_REGULATOR)
>>> I don't think you need the CONFIG_DM_USB , the driver depends on it (or
>>> should) already anyway.
>>
>> Yes, I will remove it in v6.
>>>
>>>> +    /* Vbus regulator */
>>>> +    ret = device_get_supply_regulator(dev, "vbus-supply",
>>>> +                      &plat->vbus_supply);
>>> So I was curious, does this expand to empty function or is this not
>>> defined if CONFIG_DM_REGULATOR is not defined ?
>> This is not defined if CONFIG_DM_REGULATOR is not defined.
>
> Simon, can you comment on this ?

It looks OK to me.

>
> Daniel, I recommend you fix your mailer to insert at least one newline
> before the reply text.
>
> --
> Best regards,
> Marek Vasut


More information about the U-Boot mailing list