nios2: add gpio_is_valid
Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Signed-off-by: Scott McNutt <smcnutt@psyent.com>
This commit is contained in:
parent
85debefaf2
commit
d8a593c68b
|
@ -52,6 +52,11 @@ static inline void gpio_set_value(unsigned gpio, int value)
|
||||||
{
|
{
|
||||||
writel(value ? 3 : 2, CONFIG_SYS_GPIO_BASE + (gpio << 2));
|
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
|
#else
|
||||||
extern int gpio_request(unsigned gpio, const char *label);
|
extern int gpio_request(unsigned gpio, const char *label);
|
||||||
extern int gpio_free(unsigned gpio);
|
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_direction_output(unsigned gpio, int value);
|
||||||
extern int gpio_get_value(unsigned gpio);
|
extern int gpio_get_value(unsigned gpio);
|
||||||
extern void gpio_set_value(unsigned gpio, int value);
|
extern void gpio_set_value(unsigned gpio, int value);
|
||||||
|
extern int gpio_is_valid(int number);
|
||||||
#endif /* CONFIG_SYS_GPIO_BASE */
|
#endif /* CONFIG_SYS_GPIO_BASE */
|
||||||
|
|
||||||
#endif /* _ASM_NIOS2_GPIO_H_ */
|
#endif /* _ASM_NIOS2_GPIO_H_ */
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
|
|
||||||
/* led_pio.s1 is a altera_avalon_pio */
|
/* led_pio.s1 is a altera_avalon_pio */
|
||||||
#define LED_PIO_BASE 0x82120870
|
#define LED_PIO_BASE 0x82120870
|
||||||
|
#define LED_PIO_WIDTH 8
|
||||||
|
|
||||||
/* high_res_timer.s1 is a altera_avalon_timer */
|
/* high_res_timer.s1 is a altera_avalon_timer */
|
||||||
#define CONFIG_SYS_TIMER_BASE 0x82120820
|
#define CONFIG_SYS_TIMER_BASE 0x82120820
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#ifndef CONFIG_SYS_GPIO_BASE
|
#ifndef CONFIG_SYS_GPIO_BASE
|
||||||
|
|
||||||
#define ALTERA_PIO_BASE LED_PIO_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_DATA (ALTERA_PIO_BASE + 0)
|
||||||
#define ALTERA_PIO_DIR (ALTERA_PIO_BASE + 4)
|
#define ALTERA_PIO_DIR (ALTERA_PIO_BASE + 4)
|
||||||
static u32 pio_data_reg;
|
static u32 pio_data_reg;
|
||||||
|
@ -62,4 +63,9 @@ void gpio_set_value(unsigned gpio, int value)
|
||||||
pio_data_reg &= ~mask;
|
pio_data_reg &= ~mask;
|
||||||
writel(pio_data_reg, ALTERA_PIO_DATA);
|
writel(pio_data_reg, ALTERA_PIO_DATA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int gpio_is_valid(int number)
|
||||||
|
{
|
||||||
|
return ((unsigned)number) < ALTERA_PIO_WIDTH;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue