Added to: git://git.denx.de/u-boot-nios.git 'next' Thank you, --Scott
Thomas Chou wrote: > Signed-off-by: Thomas Chou <tho...@wytron.com.tw> > --- > arch/nios2/include/asm/gpio.h | 6 ++++++ > board/altera/nios2-generic/custom_fpga.h | 1 + > board/altera/nios2-generic/gpio.c | 6 ++++++ > 3 files changed, 13 insertions(+), 0 deletions(-) > > diff --git a/arch/nios2/include/asm/gpio.h b/arch/nios2/include/asm/gpio.h > index 36a7132..4b21c8f 100644 > --- a/arch/nios2/include/asm/gpio.h > +++ b/arch/nios2/include/asm/gpio.h > @@ -52,6 +52,11 @@ static inline void gpio_set_value(unsigned gpio, int value) > { > writel(value ? 3 : 2, CONFIG_SYS_GPIO_BASE + (gpio << 2)); > } > + > +static inline int gpio_is_valid(int number) > +{ > + return ((unsigned)number) < CONFIG_SYS_GPIO_WIDTH; > +} > #else > extern int gpio_request(unsigned gpio, const char *label); > extern int gpio_free(unsigned gpio); > @@ -59,6 +64,7 @@ extern int gpio_direction_input(unsigned gpio); > extern int gpio_direction_output(unsigned gpio, int value); > extern int gpio_get_value(unsigned gpio); > extern void gpio_set_value(unsigned gpio, int value); > +extern int gpio_is_valid(int number); > #endif /* CONFIG_SYS_GPIO_BASE */ > > #endif /* _ASM_NIOS2_GPIO_H_ */ > diff --git a/board/altera/nios2-generic/custom_fpga.h > b/board/altera/nios2-generic/custom_fpga.h > index a11add5..f7f3853 100644 > --- a/board/altera/nios2-generic/custom_fpga.h > +++ b/board/altera/nios2-generic/custom_fpga.h > @@ -50,6 +50,7 @@ > > /* led_pio.s1 is a altera_avalon_pio */ > #define LED_PIO_BASE 0x82120870 > +#define LED_PIO_WIDTH 8 > > /* high_res_timer.s1 is a altera_avalon_timer */ > #define CONFIG_SYS_TIMER_BASE 0x82120820 > diff --git a/board/altera/nios2-generic/gpio.c > b/board/altera/nios2-generic/gpio.c > index 8c639ce..4a30564 100644 > --- a/board/altera/nios2-generic/gpio.c > +++ b/board/altera/nios2-generic/gpio.c > @@ -10,6 +10,7 @@ > #ifndef CONFIG_SYS_GPIO_BASE > > #define ALTERA_PIO_BASE LED_PIO_BASE > +#define ALTERA_PIO_WIDTH LED_PIO_WIDTH > #define ALTERA_PIO_DATA (ALTERA_PIO_BASE + 0) > #define ALTERA_PIO_DIR (ALTERA_PIO_BASE + 4) > static u32 pio_data_reg; > @@ -62,4 +63,9 @@ void gpio_set_value(unsigned gpio, int value) > pio_data_reg &= ~mask; > writel(pio_data_reg, ALTERA_PIO_DATA); > } > + > +int gpio_is_valid(int number) > +{ > + return ((unsigned)number) < ALTERA_PIO_WIDTH; > +} > #endif _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot