diff mbox series

[4/8] pinctrl: Add third argument label for pinctrl_gpio_request() function

Message ID 20220725115615.420-5-pali@kernel.org
State Accepted
Delegated to: Stefan Roese
Headers show
Series arm: mvebu: Add Armada 38x pin muxing support | expand

Commit Message

Pali Rohár July 25, 2022, 11:56 a.m. UTC
This change allows to use pinctrl_gpio_request() function as a direct
pointer for dm_gpio_ops's .request callback.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 drivers/pinctrl/pinctrl-uclass.c | 3 ++-
 include/dm/pinctrl.h             | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

Comments

Stefan Roese July 28, 2022, 6:27 a.m. UTC | #1
On 25.07.22 13:56, Pali Rohár wrote:
> This change allows to use pinctrl_gpio_request() function as a direct
> pointer for dm_gpio_ops's .request callback.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
>   drivers/pinctrl/pinctrl-uclass.c | 3 ++-
>   include/dm/pinctrl.h             | 3 ++-
>   2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
> index 38ce2b5e0ad9..ce2d5ddf6d92 100644
> --- a/drivers/pinctrl/pinctrl-uclass.c
> +++ b/drivers/pinctrl/pinctrl-uclass.c
> @@ -222,9 +222,10 @@ pinctrl_gpio_get_pinctrl_and_offset(struct udevice *dev, unsigned offset,
>    *
>    * @dev: GPIO peripheral device
>    * @offset: the GPIO pin offset from the GPIO controller
> + * @label: the GPIO pin label
>    * @return: 0 on success, or negative error code on failure
>    */
> -int pinctrl_gpio_request(struct udevice *dev, unsigned offset)
> +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label)
>   {
>   	const struct pinctrl_ops *ops;
>   	struct udevice *pctldev;
> diff --git a/include/dm/pinctrl.h b/include/dm/pinctrl.h
> index 5436dc4a9a71..e3e50afeaff0 100644
> --- a/include/dm/pinctrl.h
> +++ b/include/dm/pinctrl.h
> @@ -611,10 +611,11 @@ int pinctrl_get_pin_name(struct udevice *dev, int selector, char *buf,
>    * pinctrl_gpio_request() - Request a single pin to be used as GPIO
>    * @dev:	GPIO peripheral device
>    * @offset:	GPIO pin offset from the GPIO controller
> + * @label:	GPIO label
>    *
>    * Return: 0 on success, or negative error code on failure
>    */
> -int pinctrl_gpio_request(struct udevice *dev, unsigned offset);
> +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label);
>   
>   /**
>    * pinctrl_gpio_free() - Free a single pin used as GPIO

Viele Grüße,
Stefan Roese
Stefan Roese July 28, 2022, 1:07 p.m. UTC | #2
Hi Pali.

On 25.07.22 13:56, Pali Rohár wrote:
> This change allows to use pinctrl_gpio_request() function as a direct
> pointer for dm_gpio_ops's .request callback.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>

Running a CI build on Azure, I see these errors at least for this
target:

rzg2_beacon

drivers/gpio/gpio-rcar.c: In function 'rcar_gpio_request':
drivers/gpio/gpio-rcar.c:136:16: error: too few arguments to function 
'pinctrl_gpio_request'
   136 |         return pinctrl_gpio_request(dev, offset);
       |                ^~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpio/gpio-rcar.c:12:
include/dm/pinctrl.h:618:5: note: declared here
   618 | int pinctrl_gpio_request(struct udevice *dev, unsigned offset, 
const char *label);
       |     ^~~~~~~~~~~~~~~~~~~~
drivers/gpio/gpio-rcar.c:137:1: warning: control reaches end of non-void 
function [-Wreturn-type]
   137 | }
       | ^


Please run this (and if possible all more complex) patchset via some
world build / CI.

Thanks,
Stefan

> ---
>   drivers/pinctrl/pinctrl-uclass.c | 3 ++-
>   include/dm/pinctrl.h             | 3 ++-
>   2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
> index 38ce2b5e0ad9..ce2d5ddf6d92 100644
> --- a/drivers/pinctrl/pinctrl-uclass.c
> +++ b/drivers/pinctrl/pinctrl-uclass.c
> @@ -222,9 +222,10 @@ pinctrl_gpio_get_pinctrl_and_offset(struct udevice *dev, unsigned offset,
>    *
>    * @dev: GPIO peripheral device
>    * @offset: the GPIO pin offset from the GPIO controller
> + * @label: the GPIO pin label
>    * @return: 0 on success, or negative error code on failure
>    */
> -int pinctrl_gpio_request(struct udevice *dev, unsigned offset)
> +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label)
>   {
>   	const struct pinctrl_ops *ops;
>   	struct udevice *pctldev;
> diff --git a/include/dm/pinctrl.h b/include/dm/pinctrl.h
> index 5436dc4a9a71..e3e50afeaff0 100644
> --- a/include/dm/pinctrl.h
> +++ b/include/dm/pinctrl.h
> @@ -611,10 +611,11 @@ int pinctrl_get_pin_name(struct udevice *dev, int selector, char *buf,
>    * pinctrl_gpio_request() - Request a single pin to be used as GPIO
>    * @dev:	GPIO peripheral device
>    * @offset:	GPIO pin offset from the GPIO controller
> + * @label:	GPIO label
>    *
>    * Return: 0 on success, or negative error code on failure
>    */
> -int pinctrl_gpio_request(struct udevice *dev, unsigned offset);
> +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label);
>   
>   /**
>    * pinctrl_gpio_free() - Free a single pin used as GPIO

Viele Grüße,
Stefan Roese
Pali Rohár July 28, 2022, 1:15 p.m. UTC | #3
On Thursday 28 July 2022 15:07:51 Stefan Roese wrote:
> Hi Pali.
> 
> On 25.07.22 13:56, Pali Rohár wrote:
> > This change allows to use pinctrl_gpio_request() function as a direct
> > pointer for dm_gpio_ops's .request callback.
> > 
> > Signed-off-by: Pali Rohár <pali@kernel.org>
> 
> Running a CI build on Azure, I see these errors at least for this
> target:
> 
> rzg2_beacon
> 
> drivers/gpio/gpio-rcar.c: In function 'rcar_gpio_request':
> drivers/gpio/gpio-rcar.c:136:16: error: too few arguments to function
> 'pinctrl_gpio_request'
>   136 |         return pinctrl_gpio_request(dev, offset);
>       |                ^~~~~~~~~~~~~~~~~~~~
> In file included from drivers/gpio/gpio-rcar.c:12:
> include/dm/pinctrl.h:618:5: note: declared here
>   618 | int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const
> char *label);
>       |     ^~~~~~~~~~~~~~~~~~~~
> drivers/gpio/gpio-rcar.c:137:1: warning: control reaches end of non-void
> function [-Wreturn-type]
>   137 | }
>       | ^

Ou... I think that this fixup should fix this error:

diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
index 76f47027a3ea..138801850d3e 100644
--- a/drivers/gpio/gpio-rcar.c
+++ b/drivers/gpio/gpio-rcar.c
@@ -133,7 +133,7 @@ static int rcar_gpio_get_function(struct udevice *dev, unsigned offset)
 static int rcar_gpio_request(struct udevice *dev, unsigned offset,
 			     const char *label)
 {
-	return pinctrl_gpio_request(dev, offset);
+	return pinctrl_gpio_request(dev, offset, label);
 }
 
 static int rcar_gpio_free(struct udevice *dev, unsigned offset)

> Please run this (and if possible all more complex) patchset via some
> world build / CI.

I opened pull request on github, it should run CI tests:
https://github.com/u-boot/u-boot/pull/202

I included there also above fixup.

> Thanks,
> Stefan
> 
> > ---
> >   drivers/pinctrl/pinctrl-uclass.c | 3 ++-
> >   include/dm/pinctrl.h             | 3 ++-
> >   2 files changed, 4 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
> > index 38ce2b5e0ad9..ce2d5ddf6d92 100644
> > --- a/drivers/pinctrl/pinctrl-uclass.c
> > +++ b/drivers/pinctrl/pinctrl-uclass.c
> > @@ -222,9 +222,10 @@ pinctrl_gpio_get_pinctrl_and_offset(struct udevice *dev, unsigned offset,
> >    *
> >    * @dev: GPIO peripheral device
> >    * @offset: the GPIO pin offset from the GPIO controller
> > + * @label: the GPIO pin label
> >    * @return: 0 on success, or negative error code on failure
> >    */
> > -int pinctrl_gpio_request(struct udevice *dev, unsigned offset)
> > +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label)
> >   {
> >   	const struct pinctrl_ops *ops;
> >   	struct udevice *pctldev;
> > diff --git a/include/dm/pinctrl.h b/include/dm/pinctrl.h
> > index 5436dc4a9a71..e3e50afeaff0 100644
> > --- a/include/dm/pinctrl.h
> > +++ b/include/dm/pinctrl.h
> > @@ -611,10 +611,11 @@ int pinctrl_get_pin_name(struct udevice *dev, int selector, char *buf,
> >    * pinctrl_gpio_request() - Request a single pin to be used as GPIO
> >    * @dev:	GPIO peripheral device
> >    * @offset:	GPIO pin offset from the GPIO controller
> > + * @label:	GPIO label
> >    *
> >    * Return: 0 on success, or negative error code on failure
> >    */
> > -int pinctrl_gpio_request(struct udevice *dev, unsigned offset);
> > +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label);
> >   /**
> >    * pinctrl_gpio_free() - Free a single pin used as GPIO
> 
> Viele Grüße,
> Stefan Roese
> 
> -- 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de
Stefan Roese July 28, 2022, 1:18 p.m. UTC | #4
On 28.07.22 15:15, Pali Rohár wrote:
> On Thursday 28 July 2022 15:07:51 Stefan Roese wrote:
>> Hi Pali.
>>
>> On 25.07.22 13:56, Pali Rohár wrote:
>>> This change allows to use pinctrl_gpio_request() function as a direct
>>> pointer for dm_gpio_ops's .request callback.
>>>
>>> Signed-off-by: Pali Rohár <pali@kernel.org>
>>
>> Running a CI build on Azure, I see these errors at least for this
>> target:
>>
>> rzg2_beacon
>>
>> drivers/gpio/gpio-rcar.c: In function 'rcar_gpio_request':
>> drivers/gpio/gpio-rcar.c:136:16: error: too few arguments to function
>> 'pinctrl_gpio_request'
>>    136 |         return pinctrl_gpio_request(dev, offset);
>>        |                ^~~~~~~~~~~~~~~~~~~~
>> In file included from drivers/gpio/gpio-rcar.c:12:
>> include/dm/pinctrl.h:618:5: note: declared here
>>    618 | int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const
>> char *label);
>>        |     ^~~~~~~~~~~~~~~~~~~~
>> drivers/gpio/gpio-rcar.c:137:1: warning: control reaches end of non-void
>> function [-Wreturn-type]
>>    137 | }
>>        | ^
> 
> Ou... I think that this fixup should fix this error:
> 
> diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
> index 76f47027a3ea..138801850d3e 100644
> --- a/drivers/gpio/gpio-rcar.c
> +++ b/drivers/gpio/gpio-rcar.c
> @@ -133,7 +133,7 @@ static int rcar_gpio_get_function(struct udevice *dev, unsigned offset)
>   static int rcar_gpio_request(struct udevice *dev, unsigned offset,
>   			     const char *label)
>   {
> -	return pinctrl_gpio_request(dev, offset);
> +	return pinctrl_gpio_request(dev, offset, label);
>   }
>   
>   static int rcar_gpio_free(struct udevice *dev, unsigned offset)
> 
>> Please run this (and if possible all more complex) patchset via some
>> world build / CI.
> 
> I opened pull request on github, it should run CI tests:
> https://github.com/u-boot/u-boot/pull/202
> 
> I included there also above fixup.

Thanks. Let's see, if this now runs fine.

Thanks,
Stefan

>> Thanks,
>> Stefan
>>
>>> ---
>>>    drivers/pinctrl/pinctrl-uclass.c | 3 ++-
>>>    include/dm/pinctrl.h             | 3 ++-
>>>    2 files changed, 4 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
>>> index 38ce2b5e0ad9..ce2d5ddf6d92 100644
>>> --- a/drivers/pinctrl/pinctrl-uclass.c
>>> +++ b/drivers/pinctrl/pinctrl-uclass.c
>>> @@ -222,9 +222,10 @@ pinctrl_gpio_get_pinctrl_and_offset(struct udevice *dev, unsigned offset,
>>>     *
>>>     * @dev: GPIO peripheral device
>>>     * @offset: the GPIO pin offset from the GPIO controller
>>> + * @label: the GPIO pin label
>>>     * @return: 0 on success, or negative error code on failure
>>>     */
>>> -int pinctrl_gpio_request(struct udevice *dev, unsigned offset)
>>> +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label)
>>>    {
>>>    	const struct pinctrl_ops *ops;
>>>    	struct udevice *pctldev;
>>> diff --git a/include/dm/pinctrl.h b/include/dm/pinctrl.h
>>> index 5436dc4a9a71..e3e50afeaff0 100644
>>> --- a/include/dm/pinctrl.h
>>> +++ b/include/dm/pinctrl.h
>>> @@ -611,10 +611,11 @@ int pinctrl_get_pin_name(struct udevice *dev, int selector, char *buf,
>>>     * pinctrl_gpio_request() - Request a single pin to be used as GPIO
>>>     * @dev:	GPIO peripheral device
>>>     * @offset:	GPIO pin offset from the GPIO controller
>>> + * @label:	GPIO label
>>>     *
>>>     * Return: 0 on success, or negative error code on failure
>>>     */
>>> -int pinctrl_gpio_request(struct udevice *dev, unsigned offset);
>>> +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label);
>>>    /**
>>>     * pinctrl_gpio_free() - Free a single pin used as GPIO
>>
>> Viele Grüße,
>> Stefan Roese
>>
>> -- 
>> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>> Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

Viele Grüße,
Stefan Roese
Pali Rohár July 28, 2022, 3:33 p.m. UTC | #5
On Thursday 28 July 2022 15:18:46 Stefan Roese wrote:
> On 28.07.22 15:15, Pali Rohár wrote:
> > On Thursday 28 July 2022 15:07:51 Stefan Roese wrote:
> > > Hi Pali.
> > > 
> > > On 25.07.22 13:56, Pali Rohár wrote:
> > > > This change allows to use pinctrl_gpio_request() function as a direct
> > > > pointer for dm_gpio_ops's .request callback.
> > > > 
> > > > Signed-off-by: Pali Rohár <pali@kernel.org>
> > > 
> > > Running a CI build on Azure, I see these errors at least for this
> > > target:
> > > 
> > > rzg2_beacon
> > > 
> > > drivers/gpio/gpio-rcar.c: In function 'rcar_gpio_request':
> > > drivers/gpio/gpio-rcar.c:136:16: error: too few arguments to function
> > > 'pinctrl_gpio_request'
> > >    136 |         return pinctrl_gpio_request(dev, offset);
> > >        |                ^~~~~~~~~~~~~~~~~~~~
> > > In file included from drivers/gpio/gpio-rcar.c:12:
> > > include/dm/pinctrl.h:618:5: note: declared here
> > >    618 | int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const
> > > char *label);
> > >        |     ^~~~~~~~~~~~~~~~~~~~
> > > drivers/gpio/gpio-rcar.c:137:1: warning: control reaches end of non-void
> > > function [-Wreturn-type]
> > >    137 | }
> > >        | ^
> > 
> > Ou... I think that this fixup should fix this error:
> > 
> > diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
> > index 76f47027a3ea..138801850d3e 100644
> > --- a/drivers/gpio/gpio-rcar.c
> > +++ b/drivers/gpio/gpio-rcar.c
> > @@ -133,7 +133,7 @@ static int rcar_gpio_get_function(struct udevice *dev, unsigned offset)
> >   static int rcar_gpio_request(struct udevice *dev, unsigned offset,
> >   			     const char *label)
> >   {
> > -	return pinctrl_gpio_request(dev, offset);
> > +	return pinctrl_gpio_request(dev, offset, label);
> >   }
> >   static int rcar_gpio_free(struct udevice *dev, unsigned offset)
> > 
> > > Please run this (and if possible all more complex) patchset via some
> > > world build / CI.
> > 
> > I opened pull request on github, it should run CI tests:
> > https://github.com/u-boot/u-boot/pull/202
> > 
> > I included there also above fixup.
> 
> Thanks. Let's see, if this now runs fine.

Tests passed!

> Thanks,
> Stefan
> 
> > > Thanks,
> > > Stefan
> > > 
> > > > ---
> > > >    drivers/pinctrl/pinctrl-uclass.c | 3 ++-
> > > >    include/dm/pinctrl.h             | 3 ++-
> > > >    2 files changed, 4 insertions(+), 2 deletions(-)
> > > > 
> > > > diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
> > > > index 38ce2b5e0ad9..ce2d5ddf6d92 100644
> > > > --- a/drivers/pinctrl/pinctrl-uclass.c
> > > > +++ b/drivers/pinctrl/pinctrl-uclass.c
> > > > @@ -222,9 +222,10 @@ pinctrl_gpio_get_pinctrl_and_offset(struct udevice *dev, unsigned offset,
> > > >     *
> > > >     * @dev: GPIO peripheral device
> > > >     * @offset: the GPIO pin offset from the GPIO controller
> > > > + * @label: the GPIO pin label
> > > >     * @return: 0 on success, or negative error code on failure
> > > >     */
> > > > -int pinctrl_gpio_request(struct udevice *dev, unsigned offset)
> > > > +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label)
> > > >    {
> > > >    	const struct pinctrl_ops *ops;
> > > >    	struct udevice *pctldev;
> > > > diff --git a/include/dm/pinctrl.h b/include/dm/pinctrl.h
> > > > index 5436dc4a9a71..e3e50afeaff0 100644
> > > > --- a/include/dm/pinctrl.h
> > > > +++ b/include/dm/pinctrl.h
> > > > @@ -611,10 +611,11 @@ int pinctrl_get_pin_name(struct udevice *dev, int selector, char *buf,
> > > >     * pinctrl_gpio_request() - Request a single pin to be used as GPIO
> > > >     * @dev:	GPIO peripheral device
> > > >     * @offset:	GPIO pin offset from the GPIO controller
> > > > + * @label:	GPIO label
> > > >     *
> > > >     * Return: 0 on success, or negative error code on failure
> > > >     */
> > > > -int pinctrl_gpio_request(struct udevice *dev, unsigned offset);
> > > > +int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label);
> > > >    /**
> > > >     * pinctrl_gpio_free() - Free a single pin used as GPIO
> > > 
> > > Viele Grüße,
> > > Stefan Roese
> > > 
> > > -- 
> > > DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> > > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> > > Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de
> 
> Viele Grüße,
> Stefan Roese
> 
> -- 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de
diff mbox series

Patch

diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
index 38ce2b5e0ad9..ce2d5ddf6d92 100644
--- a/drivers/pinctrl/pinctrl-uclass.c
+++ b/drivers/pinctrl/pinctrl-uclass.c
@@ -222,9 +222,10 @@  pinctrl_gpio_get_pinctrl_and_offset(struct udevice *dev, unsigned offset,
  *
  * @dev: GPIO peripheral device
  * @offset: the GPIO pin offset from the GPIO controller
+ * @label: the GPIO pin label
  * @return: 0 on success, or negative error code on failure
  */
-int pinctrl_gpio_request(struct udevice *dev, unsigned offset)
+int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label)
 {
 	const struct pinctrl_ops *ops;
 	struct udevice *pctldev;
diff --git a/include/dm/pinctrl.h b/include/dm/pinctrl.h
index 5436dc4a9a71..e3e50afeaff0 100644
--- a/include/dm/pinctrl.h
+++ b/include/dm/pinctrl.h
@@ -611,10 +611,11 @@  int pinctrl_get_pin_name(struct udevice *dev, int selector, char *buf,
  * pinctrl_gpio_request() - Request a single pin to be used as GPIO
  * @dev:	GPIO peripheral device
  * @offset:	GPIO pin offset from the GPIO controller
+ * @label:	GPIO label
  *
  * Return: 0 on success, or negative error code on failure
  */
-int pinctrl_gpio_request(struct udevice *dev, unsigned offset);
+int pinctrl_gpio_request(struct udevice *dev, unsigned offset, const char *label);
 
 /**
  * pinctrl_gpio_free() - Free a single pin used as GPIO