[U-Boot] [PATCH v5 04/11] usb: host: xhci-rockchip: use fixed regulator to control vbus
Marek Vasut
marex at denx.de
Thu Jun 15 16:53:08 UTC 2017
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 ?
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