[U-Boot] [PATCH 1/2] mpc85xx gpio related header files changes to compile common cmd_gpio.c
Oleksandr G Zhadan
oleks at arcturusnetworks.com
Fri Mar 27 15:51:32 CET 2015
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 at arcturusnetworks.com>
>>
>> Signed-off-by: Oleksandr Zhadan <oleks at arcturusnetworks.com>
>> Signed-off-by: Michael Durrant <mdurrant at 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
>
>
--
Oleksandr Zhadan
Arcturus Networks
T 416 621-0125 x235
F 416 621-0190
More information about the U-Boot
mailing list