All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@baylibre.com>
To: Carlo Caione <ccaione@baylibre.com>,
	jbrunet@baylibre.com, narmstrong@baylibre.com,
	u-boot@lists.denx.de, linux-amlogic@lists.infradead.org
Cc: Carlo Caione <ccaione@baylibre.com>
Subject: Re: [PATCH] pinctrl: meson: axg: Fix GPIO pin offsets
Date: Thu, 06 Dec 2018 21:14:58 -0800	[thread overview]
Message-ID: <7hpnudyl2l.fsf@baylibre.com> (raw)
In-Reply-To: <20181206080811.30320-1-ccaione@baylibre.com>

Carlo Caione <ccaione@baylibre.com> writes:

> The pin number (first and last) in the bank definition is missing the
> pin base offset shifting. This is causing a miscalculation when
> retrieving the register and pin offsets in the GPIO driver causing the
> 'gpio' command to drive the wrong pins / GPIOs in the second GPIO chip
> (the AO bank is driven correctly because the shifting is already 0).
>
> Signed-off-by: Carlo Caione <ccaione@baylibre.com>

This looks like it could use a Fixes: tag for stable.

Kevin

> ---
>  drivers/pinctrl/meson/pinctrl-meson-axg.c | 22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/pinctrl/meson/pinctrl-meson-axg.c b/drivers/pinctrl/meson/pinctrl-meson-axg.c
> index a54fbce910..3bbbe817b4 100644
> --- a/drivers/pinctrl/meson/pinctrl-meson-axg.c
> +++ b/drivers/pinctrl/meson/pinctrl-meson-axg.c
> @@ -14,7 +14,7 @@
>  
>  #include "pinctrl-meson-axg.h"
>  
> -#define EE_OFF	14
> +#define EE_OFF	15
>  
>  /* emmc */
>  static const unsigned int emmc_nand_d0_pins[] = {BOOT_0};
> @@ -893,17 +893,17 @@ static struct meson_pmx_func meson_axg_aobus_functions[] = {
>  };
>  
>  static struct meson_bank meson_axg_periphs_banks[] = {
> -	/*   name    first      last      pullen  pull    dir     out     in  */
> -	BANK("Z",    GPIOZ_0,	GPIOZ_10, 3,  0,  3,  0,  9,  0,  10, 0,  11, 0),
> -	BANK("BOOT", BOOT_0,	BOOT_14,  4,  0,  4,  0,  12, 0,  13, 0,  14, 0),
> -	BANK("A",    GPIOA_0,	GPIOA_20, 0,  0,  0,  0,  0,  0,  1,  0,  2,  0),
> -	BANK("X",    GPIOX_0,	GPIOX_22, 2,  0,  2,  0,  6,  0,  7,  0,  8,  0),
> -	BANK("Y",    GPIOY_0,	GPIOY_15, 1,  0,  1,  0,  3,  0,  4,  0,  5,  0),
> +	/*   name    first                      last                    pullen  pull    dir     out     in  */
> +	BANK("Z",    PIN(GPIOZ_0, EE_OFF),	PIN(GPIOZ_10, EE_OFF), 3,  0,  3,  0,  9,  0,  10, 0,  11, 0),
> +	BANK("BOOT", PIN(BOOT_0, EE_OFF),	PIN(BOOT_14, EE_OFF),  4,  0,  4,  0,  12, 0,  13, 0,  14, 0),
> +	BANK("A",    PIN(GPIOA_0, EE_OFF),	PIN(GPIOA_20, EE_OFF), 0,  0,  0,  0,  0,  0,  1,  0,  2,  0),
> +	BANK("X",    PIN(GPIOX_0, EE_OFF),	PIN(GPIOX_22, EE_OFF), 2,  0,  2,  0,  6,  0,  7,  0,  8,  0),
> +	BANK("Y",    PIN(GPIOY_0, EE_OFF),	PIN(GPIOY_15, EE_OFF), 1,  0,  1,  0,  3,  0,  4,  0,  5,  0),
>  };
>  
>  static struct meson_bank meson_axg_aobus_banks[] = {
> -	/*   name    first      last       pullen  pull    dir     out     in  */
> -	BANK("AO",   GPIOAO_0,  GPIOAO_13, 0,  16,  0, 0,  0,  0,  0, 16,  1,  0),
> +	/*   name    first              last              pullen  pull    dir     out     in  */
> +	BANK("AO",   PIN(GPIOAO_0, 0),  PIN(GPIOAO_13, 0), 0,  16,  0, 0,  0,  0,  0, 16,  1,  0),
>  };
>  
>  static struct meson_pmx_bank meson_axg_periphs_pmx_banks[] = {
> @@ -931,11 +931,11 @@ static struct meson_axg_pmx_data meson_axg_aobus_pmx_banks_data = {
>  
>  struct meson_pinctrl_data meson_axg_periphs_pinctrl_data = {
>  	.name		= "periphs-banks",
> -	.pin_base	= 11,
> +	.pin_base	= 15,
>  	.groups		= meson_axg_periphs_groups,
>  	.funcs		= meson_axg_periphs_functions,
>  	.banks		= meson_axg_periphs_banks,
> -	.num_pins	= 100,
> +	.num_pins	= 86,
>  	.num_groups	= ARRAY_SIZE(meson_axg_periphs_groups),
>  	.num_funcs	= ARRAY_SIZE(meson_axg_periphs_functions),
>  	.num_banks	= ARRAY_SIZE(meson_axg_periphs_banks),
> -- 
> 2.19.1
>
>
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

WARNING: multiple messages have this Message-ID (diff)
From: Kevin Hilman <khilman@baylibre.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] pinctrl: meson: axg: Fix GPIO pin offsets
Date: Thu, 06 Dec 2018 21:14:58 -0800	[thread overview]
Message-ID: <7hpnudyl2l.fsf@baylibre.com> (raw)
In-Reply-To: <20181206080811.30320-1-ccaione@baylibre.com>

Carlo Caione <ccaione@baylibre.com> writes:

> The pin number (first and last) in the bank definition is missing the
> pin base offset shifting. This is causing a miscalculation when
> retrieving the register and pin offsets in the GPIO driver causing the
> 'gpio' command to drive the wrong pins / GPIOs in the second GPIO chip
> (the AO bank is driven correctly because the shifting is already 0).
>
> Signed-off-by: Carlo Caione <ccaione@baylibre.com>

This looks like it could use a Fixes: tag for stable.

Kevin

> ---
>  drivers/pinctrl/meson/pinctrl-meson-axg.c | 22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/pinctrl/meson/pinctrl-meson-axg.c b/drivers/pinctrl/meson/pinctrl-meson-axg.c
> index a54fbce910..3bbbe817b4 100644
> --- a/drivers/pinctrl/meson/pinctrl-meson-axg.c
> +++ b/drivers/pinctrl/meson/pinctrl-meson-axg.c
> @@ -14,7 +14,7 @@
>  
>  #include "pinctrl-meson-axg.h"
>  
> -#define EE_OFF	14
> +#define EE_OFF	15
>  
>  /* emmc */
>  static const unsigned int emmc_nand_d0_pins[] = {BOOT_0};
> @@ -893,17 +893,17 @@ static struct meson_pmx_func meson_axg_aobus_functions[] = {
>  };
>  
>  static struct meson_bank meson_axg_periphs_banks[] = {
> -	/*   name    first      last      pullen  pull    dir     out     in  */
> -	BANK("Z",    GPIOZ_0,	GPIOZ_10, 3,  0,  3,  0,  9,  0,  10, 0,  11, 0),
> -	BANK("BOOT", BOOT_0,	BOOT_14,  4,  0,  4,  0,  12, 0,  13, 0,  14, 0),
> -	BANK("A",    GPIOA_0,	GPIOA_20, 0,  0,  0,  0,  0,  0,  1,  0,  2,  0),
> -	BANK("X",    GPIOX_0,	GPIOX_22, 2,  0,  2,  0,  6,  0,  7,  0,  8,  0),
> -	BANK("Y",    GPIOY_0,	GPIOY_15, 1,  0,  1,  0,  3,  0,  4,  0,  5,  0),
> +	/*   name    first                      last                    pullen  pull    dir     out     in  */
> +	BANK("Z",    PIN(GPIOZ_0, EE_OFF),	PIN(GPIOZ_10, EE_OFF), 3,  0,  3,  0,  9,  0,  10, 0,  11, 0),
> +	BANK("BOOT", PIN(BOOT_0, EE_OFF),	PIN(BOOT_14, EE_OFF),  4,  0,  4,  0,  12, 0,  13, 0,  14, 0),
> +	BANK("A",    PIN(GPIOA_0, EE_OFF),	PIN(GPIOA_20, EE_OFF), 0,  0,  0,  0,  0,  0,  1,  0,  2,  0),
> +	BANK("X",    PIN(GPIOX_0, EE_OFF),	PIN(GPIOX_22, EE_OFF), 2,  0,  2,  0,  6,  0,  7,  0,  8,  0),
> +	BANK("Y",    PIN(GPIOY_0, EE_OFF),	PIN(GPIOY_15, EE_OFF), 1,  0,  1,  0,  3,  0,  4,  0,  5,  0),
>  };
>  
>  static struct meson_bank meson_axg_aobus_banks[] = {
> -	/*   name    first      last       pullen  pull    dir     out     in  */
> -	BANK("AO",   GPIOAO_0,  GPIOAO_13, 0,  16,  0, 0,  0,  0,  0, 16,  1,  0),
> +	/*   name    first              last              pullen  pull    dir     out     in  */
> +	BANK("AO",   PIN(GPIOAO_0, 0),  PIN(GPIOAO_13, 0), 0,  16,  0, 0,  0,  0,  0, 16,  1,  0),
>  };
>  
>  static struct meson_pmx_bank meson_axg_periphs_pmx_banks[] = {
> @@ -931,11 +931,11 @@ static struct meson_axg_pmx_data meson_axg_aobus_pmx_banks_data = {
>  
>  struct meson_pinctrl_data meson_axg_periphs_pinctrl_data = {
>  	.name		= "periphs-banks",
> -	.pin_base	= 11,
> +	.pin_base	= 15,
>  	.groups		= meson_axg_periphs_groups,
>  	.funcs		= meson_axg_periphs_functions,
>  	.banks		= meson_axg_periphs_banks,
> -	.num_pins	= 100,
> +	.num_pins	= 86,
>  	.num_groups	= ARRAY_SIZE(meson_axg_periphs_groups),
>  	.num_funcs	= ARRAY_SIZE(meson_axg_periphs_functions),
>  	.num_banks	= ARRAY_SIZE(meson_axg_periphs_banks),
> -- 
> 2.19.1
>
>
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic

  reply	other threads:[~2018-12-07  5:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-06  8:08 [PATCH] pinctrl: meson: axg: Fix GPIO pin offsets Carlo Caione
2018-12-06  8:08 ` [U-Boot] " Carlo Caione
2018-12-07  5:14 ` Kevin Hilman [this message]
2018-12-07  5:14   ` Kevin Hilman
2018-12-07  8:40   ` Neil Armstrong
2018-12-07  8:40     ` [U-Boot] " Neil Armstrong

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=7hpnudyl2l.fsf@baylibre.com \
    --to=khilman@baylibre.com \
    --cc=ccaione@baylibre.com \
    --cc=jbrunet@baylibre.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=narmstrong@baylibre.com \
    --cc=u-boot@lists.denx.de \
    /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.