u-boot bug reading gpio ยป uboot-socfpga_gpio.patch
| uboot-socfpga/arch/arm/include/asm/arch-socfpga/gpio.h | ||
|---|---|---|
| 6 | 6 |
#define GPIO_MODULE1_ADDR 0xFF709000 |
| 7 | 7 |
#define GPIO_MODULE2_ADDR 0xFF70A000 |
| 8 | 8 | |
| 9 |
#define GPIO_SWPORTA_DR_OFFSET 0x0 |
|
| 10 |
#define GPIO_SWPORTA_DDR_OFFSET 0x1 |
|
| 9 |
#define GPIO_SWPORTA_DR_OFFSET 0x0 // Write Output values |
|
| 10 |
#define GPIO_SWPORTA_DDR_OFFSET 0x1 // Direction |
|
| 11 |
#define GPIO_EXT_PORTA_OFFSET 0x14 // Read I/O values |
|
| 11 | 12 | |
| 12 | 13 |
#define GPIO_WIDTH 29 /* ugh */ |
| 13 | 14 | |
| uboot-socfpga/drivers/gpio/soc_gpio.c | ||
|---|---|---|
| 85 | 85 | |
| 86 | 86 |
GET_BANK_MASK(gpio) |
| 87 | 87 | |
| 88 |
return (base_addr[GPIO_SWPORTA_DR_OFFSET] & mask) ? 1 : 0;
|
|
| 88 |
return (base_addr[GPIO_EXT_PORTA_OFFSET] & mask) ? 1 : 0;
|
|
| 89 | 89 |
} |
| 90 | 90 | |
| 91 | 91 |
int gpio_set_value(unsigned gpio, int value) |