
Extra gpio bank argument at low level may be discussable, but IMPO we should not brake standard int gpio_set_value(unsigned gpio, int value) definition.
And the reason of this patch is to fix:
1. Incompatibility in functions gpio_free() and gpio_set_value() definitions between <asm/gpio.h> and <asm-generic/gpio.h> (void vs int)
2. Compilation error when build common/cmd_gpio.c for mpc85xx (p1020)
On 03/26/2015 08:26 PM, Joakim Tjernlund wrote:
On Thu, 2015-03-26 at 17:16 -0400, Oleksandr G Zhadan wrote:
From: Oleksandr Zhadan oleks@arcturusnetworks.com
Signed-off-by: Oleksandr Zhadan oleks@arcturusnetworks.com Signed-off-by: Michael Durrant mdurrant@arcturusnetworks.com
arch/powerpc/include/asm/arch-mpc85xx/gpio.h | 2 ++ arch/powerpc/include/asm/mpc85xx_gpio.h | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/arch-mpc85xx/gpio.h b/arch/powerpc/include/asm/arch-mpc85xx/gpio.h index 8beed30..71794a8 100644 --- a/arch/powerpc/include/asm/arch-mpc85xx/gpio.h +++ b/arch/powerpc/include/asm/arch-mpc85xx/gpio.h @@ -12,4 +12,6 @@ #ifndef __ASM_ARCH_MX85XX_GPIO_H #define __ASM_ARCH_MX85XX_GPIO_H
+#include <asm/mpc85xx_gpio.h>
- #endif
diff --git a/arch/powerpc/include/asm/mpc85xx_gpio.h b/arch/powerpc/include/asm/mpc85xx_gpio.h index 87bb4a0..1d0dad4 100644 --- a/arch/powerpc/include/asm/mpc85xx_gpio.h +++ b/arch/powerpc/include/asm/mpc85xx_gpio.h @@ -72,9 +72,10 @@ static inline int gpio_request(unsigned gpio, const char *label) return 0; }
-static inline void gpio_free(unsigned gpio) +static inline int gpio_free(unsigned gpio) { /* Compatibility shim */
return 0; }
static inline int gpio_direction_input(unsigned gpio)
@@ -97,12 +98,13 @@ static inline int gpio_get_value(unsigned gpio) return !!mpc85xx_gpio_get(1U << gpio); }
-static inline void gpio_set_value(unsigned gpio, int value) +static inline int gpio_set_value(unsigned gpio, int value) { if (value) mpc85xx_gpio_set_high(1U << gpio); else mpc85xx_gpio_set_low(1U << gpio);
- return 0; }
mpc85xx_gpio_xxx really needs an extra bank argument such as: static inline void my_mpc85xx_gpio_set(unsigned int bank, unsigned int mask, unsigned int dir, unsigned int val) { ccsr_gpio_t *gpio = (void *)(CONFIG_SYS_MPC85xx_GPIO_ADDR + bank * 0x1000); ....
so one can choose which GPIO bank to use
Jocke