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 |
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
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
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
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
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 --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
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(-)