All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Kaehlcke <mka@chromium.org>
To: Benjamin Bara <bbara93@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Benjamin Bara <benjamin.bara@skidata.com>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org
Subject: Re: [PATCH v2 1/3] usb: misc: onboard-hub: support multiple power supplies
Date: Wed, 21 Jun 2023 14:57:03 +0000	[thread overview]
Message-ID: <ZJMPv6Fm3On0ITFi@google.com> (raw)
In-Reply-To: <20230620-hx3-v2-1-76a53434c713@skidata.com>

Hi,

On Wed, Jun 21, 2023 at 04:26:27PM +0200, Benjamin Bara wrote:
> From: Benjamin Bara <benjamin.bara@skidata.com>
>
> As some of the onboard hubs require multiple power supplies, provide the
> environment to support them.
> 
> Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>

Overall this looks good to me, a few nits inside.

> ---
> v2:
> - replace (err != 0) with (err)
> ---
>  drivers/usb/misc/onboard_usb_hub.c | 36 ++++++++++++++++++++++++++++--------
>  drivers/usb/misc/onboard_usb_hub.h |  1 +
>  2 files changed, 29 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/usb/misc/onboard_usb_hub.c b/drivers/usb/misc/onboard_usb_hub.c
> index 12fc6eb67c3b..3de30356a684 100644
> --- a/drivers/usb/misc/onboard_usb_hub.c
> +++ b/drivers/usb/misc/onboard_usb_hub.c
> @@ -27,6 +27,12 @@
>  
>  #include "onboard_usb_hub.h"
>  
> +#define SUPPLIES_NUM_MAX 2

MAX_SUPPLIES?

add empty line

> +static const char * const supply_names[] = {
> +	"vdd",
> +	"vdd2",
> +};
> +
>  static void onboard_hub_attach_usb_driver(struct work_struct *work);
>  
>  static struct usb_device_driver onboard_hub_usbdev_driver;
> @@ -40,7 +46,8 @@ struct usbdev_node {
>  };
>  
>  struct onboard_hub {
> -	struct regulator *vdd;
> +	struct regulator_bulk_data supplies[SUPPLIES_NUM_MAX];
> +	unsigned int supplies_num;

num_supplies?

>  	struct device *dev;
>  	const struct onboard_hub_pdata *pdata;
>  	struct gpio_desc *reset_gpio;
> @@ -55,9 +62,9 @@ static int onboard_hub_power_on(struct onboard_hub *hub)
>  {
>  	int err;
>  
> -	err = regulator_enable(hub->vdd);
> +	err = regulator_bulk_enable(hub->supplies_num, hub->supplies);
>  	if (err) {
> -		dev_err(hub->dev, "failed to enable regulator: %d\n", err);
> +		dev_err(hub->dev, "failed to enable supplies: %d\n", err);
>  		return err;
>  	}
>  
> @@ -75,9 +82,9 @@ static int onboard_hub_power_off(struct onboard_hub *hub)
>  
>  	gpiod_set_value_cansleep(hub->reset_gpio, 1);
>  
> -	err = regulator_disable(hub->vdd);
> +	err = regulator_bulk_disable(hub->supplies_num, hub->supplies);
>  	if (err) {
> -		dev_err(hub->dev, "failed to disable regulator: %d\n", err);
> +		dev_err(hub->dev, "failed to disable supplies: %d\n", err);
>  		return err;
>  	}
>  
> @@ -232,6 +239,7 @@ static int onboard_hub_probe(struct platform_device *pdev)
>  	const struct of_device_id *of_id;
>  	struct device *dev = &pdev->dev;
>  	struct onboard_hub *hub;
> +	unsigned int i;
>  	int err;
>  
>  	hub = devm_kzalloc(dev, sizeof(*hub), GFP_KERNEL);
> @@ -246,9 +254,21 @@ static int onboard_hub_probe(struct platform_device *pdev)
>  	if (!hub->pdata)
>  		return -EINVAL;
>  
> -	hub->vdd = devm_regulator_get(dev, "vdd");
> -	if (IS_ERR(hub->vdd))
> -		return PTR_ERR(hub->vdd);
> +	if (hub->pdata->supplies_num > SUPPLIES_NUM_MAX)
> +		return dev_err_probe(dev, -EINVAL, "max %d supplies supported!\n",
> +				     SUPPLIES_NUM_MAX);
> +	hub->supplies_num = 1;
> +	if (hub->pdata->supplies_num > 1)
> +		hub->supplies_num = hub->pdata->supplies_num;

Please change the above to:

	if (hub->pdata->supplies_num != 0)
		hub->supplies_num = hub->pdata->supplies_num;
	else
		hub->supplies_num = 1;

> +
> +	for (i = 0; i < SUPPLIES_NUM_MAX; i++)
> +		hub->supplies[i].supply = supply_names[i];
> +
> +	err = devm_regulator_bulk_get(dev, hub->supplies_num, hub->supplies);
> +	if (err) {
> +		dev_err(dev, "Failed to get regulator supplies: %d\n", err);
> +		return err;
> +	}
>  
>  	hub->reset_gpio = devm_gpiod_get_optional(dev, "reset",
>  						  GPIOD_OUT_HIGH);
> diff --git a/drivers/usb/misc/onboard_usb_hub.h b/drivers/usb/misc/onboard_usb_hub.h
> index aca5f50eb0da..657190bf1799 100644
> --- a/drivers/usb/misc/onboard_usb_hub.h
> +++ b/drivers/usb/misc/onboard_usb_hub.h
> @@ -8,6 +8,7 @@
>  
>  struct onboard_hub_pdata {
>  	unsigned long reset_us;		/* reset pulse width in us */
> +	unsigned int supplies_num;	/* num of supplies: 0 considered as 1 */

num_supplies?

s/num of/number of/

>  };

  reply	other threads:[~2023-06-21 15:11 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-21 14:26 [PATCH v2 0/3] usb: misc: onboard_usb_hub: add support for Cypress HX3 USB 3.0 family Benjamin Bara
2023-06-21 14:26 ` [PATCH v2 1/3] usb: misc: onboard-hub: support multiple power supplies Benjamin Bara
2023-06-21 14:57   ` Matthias Kaehlcke [this message]
2023-06-21 15:45     ` Benjamin Bara
2023-06-21 15:52       ` Matthias Kaehlcke
2023-06-22  5:16     ` Alexander Stein
2023-06-22  5:31       ` Benjamin Bara
2023-06-21 14:26 ` [PATCH v2 2/3] usb: misc: onboard-hub: add support for Cypress HX3 USB 3.0 family Benjamin Bara
2023-06-21 15:01   ` Matthias Kaehlcke
2023-06-21 14:26 ` [PATCH v2 3/3] dt-bindings: usb: Add binding " Benjamin Bara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZJMPv6Fm3On0ITFi@google.com \
    --to=mka@chromium.org \
    --cc=bbara93@gmail.com \
    --cc=benjamin.bara@skidata.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.