diff mbox

[U-Boot,v3,3/4] dm:gpio:mxc add a bank_index entry in platdata

Message ID 1421838596-4176-4-git-send-email-Peng.Fan@freescale.com
State Changes Requested
Delegated to: Simon Glass
Headers show

Commit Message

Peng Fan Jan. 21, 2015, 11:09 a.m. UTC
Add a new entry in platdata structure and intialize
bank_index in mxc_plat array.
This new entry can avoid using `plat - mxc_plat` by using
`plat->bank_index`.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
---
 drivers/gpio/mxc_gpio.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

Comments

Igor Grinberg Jan. 21, 2015, 12:01 p.m. UTC | #1
On 01/21/15 13:09, Peng Fan wrote:
> Add a new entry in platdata structure and intialize
> bank_index in mxc_plat array.
> This new entry can avoid using `plat - mxc_plat` by using
> `plat->bank_index`.
> 
> Signed-off-by: Peng Fan <Peng.Fan@freescale.com>

Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Simon Glass Jan. 22, 2015, 9:27 p.m. UTC | #2
Hi,

On 21 January 2015 at 04:09, Peng Fan <Peng.Fan@freescale.com> wrote:
> Add a new entry in platdata structure and intialize
> bank_index in mxc_plat array.
> This new entry can avoid using `plat - mxc_plat` by using
> `plat->bank_index`.
>
> Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
> ---
>  drivers/gpio/mxc_gpio.c | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
> index 8bb9e39..c52dd19 100644
> --- a/drivers/gpio/mxc_gpio.c
> +++ b/drivers/gpio/mxc_gpio.c
> @@ -23,6 +23,7 @@ enum mxc_gpio_direction {
>  #define GPIO_PER_BANK                  32
>
>  struct mxc_gpio_plat {
> +       int bank_index;
>         struct gpio_regs *regs;
>  };
>
> @@ -259,19 +260,19 @@ static const struct dm_gpio_ops gpio_mxc_ops = {
>  };
>
>  static const struct mxc_gpio_plat mxc_plat[] = {
> -       { (struct gpio_regs *)GPIO1_BASE_ADDR },
> -       { (struct gpio_regs *)GPIO2_BASE_ADDR },
> -       { (struct gpio_regs *)GPIO3_BASE_ADDR },
> +       { 0, (struct gpio_regs *)GPIO1_BASE_ADDR },
> +       { 1, (struct gpio_regs *)GPIO2_BASE_ADDR },
> +       { 2, (struct gpio_regs *)GPIO3_BASE_ADDR },
>  #if defined(CONFIG_MX25) || defined(CONFIG_MX27) || defined(CONFIG_MX51) || \
>                 defined(CONFIG_MX53) || defined(CONFIG_MX6)
> -       { (struct gpio_regs *)GPIO4_BASE_ADDR },
> +       { 3, (struct gpio_regs *)GPIO4_BASE_ADDR },
>  #endif
>  #if defined(CONFIG_MX27) || defined(CONFIG_MX53) || defined(CONFIG_MX6)
> -       { (struct gpio_regs *)GPIO5_BASE_ADDR },
> -       { (struct gpio_regs *)GPIO6_BASE_ADDR },
> +       { 4, (struct gpio_regs *)GPIO5_BASE_ADDR },
> +       { 5, (struct gpio_regs *)GPIO6_BASE_ADDR },
>  #endif
>  #if defined(CONFIG_MX53) || defined(CONFIG_MX6)
> -       { (struct gpio_regs *)GPIO7_BASE_ADDR },
> +       { 6, (struct gpio_regs *)GPIO7_BASE_ADDR },

Is it possible to drop these casts? Or should that be another patch?

>  #endif
>  };
>
> @@ -283,7 +284,7 @@ static int mxc_gpio_probe(struct udevice *dev)
>         int banknum;
>         char name[18], *str;
>
> -       banknum = plat - mxc_plat;
> +       banknum = plat->bank_index;
>         sprintf(name, "GPIO%d_", banknum + 1);
>         str = strdup(name);
>         if (!str)
> --
> 1.8.4
>
>

Regards,
Simon
diff mbox

Patch

diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
index 8bb9e39..c52dd19 100644
--- a/drivers/gpio/mxc_gpio.c
+++ b/drivers/gpio/mxc_gpio.c
@@ -23,6 +23,7 @@  enum mxc_gpio_direction {
 #define GPIO_PER_BANK			32
 
 struct mxc_gpio_plat {
+	int bank_index;
 	struct gpio_regs *regs;
 };
 
@@ -259,19 +260,19 @@  static const struct dm_gpio_ops gpio_mxc_ops = {
 };
 
 static const struct mxc_gpio_plat mxc_plat[] = {
-	{ (struct gpio_regs *)GPIO1_BASE_ADDR },
-	{ (struct gpio_regs *)GPIO2_BASE_ADDR },
-	{ (struct gpio_regs *)GPIO3_BASE_ADDR },
+	{ 0, (struct gpio_regs *)GPIO1_BASE_ADDR },
+	{ 1, (struct gpio_regs *)GPIO2_BASE_ADDR },
+	{ 2, (struct gpio_regs *)GPIO3_BASE_ADDR },
 #if defined(CONFIG_MX25) || defined(CONFIG_MX27) || defined(CONFIG_MX51) || \
 		defined(CONFIG_MX53) || defined(CONFIG_MX6)
-	{ (struct gpio_regs *)GPIO4_BASE_ADDR },
+	{ 3, (struct gpio_regs *)GPIO4_BASE_ADDR },
 #endif
 #if defined(CONFIG_MX27) || defined(CONFIG_MX53) || defined(CONFIG_MX6)
-	{ (struct gpio_regs *)GPIO5_BASE_ADDR },
-	{ (struct gpio_regs *)GPIO6_BASE_ADDR },
+	{ 4, (struct gpio_regs *)GPIO5_BASE_ADDR },
+	{ 5, (struct gpio_regs *)GPIO6_BASE_ADDR },
 #endif
 #if defined(CONFIG_MX53) || defined(CONFIG_MX6)
-	{ (struct gpio_regs *)GPIO7_BASE_ADDR },
+	{ 6, (struct gpio_regs *)GPIO7_BASE_ADDR },
 #endif
 };
 
@@ -283,7 +284,7 @@  static int mxc_gpio_probe(struct udevice *dev)
 	int banknum;
 	char name[18], *str;
 
-	banknum = plat - mxc_plat;
+	banknum = plat->bank_index;
 	sprintf(name, "GPIO%d_", banknum + 1);
 	str = strdup(name);
 	if (!str)