All of lore.kernel.org
 help / color / mirror / Atom feed
From: peter.chen@freescale.com (Peter Chen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] usb: misc: generic_onboard_hub: add generic onboard USB HUB driver
Date: Tue, 8 Dec 2015 17:26:56 +0800	[thread overview]
Message-ID: <20151208092655.GC16881@shlinux2> (raw)
In-Reply-To: <20151208061905.GM11966@pengutronix.de>

On Tue, Dec 08, 2015 at 07:19:05AM +0100, Sascha Hauer wrote:
> > +	hub_data = devm_kzalloc(dev, sizeof(*hub_data), GFP_KERNEL);
> > +	if (!hub_data)
> > +		return -ENOMEM;
> > +
> > +	if (dev->of_node) {
> > +		struct device_node *node = dev->of_node;
> > +
> > +		hub_data->clk = devm_clk_get(dev, "external_clk");
> 
> Please drop such _clk suffixes. The context already makes it clear that
> it's a clock.
> 

Will change.

> > +		if (IS_ERR(hub_data->clk)) {
> > +			dev_dbg(dev, "Can't get external clock: %ld\n",
> > +					PTR_ERR(hub_data->clk));
> > +		}
> > +
> > +		/*
> > +		 * Try to get the information for HUB reset, the
> > +		 * default setting like below:
> > +		 *
> > +		 * - Reset state is low
> > +		 * - The duration is 50us
> > +		 */
> > +		if (of_find_property(node, "hub-reset-active-high", NULL))
> > +			reset_pol = 1;
> > +
> > +		of_property_read_u32(node, "hub-reset-duration-us",
> > +			&duration_us);
> > +
> > +		gpiod_reset = devm_gpiod_get_optional(dev, "hub-reset",
> > +			reset_pol ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW);
> > +		ret = PTR_ERR_OR_ZERO(gpiod_reset);
> > +		if (ret) {
> > +			dev_err(dev, "Failed to get reset gpio, err = %d\n",
> > +				ret);
> > +			return ret;
> > +		}
> > +	} else if (pdata) {
> > +		hub_data->clk = pdata->ext_clk;
> 
> Passing clocks in platform_data is a no go. clocks must always be
> retrieved with clk_get.

Yes, you are right.

> 
> > +		duration_us = pdata->gpio_reset_duration_us;
> > +		reset_pol = pdata->gpio_reset_polarity;
> > +
> > +		if (gpio_is_valid(pdata->gpio_reset)) {
> > +			ret = devm_gpio_request_one(
> > +				dev, pdata->gpio_reset, reset_pol
> > +				? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW,
> > +				dev_name(dev));
> > +			if (!ret)
> > +				gpiod_reset = gpio_to_desc(pdata->gpio_reset);
> 
> If the gpio is valid then being unable to get it is an error.

I can't catch you, if the gpio is invalid, its descriptor will be NULL,
then, the code will not do any gpio operation.

> 
> Do you need this platform_data stuff at all?
> 

If not, how can I cover the platform which does not use dts, but still
uses these kinds of HUBs?

-- 

Best Regards,
Peter Chen

WARNING: multiple messages have this Message-ID (diff)
From: Peter Chen <peter.chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
To: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Cc: shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
	stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	pawel.moll-5wv7dgnIgG8@public.gmane.org,
	mark.rutland-5wv7dgnIgG8@public.gmane.org,
	festevam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
	patryk-6+2coLtxvIyvnle+31E0rA@public.gmane.org,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 1/3] usb: misc: generic_onboard_hub: add generic onboard USB HUB driver
Date: Tue, 8 Dec 2015 17:26:56 +0800	[thread overview]
Message-ID: <20151208092655.GC16881@shlinux2> (raw)
In-Reply-To: <20151208061905.GM11966-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>

On Tue, Dec 08, 2015 at 07:19:05AM +0100, Sascha Hauer wrote:
> > +	hub_data = devm_kzalloc(dev, sizeof(*hub_data), GFP_KERNEL);
> > +	if (!hub_data)
> > +		return -ENOMEM;
> > +
> > +	if (dev->of_node) {
> > +		struct device_node *node = dev->of_node;
> > +
> > +		hub_data->clk = devm_clk_get(dev, "external_clk");
> 
> Please drop such _clk suffixes. The context already makes it clear that
> it's a clock.
> 

Will change.

> > +		if (IS_ERR(hub_data->clk)) {
> > +			dev_dbg(dev, "Can't get external clock: %ld\n",
> > +					PTR_ERR(hub_data->clk));
> > +		}
> > +
> > +		/*
> > +		 * Try to get the information for HUB reset, the
> > +		 * default setting like below:
> > +		 *
> > +		 * - Reset state is low
> > +		 * - The duration is 50us
> > +		 */
> > +		if (of_find_property(node, "hub-reset-active-high", NULL))
> > +			reset_pol = 1;
> > +
> > +		of_property_read_u32(node, "hub-reset-duration-us",
> > +			&duration_us);
> > +
> > +		gpiod_reset = devm_gpiod_get_optional(dev, "hub-reset",
> > +			reset_pol ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW);
> > +		ret = PTR_ERR_OR_ZERO(gpiod_reset);
> > +		if (ret) {
> > +			dev_err(dev, "Failed to get reset gpio, err = %d\n",
> > +				ret);
> > +			return ret;
> > +		}
> > +	} else if (pdata) {
> > +		hub_data->clk = pdata->ext_clk;
> 
> Passing clocks in platform_data is a no go. clocks must always be
> retrieved with clk_get.

Yes, you are right.

> 
> > +		duration_us = pdata->gpio_reset_duration_us;
> > +		reset_pol = pdata->gpio_reset_polarity;
> > +
> > +		if (gpio_is_valid(pdata->gpio_reset)) {
> > +			ret = devm_gpio_request_one(
> > +				dev, pdata->gpio_reset, reset_pol
> > +				? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW,
> > +				dev_name(dev));
> > +			if (!ret)
> > +				gpiod_reset = gpio_to_desc(pdata->gpio_reset);
> 
> If the gpio is valid then being unable to get it is an error.

I can't catch you, if the gpio is invalid, its descriptor will be NULL,
then, the code will not do any gpio operation.

> 
> Do you need this platform_data stuff at all?
> 

If not, how can I cover the platform which does not use dts, but still
uses these kinds of HUBs?

-- 

Best Regards,
Peter Chen
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2015-12-08  9:26 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-08  1:37 [PATCH 0/3] USB: add generic onboard USB HUB driver Peter Chen
2015-12-08  1:37 ` Peter Chen
2015-12-08  1:37 ` [PATCH 1/3] usb: misc: generic_onboard_hub: " Peter Chen
2015-12-08  1:37   ` Peter Chen
2015-12-08  2:59   ` Felipe Balbi
2015-12-08  2:59     ` Felipe Balbi
2015-12-08  9:18     ` Peter Chen
2015-12-08  9:18       ` Peter Chen
2015-12-08 13:55       ` Felipe Balbi
2015-12-08 13:55         ` Felipe Balbi
2015-12-09  8:45         ` Peter Chen
2015-12-09  8:45           ` Peter Chen
2015-12-08  3:16   ` kbuild test robot
2015-12-08  3:16     ` kbuild test robot
2015-12-08  9:36     ` Peter Chen
2015-12-08  9:36       ` Peter Chen
2015-12-08  6:19   ` Sascha Hauer
2015-12-08  6:19     ` Sascha Hauer
2015-12-08  9:26     ` Peter Chen [this message]
2015-12-08  9:26       ` Peter Chen
2015-12-08  9:44       ` Sascha Hauer
2015-12-08  9:44         ` Sascha Hauer
2015-12-09  8:23         ` Peter Chen
2015-12-09  8:23           ` Peter Chen
2015-12-08  9:48   ` Arnd Bergmann
2015-12-08  9:48     ` Arnd Bergmann
2015-12-09  8:14     ` Peter Chen
2015-12-09  8:14       ` Peter Chen
2015-12-08 15:36   ` Mathieu Poirier
2015-12-08 15:36     ` Mathieu Poirier
2015-12-09  8:50     ` Peter Chen
2015-12-09  8:50       ` Peter Chen
2015-12-09  8:57       ` Lucas Stach
2015-12-09  8:57         ` Lucas Stach
2015-12-09  9:00         ` Peter Chen
2015-12-09  9:00           ` Peter Chen
2015-12-09  9:13           ` Lucas Stach
2015-12-09  9:13             ` Lucas Stach
2015-12-09  9:29             ` Peter Chen
2015-12-09  9:29               ` Peter Chen
2015-12-09  9:10         ` Arnd Bergmann
2015-12-09  9:10           ` Arnd Bergmann
2015-12-09  9:08           ` Peter Chen
2015-12-09  9:08             ` Peter Chen
2015-12-08  1:37 ` [PATCH 2/3] doc: dt-binding: generic onboard USB HUB Peter Chen
2015-12-08  1:37   ` Peter Chen
2015-12-08  2:30   ` Fabio Estevam
2015-12-08  2:30     ` Fabio Estevam
2015-12-08  9:20     ` Peter Chen
2015-12-08  9:20       ` Peter Chen
2015-12-08  9:45       ` Arnd Bergmann
2015-12-08  9:45         ` Arnd Bergmann
2015-12-08  9:50   ` Philipp Zabel
2015-12-08  9:50     ` Philipp Zabel
2015-12-08  9:58     ` Arnd Bergmann
2015-12-08  9:58       ` Arnd Bergmann
2015-12-09  3:24       ` Rob Herring
2015-12-09  3:24         ` Rob Herring
2015-12-09  8:12         ` Peter Chen
2015-12-09  8:12           ` Peter Chen
2015-12-09  8:55           ` Arnd Bergmann
2015-12-09  8:55             ` Arnd Bergmann
2015-12-15 20:21             ` Ulf Hansson
2015-12-15 20:21               ` Ulf Hansson
2015-12-16  2:46               ` Peter Chen
2015-12-16  2:46                 ` Peter Chen
2015-12-09  8:09     ` Peter Chen
2015-12-09  8:09       ` Peter Chen
2015-12-08  1:37 ` [PATCH 3/3] ARM: dts: imx6qdl-udoo.dtsi: fix onboard USB HUB property Peter Chen
2015-12-08  1:37   ` Peter Chen

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=20151208092655.GC16881@shlinux2 \
    --to=peter.chen@freescale.com \
    --cc=linux-arm-kernel@lists.infradead.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.