diff options
| -rw-r--r-- | arch/arm/mach-ns9xxx/board-a9m9750dev.c | 3 | ||||
| -rw-r--r-- | include/asm-arm/arch-ns9xxx/regs-bbu.h | 28 |
2 files changed, 27 insertions, 4 deletions
diff --git a/arch/arm/mach-ns9xxx/board-a9m9750dev.c b/arch/arm/mach-ns9xxx/board-a9m9750dev.c index 6eee8084b613..925048e7adfe 100644 --- a/arch/arm/mach-ns9xxx/board-a9m9750dev.c +++ b/arch/arm/mach-ns9xxx/board-a9m9750dev.c | |||
| @@ -91,7 +91,7 @@ void __init board_a9m9750dev_init_irq(void) | |||
| 91 | * use GPIO 11, because GPIO 32 is used for the LCD | 91 | * use GPIO 11, because GPIO 32 is used for the LCD |
| 92 | */ | 92 | */ |
| 93 | /* XXX: proper GPIO handling */ | 93 | /* XXX: proper GPIO handling */ |
| 94 | BBU_GC(2) &= ~0x2000; | 94 | BBU_GCONFb1(1) &= ~0x2000; |
| 95 | 95 | ||
| 96 | for (i = FPGA_IRQ(0); i <= FPGA_IRQ(7); ++i) { | 96 | for (i = FPGA_IRQ(0); i <= FPGA_IRQ(7); ++i) { |
| 97 | set_irq_chip(i, &a9m9750dev_fpga_chip); | 97 | set_irq_chip(i, &a9m9750dev_fpga_chip); |
| @@ -196,4 +196,3 @@ void __init board_a9m9750dev_init_machine(void) | |||
| 196 | platform_add_devices(board_a9m9750dev_devices, | 196 | platform_add_devices(board_a9m9750dev_devices, |
| 197 | ARRAY_SIZE(board_a9m9750dev_devices)); | 197 | ARRAY_SIZE(board_a9m9750dev_devices)); |
| 198 | } | 198 | } |
| 199 | |||
diff --git a/include/asm-arm/arch-ns9xxx/regs-bbu.h b/include/asm-arm/arch-ns9xxx/regs-bbu.h index e26269546240..7ee194dc6354 100644 --- a/include/asm-arm/arch-ns9xxx/regs-bbu.h +++ b/include/asm-arm/arch-ns9xxx/regs-bbu.h | |||
| @@ -15,7 +15,31 @@ | |||
| 15 | 15 | ||
| 16 | /* BBus Utility */ | 16 | /* BBus Utility */ |
| 17 | 17 | ||
| 18 | /* GPIO Configuration Register */ | 18 | /* GPIO Configuration Registers block 1 */ |
| 19 | #define BBU_GC(x) __REG2(0x9060000c, (x)) | 19 | /* NOTE: the HRM starts counting at 1 for the GPIO registers, here the start is |
| 20 | * at 0 for each block. That is, BBU_GCONFb1(0) is GPIO Configuration Register | ||
| 21 | * #1, BBU_GCONFb2(0) is GPIO Configuration Register #8. */ | ||
| 22 | #define BBU_GCONFb1(x) __REG2(0x90600010, (x)) | ||
| 23 | #define BBU_GCONFb2(x) __REG2(0x90600100, (x)) | ||
| 24 | |||
| 25 | #define BBU_GCONFx_DIR(m) __REGBIT(3 + (((m) & 7) << 2)) | ||
| 26 | #define BBU_GCONFx_DIR_INPUT(m) __REGVAL(BBU_GCONFx_DIR(m), 0) | ||
| 27 | #define BBU_GCONFx_DIR_OUTPUT(m) __REGVAL(BBU_GCONFx_DIR(m), 1) | ||
| 28 | #define BBU_GCONFx_INV(m) __REGBIT(2 + (((m) & 7) << 2)) | ||
| 29 | #define BBU_GCONFx_INV_NO(m) __REGVAL(BBU_GCONFx_INV(m), 0) | ||
| 30 | #define BBU_GCONFx_INV_YES(m) __REGVAL(BBU_GCONFx_INV(m), 1) | ||
| 31 | #define BBU_GCONFx_FUNC(m) __REGBITS(1 + (((m) & 7) << 2), ((m) & 7) << 2) | ||
| 32 | #define BBU_GCONFx_FUNC_0(m) __REGVAL(BBU_GCONFx_FUNC(m), 0) | ||
| 33 | #define BBU_GCONFx_FUNC_1(m) __REGVAL(BBU_GCONFx_FUNC(m), 1) | ||
| 34 | #define BBU_GCONFx_FUNC_2(m) __REGVAL(BBU_GCONFx_FUNC(m), 2) | ||
| 35 | #define BBU_GCONFx_FUNC_3(m) __REGVAL(BBU_GCONFx_FUNC(m), 3) | ||
| 36 | |||
| 37 | #define BBU_GCTRL1 __REG(0x90600030) | ||
| 38 | #define BBU_GCTRL2 __REG(0x90600034) | ||
| 39 | #define BBU_GCTRL3 __REG(0x90600120) | ||
| 40 | |||
| 41 | #define BBU_GSTAT1 __REG(0x90600040) | ||
| 42 | #define BBU_GSTAT2 __REG(0x90600044) | ||
| 43 | #define BBU_GSTAT3 __REG(0x90600130) | ||
| 20 | 44 | ||
| 21 | #endif /* ifndef __ASM_ARCH_REGSBBU_H */ | 45 | #endif /* ifndef __ASM_ARCH_REGSBBU_H */ |
