diff mbox

[U-Boot,03/17] powerpc/82xx: make set/get_pin for km82xx more flexible

Message ID 1447426768-23226-4-git-send-email-valentin.longchamp@keymile.com
State Superseded
Delegated to: Tom Rini
Headers show

Commit Message

Valentin Longchamp Nov. 13, 2015, 2:59 p.m. UTC
From: Holger Brunck <holger.brunck@keymile.com>

The get_pin and set_pin funciton was only used for pins on Port D and
therefore the value was hard coded in the function. Enhance this with a
parameter, that we are able to use this functions for other ports too.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
---

 board/keymile/km82xx/km82xx.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

Comments

Heiko Schocher Nov. 16, 2015, 10:06 a.m. UTC | #1
Hello Valentin,

Am 13.11.2015 um 15:59 schrieb Valentin Longchamp:
> From: Holger Brunck <holger.brunck@keymile.com>
>
> The get_pin and set_pin funciton was only used for pins on Port D and
> therefore the value was hard coded in the function. Enhance this with a
> parameter, that we are able to use this functions for other ports too.
>
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> ---
>
>   board/keymile/km82xx/km82xx.c | 24 ++++++++++++------------
>   1 file changed, 12 insertions(+), 12 deletions(-)

nitpick ... it would be good to add gpio support for this ...

beside of that:
Reviewed-by: Heiko Schocher <hs@denx.de>

bye,
Heiko
>
> diff --git a/board/keymile/km82xx/km82xx.c b/board/keymile/km82xx/km82xx.c
> index c599b40..03cd10c 100644
> --- a/board/keymile/km82xx/km82xx.c
> +++ b/board/keymile/km82xx/km82xx.c
> @@ -343,7 +343,7 @@ int last_stage_init(void)
>   }
>
>   #ifdef CONFIG_MGCOGE3NE
> -static void set_pin(int state, unsigned long mask);
> +static void set_pin(int state, unsigned long mask, int port);
>
>   /*
>    * For mgcoge3ne boards, the mgcoge3un control is controlled from
> @@ -357,11 +357,11 @@ static void handle_mgcoge3un_reset(void)
>   	if (bobcatreset) {
>   		if (strcmp(bobcatreset, "true") == 0) {
>   			puts("Forcing bobcat reset\n");
> -			set_pin(0, 0x00000004);	/* clear PD29 to reset arm */
> +			set_pin(0, 0x00000004, 3); /* clear PD29 (reset arm) */
>   			udelay(1000);
> -			set_pin(1, 0x00000004);
> +			set_pin(1, 0x00000004, 3);
>   		} else
> -			set_pin(1, 0x00000004);	/* set PD29 to not reset arm */
> +			set_pin(1, 0x00000004, 3); /* don't reset arm */
>   	}
>   }
>   #endif
> @@ -410,9 +410,9 @@ int hush_init_var(void)
>   #define SDA_MASK	0x00010000
>   #define SCL_MASK	0x00020000
>
> -static void set_pin(int state, unsigned long mask)
> +static void set_pin(int state, unsigned long mask, int port)
>   {
> -	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
> +	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port);
>
>   	if (state)
>   		setbits_be32(&iop->pdat, mask);
> @@ -422,9 +422,9 @@ static void set_pin(int state, unsigned long mask)
>   	setbits_be32(&iop->pdir, mask);
>   }
>
> -static int get_pin(unsigned long mask)
> +static int get_pin(unsigned long mask, int port)
>   {
> -	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
> +	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port);
>
>   	clrbits_be32(&iop->pdir, mask);
>   	return 0 != (in_be32(&iop->pdat) & mask);
> @@ -432,22 +432,22 @@ static int get_pin(unsigned long mask)
>
>   void set_sda(int state)
>   {
> -	set_pin(state, SDA_MASK);
> +	set_pin(state, SDA_MASK, 3);
>   }
>
>   void set_scl(int state)
>   {
> -	set_pin(state, SCL_MASK);
> +	set_pin(state, SCL_MASK, 3);
>   }
>
>   int get_sda(void)
>   {
> -	return get_pin(SDA_MASK);
> +	return get_pin(SDA_MASK, 3);
>   }
>
>   int get_scl(void)
>   {
> -	return get_pin(SCL_MASK);
> +	return get_pin(SCL_MASK, 3);
>   }
>
>   #if defined(CONFIG_HARD_I2C)
>
diff mbox

Patch

diff --git a/board/keymile/km82xx/km82xx.c b/board/keymile/km82xx/km82xx.c
index c599b40..03cd10c 100644
--- a/board/keymile/km82xx/km82xx.c
+++ b/board/keymile/km82xx/km82xx.c
@@ -343,7 +343,7 @@  int last_stage_init(void)
 }
 
 #ifdef CONFIG_MGCOGE3NE
-static void set_pin(int state, unsigned long mask);
+static void set_pin(int state, unsigned long mask, int port);
 
 /*
  * For mgcoge3ne boards, the mgcoge3un control is controlled from
@@ -357,11 +357,11 @@  static void handle_mgcoge3un_reset(void)
 	if (bobcatreset) {
 		if (strcmp(bobcatreset, "true") == 0) {
 			puts("Forcing bobcat reset\n");
-			set_pin(0, 0x00000004);	/* clear PD29 to reset arm */
+			set_pin(0, 0x00000004, 3); /* clear PD29 (reset arm) */
 			udelay(1000);
-			set_pin(1, 0x00000004);
+			set_pin(1, 0x00000004, 3);
 		} else
-			set_pin(1, 0x00000004);	/* set PD29 to not reset arm */
+			set_pin(1, 0x00000004, 3); /* don't reset arm */
 	}
 }
 #endif
@@ -410,9 +410,9 @@  int hush_init_var(void)
 #define SDA_MASK	0x00010000
 #define SCL_MASK	0x00020000
 
-static void set_pin(int state, unsigned long mask)
+static void set_pin(int state, unsigned long mask, int port)
 {
-	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
+	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port);
 
 	if (state)
 		setbits_be32(&iop->pdat, mask);
@@ -422,9 +422,9 @@  static void set_pin(int state, unsigned long mask)
 	setbits_be32(&iop->pdir, mask);
 }
 
-static int get_pin(unsigned long mask)
+static int get_pin(unsigned long mask, int port)
 {
-	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3);
+	ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port);
 
 	clrbits_be32(&iop->pdir, mask);
 	return 0 != (in_be32(&iop->pdat) & mask);
@@ -432,22 +432,22 @@  static int get_pin(unsigned long mask)
 
 void set_sda(int state)
 {
-	set_pin(state, SDA_MASK);
+	set_pin(state, SDA_MASK, 3);
 }
 
 void set_scl(int state)
 {
-	set_pin(state, SCL_MASK);
+	set_pin(state, SCL_MASK, 3);
 }
 
 int get_sda(void)
 {
-	return get_pin(SDA_MASK);
+	return get_pin(SDA_MASK, 3);
 }
 
 int get_scl(void)
 {
-	return get_pin(SCL_MASK);
+	return get_pin(SCL_MASK, 3);
 }
 
 #if defined(CONFIG_HARD_I2C)