diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-17 16:15:55 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-17 16:15:55 -0500 |
commit | 8dea78da5cee153b8af9c07a2745f6c55057fe12 (patch) | |
tree | a8f4d49d63b1ecc92f2fddceba0655b2472c5bd9 /arch/arm/mach-ep93xx/include | |
parent | 406089d01562f1e2bf9f089fd7637009ebaad589 (diff) |
Patched in Tegra support.
Diffstat (limited to 'arch/arm/mach-ep93xx/include')
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/debug-macro.S | 2 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h | 191 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h | 110 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/hardware.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/platform.h | 28 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/uncompress.h | 10 |
6 files changed, 214 insertions, 128 deletions
diff --git a/arch/arm/mach-ep93xx/include/mach/debug-macro.S b/arch/arm/mach-ep93xx/include/mach/debug-macro.S index af54e43132c..b25bc907636 100644 --- a/arch/arm/mach-ep93xx/include/mach/debug-macro.S +++ b/arch/arm/mach-ep93xx/include/mach/debug-macro.S | |||
@@ -11,7 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | #include <mach/ep93xx-regs.h> | 12 | #include <mach/ep93xx-regs.h> |
13 | 13 | ||
14 | .macro addruart, rp, rv, tmp | 14 | .macro addruart, rp, rv |
15 | ldr \rp, =EP93XX_APB_PHYS_BASE @ Physical base | 15 | ldr \rp, =EP93XX_APB_PHYS_BASE @ Physical base |
16 | ldr \rv, =EP93XX_APB_VIRT_BASE @ virtual base | 16 | ldr \rv, =EP93XX_APB_VIRT_BASE @ virtual base |
17 | orr \rp, \rp, #0x000c0000 | 17 | orr \rp, \rp, #0x000c0000 |
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h index c64d7424660..c4a7b84ef06 100644 --- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h +++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h | |||
@@ -6,6 +6,40 @@ | |||
6 | #define __ASM_ARCH_EP93XX_REGS_H | 6 | #define __ASM_ARCH_EP93XX_REGS_H |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * EP93xx Physical Memory Map: | ||
10 | * | ||
11 | * The ASDO pin is sampled at system reset to select a synchronous or | ||
12 | * asynchronous boot configuration. When ASDO is "1" (i.e. pulled-up) | ||
13 | * the synchronous boot mode is selected. When ASDO is "0" (i.e | ||
14 | * pulled-down) the asynchronous boot mode is selected. | ||
15 | * | ||
16 | * In synchronous boot mode nSDCE3 is decoded starting at physical address | ||
17 | * 0x00000000 and nCS0 is decoded starting at 0xf0000000. For asynchronous | ||
18 | * boot mode they are swapped with nCS0 decoded at 0x00000000 ann nSDCE3 | ||
19 | * decoded at 0xf0000000. | ||
20 | * | ||
21 | * There is known errata for the EP93xx dealing with External Memory | ||
22 | * Configurations. Please refer to "AN273: EP93xx Silicon Rev E Design | ||
23 | * Guidelines" for more information. This document can be found at: | ||
24 | * | ||
25 | * http://www.cirrus.com/en/pubs/appNote/AN273REV4.pdf | ||
26 | */ | ||
27 | |||
28 | #define EP93XX_CS0_PHYS_BASE_ASYNC 0x00000000 /* ASDO Pin = 0 */ | ||
29 | #define EP93XX_SDCE3_PHYS_BASE_SYNC 0x00000000 /* ASDO Pin = 1 */ | ||
30 | #define EP93XX_CS1_PHYS_BASE 0x10000000 | ||
31 | #define EP93XX_CS2_PHYS_BASE 0x20000000 | ||
32 | #define EP93XX_CS3_PHYS_BASE 0x30000000 | ||
33 | #define EP93XX_PCMCIA_PHYS_BASE 0x40000000 | ||
34 | #define EP93XX_CS6_PHYS_BASE 0x60000000 | ||
35 | #define EP93XX_CS7_PHYS_BASE 0x70000000 | ||
36 | #define EP93XX_SDCE0_PHYS_BASE 0xc0000000 | ||
37 | #define EP93XX_SDCE1_PHYS_BASE 0xd0000000 | ||
38 | #define EP93XX_SDCE2_PHYS_BASE 0xe0000000 | ||
39 | #define EP93XX_SDCE3_PHYS_BASE_ASYNC 0xf0000000 /* ASDO Pin = 0 */ | ||
40 | #define EP93XX_CS0_PHYS_BASE_SYNC 0xf0000000 /* ASDO Pin = 1 */ | ||
41 | |||
42 | /* | ||
9 | * EP93xx linux memory map: | 43 | * EP93xx linux memory map: |
10 | * | 44 | * |
11 | * virt phys size | 45 | * virt phys size |
@@ -28,7 +62,58 @@ | |||
28 | #define EP93XX_APB_PHYS(x) (EP93XX_APB_PHYS_BASE + (x)) | 62 | #define EP93XX_APB_PHYS(x) (EP93XX_APB_PHYS_BASE + (x)) |
29 | #define EP93XX_APB_IOMEM(x) IOMEM(EP93XX_APB_VIRT_BASE + (x)) | 63 | #define EP93XX_APB_IOMEM(x) IOMEM(EP93XX_APB_VIRT_BASE + (x)) |
30 | 64 | ||
31 | /* APB UARTs */ | 65 | |
66 | /* AHB peripherals */ | ||
67 | #define EP93XX_DMA_BASE EP93XX_AHB_IOMEM(0x00000000) | ||
68 | |||
69 | #define EP93XX_ETHERNET_PHYS_BASE EP93XX_AHB_PHYS(0x00010000) | ||
70 | #define EP93XX_ETHERNET_BASE EP93XX_AHB_IOMEM(0x00010000) | ||
71 | |||
72 | #define EP93XX_USB_PHYS_BASE EP93XX_AHB_PHYS(0x00020000) | ||
73 | #define EP93XX_USB_BASE EP93XX_AHB_IOMEM(0x00020000) | ||
74 | |||
75 | #define EP93XX_RASTER_PHYS_BASE EP93XX_AHB_PHYS(0x00030000) | ||
76 | #define EP93XX_RASTER_BASE EP93XX_AHB_IOMEM(0x00030000) | ||
77 | |||
78 | #define EP93XX_GRAPHICS_ACCEL_BASE EP93XX_AHB_IOMEM(0x00040000) | ||
79 | |||
80 | #define EP93XX_SDRAM_CONTROLLER_BASE EP93XX_AHB_IOMEM(0x00060000) | ||
81 | |||
82 | #define EP93XX_PCMCIA_CONTROLLER_BASE EP93XX_AHB_IOMEM(0x00080000) | ||
83 | |||
84 | #define EP93XX_BOOT_ROM_BASE EP93XX_AHB_IOMEM(0x00090000) | ||
85 | |||
86 | #define EP93XX_IDE_BASE EP93XX_AHB_IOMEM(0x000a0000) | ||
87 | |||
88 | #define EP93XX_VIC1_BASE EP93XX_AHB_IOMEM(0x000b0000) | ||
89 | |||
90 | #define EP93XX_VIC2_BASE EP93XX_AHB_IOMEM(0x000c0000) | ||
91 | |||
92 | |||
93 | /* APB peripherals */ | ||
94 | #define EP93XX_TIMER_BASE EP93XX_APB_IOMEM(0x00010000) | ||
95 | |||
96 | #define EP93XX_I2S_PHYS_BASE EP93XX_APB_PHYS(0x00020000) | ||
97 | #define EP93XX_I2S_BASE EP93XX_APB_IOMEM(0x00020000) | ||
98 | |||
99 | #define EP93XX_SECURITY_BASE EP93XX_APB_IOMEM(0x00030000) | ||
100 | |||
101 | #define EP93XX_GPIO_PHYS_BASE EP93XX_APB_PHYS(0x00040000) | ||
102 | #define EP93XX_GPIO_BASE EP93XX_APB_IOMEM(0x00040000) | ||
103 | #define EP93XX_GPIO_REG(x) (EP93XX_GPIO_BASE + (x)) | ||
104 | #define EP93XX_GPIO_F_INT_STATUS EP93XX_GPIO_REG(0x5c) | ||
105 | #define EP93XX_GPIO_A_INT_STATUS EP93XX_GPIO_REG(0xa0) | ||
106 | #define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc) | ||
107 | #define EP93XX_GPIO_EEDRIVE EP93XX_GPIO_REG(0xc8) | ||
108 | |||
109 | #define EP93XX_AAC_PHYS_BASE EP93XX_APB_PHYS(0x00080000) | ||
110 | #define EP93XX_AAC_BASE EP93XX_APB_IOMEM(0x00080000) | ||
111 | |||
112 | #define EP93XX_SPI_PHYS_BASE EP93XX_APB_PHYS(0x000a0000) | ||
113 | #define EP93XX_SPI_BASE EP93XX_APB_IOMEM(0x000a0000) | ||
114 | |||
115 | #define EP93XX_IRDA_BASE EP93XX_APB_IOMEM(0x000b0000) | ||
116 | |||
32 | #define EP93XX_UART1_PHYS_BASE EP93XX_APB_PHYS(0x000c0000) | 117 | #define EP93XX_UART1_PHYS_BASE EP93XX_APB_PHYS(0x000c0000) |
33 | #define EP93XX_UART1_BASE EP93XX_APB_IOMEM(0x000c0000) | 118 | #define EP93XX_UART1_BASE EP93XX_APB_IOMEM(0x000c0000) |
34 | 119 | ||
@@ -38,4 +123,108 @@ | |||
38 | #define EP93XX_UART3_PHYS_BASE EP93XX_APB_PHYS(0x000e0000) | 123 | #define EP93XX_UART3_PHYS_BASE EP93XX_APB_PHYS(0x000e0000) |
39 | #define EP93XX_UART3_BASE EP93XX_APB_IOMEM(0x000e0000) | 124 | #define EP93XX_UART3_BASE EP93XX_APB_IOMEM(0x000e0000) |
40 | 125 | ||
126 | #define EP93XX_KEY_MATRIX_PHYS_BASE EP93XX_APB_PHYS(0x000f0000) | ||
127 | #define EP93XX_KEY_MATRIX_BASE EP93XX_APB_IOMEM(0x000f0000) | ||
128 | |||
129 | #define EP93XX_ADC_BASE EP93XX_APB_IOMEM(0x00100000) | ||
130 | #define EP93XX_TOUCHSCREEN_BASE EP93XX_APB_IOMEM(0x00100000) | ||
131 | |||
132 | #define EP93XX_PWM_PHYS_BASE EP93XX_APB_PHYS(0x00110000) | ||
133 | #define EP93XX_PWM_BASE EP93XX_APB_IOMEM(0x00110000) | ||
134 | |||
135 | #define EP93XX_RTC_PHYS_BASE EP93XX_APB_PHYS(0x00120000) | ||
136 | #define EP93XX_RTC_BASE EP93XX_APB_IOMEM(0x00120000) | ||
137 | |||
138 | #define EP93XX_SYSCON_BASE EP93XX_APB_IOMEM(0x00130000) | ||
139 | #define EP93XX_SYSCON_REG(x) (EP93XX_SYSCON_BASE + (x)) | ||
140 | #define EP93XX_SYSCON_POWER_STATE EP93XX_SYSCON_REG(0x00) | ||
141 | #define EP93XX_SYSCON_PWRCNT EP93XX_SYSCON_REG(0x04) | ||
142 | #define EP93XX_SYSCON_PWRCNT_FIR_EN (1<<31) | ||
143 | #define EP93XX_SYSCON_PWRCNT_UARTBAUD (1<<29) | ||
144 | #define EP93XX_SYSCON_PWRCNT_USH_EN (1<<28) | ||
145 | #define EP93XX_SYSCON_PWRCNT_DMA_M2M1 (1<<27) | ||
146 | #define EP93XX_SYSCON_PWRCNT_DMA_M2M0 (1<<26) | ||
147 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P8 (1<<25) | ||
148 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P9 (1<<24) | ||
149 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P6 (1<<23) | ||
150 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P7 (1<<22) | ||
151 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P4 (1<<21) | ||
152 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P5 (1<<20) | ||
153 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P2 (1<<19) | ||
154 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P3 (1<<18) | ||
155 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P0 (1<<17) | ||
156 | #define EP93XX_SYSCON_PWRCNT_DMA_M2P1 (1<<16) | ||
157 | #define EP93XX_SYSCON_HALT EP93XX_SYSCON_REG(0x08) | ||
158 | #define EP93XX_SYSCON_STANDBY EP93XX_SYSCON_REG(0x0c) | ||
159 | #define EP93XX_SYSCON_CLKSET1 EP93XX_SYSCON_REG(0x20) | ||
160 | #define EP93XX_SYSCON_CLKSET1_NBYP1 (1<<23) | ||
161 | #define EP93XX_SYSCON_CLKSET2 EP93XX_SYSCON_REG(0x24) | ||
162 | #define EP93XX_SYSCON_CLKSET2_NBYP2 (1<<19) | ||
163 | #define EP93XX_SYSCON_CLKSET2_PLL2_EN (1<<18) | ||
164 | #define EP93XX_SYSCON_DEVCFG EP93XX_SYSCON_REG(0x80) | ||
165 | #define EP93XX_SYSCON_DEVCFG_SWRST (1<<31) | ||
166 | #define EP93XX_SYSCON_DEVCFG_D1ONG (1<<30) | ||
167 | #define EP93XX_SYSCON_DEVCFG_D0ONG (1<<29) | ||
168 | #define EP93XX_SYSCON_DEVCFG_IONU2 (1<<28) | ||
169 | #define EP93XX_SYSCON_DEVCFG_GONK (1<<27) | ||
170 | #define EP93XX_SYSCON_DEVCFG_TONG (1<<26) | ||
171 | #define EP93XX_SYSCON_DEVCFG_MONG (1<<25) | ||
172 | #define EP93XX_SYSCON_DEVCFG_U3EN (1<<24) | ||
173 | #define EP93XX_SYSCON_DEVCFG_CPENA (1<<23) | ||
174 | #define EP93XX_SYSCON_DEVCFG_A2ONG (1<<22) | ||
175 | #define EP93XX_SYSCON_DEVCFG_A1ONG (1<<21) | ||
176 | #define EP93XX_SYSCON_DEVCFG_U2EN (1<<20) | ||
177 | #define EP93XX_SYSCON_DEVCFG_EXVC (1<<19) | ||
178 | #define EP93XX_SYSCON_DEVCFG_U1EN (1<<18) | ||
179 | #define EP93XX_SYSCON_DEVCFG_TIN (1<<17) | ||
180 | #define EP93XX_SYSCON_DEVCFG_HC3IN (1<<15) | ||
181 | #define EP93XX_SYSCON_DEVCFG_HC3EN (1<<14) | ||
182 | #define EP93XX_SYSCON_DEVCFG_HC1IN (1<<13) | ||
183 | #define EP93XX_SYSCON_DEVCFG_HC1EN (1<<12) | ||
184 | #define EP93XX_SYSCON_DEVCFG_HONIDE (1<<11) | ||
185 | #define EP93XX_SYSCON_DEVCFG_GONIDE (1<<10) | ||
186 | #define EP93XX_SYSCON_DEVCFG_PONG (1<<9) | ||
187 | #define EP93XX_SYSCON_DEVCFG_EONIDE (1<<8) | ||
188 | #define EP93XX_SYSCON_DEVCFG_I2SONSSP (1<<7) | ||
189 | #define EP93XX_SYSCON_DEVCFG_I2SONAC97 (1<<6) | ||
190 | #define EP93XX_SYSCON_DEVCFG_RASONP3 (1<<4) | ||
191 | #define EP93XX_SYSCON_DEVCFG_RAS (1<<3) | ||
192 | #define EP93XX_SYSCON_DEVCFG_ADCPD (1<<2) | ||
193 | #define EP93XX_SYSCON_DEVCFG_KEYS (1<<1) | ||
194 | #define EP93XX_SYSCON_DEVCFG_SHENA (1<<0) | ||
195 | #define EP93XX_SYSCON_VIDCLKDIV EP93XX_SYSCON_REG(0x84) | ||
196 | #define EP93XX_SYSCON_CLKDIV_ENABLE (1<<15) | ||
197 | #define EP93XX_SYSCON_CLKDIV_ESEL (1<<14) | ||
198 | #define EP93XX_SYSCON_CLKDIV_PSEL (1<<13) | ||
199 | #define EP93XX_SYSCON_CLKDIV_PDIV_SHIFT 8 | ||
200 | #define EP93XX_SYSCON_I2SCLKDIV EP93XX_SYSCON_REG(0x8c) | ||
201 | #define EP93XX_SYSCON_I2SCLKDIV_SENA (1<<31) | ||
202 | #define EP93XX_SYSCON_I2SCLKDIV_ORIDE (1<<29) | ||
203 | #define EP93XX_SYSCON_I2SCLKDIV_SPOL (1<<19) | ||
204 | #define EP93XX_I2SCLKDIV_SDIV (1 << 16) | ||
205 | #define EP93XX_I2SCLKDIV_LRDIV32 (0 << 17) | ||
206 | #define EP93XX_I2SCLKDIV_LRDIV64 (1 << 17) | ||
207 | #define EP93XX_I2SCLKDIV_LRDIV128 (2 << 17) | ||
208 | #define EP93XX_I2SCLKDIV_LRDIV_MASK (3 << 17) | ||
209 | #define EP93XX_SYSCON_KEYTCHCLKDIV EP93XX_SYSCON_REG(0x90) | ||
210 | #define EP93XX_SYSCON_KEYTCHCLKDIV_TSEN (1<<31) | ||
211 | #define EP93XX_SYSCON_KEYTCHCLKDIV_ADIV (1<<16) | ||
212 | #define EP93XX_SYSCON_KEYTCHCLKDIV_KEN (1<<15) | ||
213 | #define EP93XX_SYSCON_KEYTCHCLKDIV_KDIV (1<<0) | ||
214 | #define EP93XX_SYSCON_SYSCFG EP93XX_SYSCON_REG(0x9c) | ||
215 | #define EP93XX_SYSCON_SYSCFG_REV_MASK (0xf0000000) | ||
216 | #define EP93XX_SYSCON_SYSCFG_REV_SHIFT (28) | ||
217 | #define EP93XX_SYSCON_SYSCFG_SBOOT (1<<8) | ||
218 | #define EP93XX_SYSCON_SYSCFG_LCSN7 (1<<7) | ||
219 | #define EP93XX_SYSCON_SYSCFG_LCSN6 (1<<6) | ||
220 | #define EP93XX_SYSCON_SYSCFG_LASDO (1<<5) | ||
221 | #define EP93XX_SYSCON_SYSCFG_LEEDA (1<<4) | ||
222 | #define EP93XX_SYSCON_SYSCFG_LEECLK (1<<3) | ||
223 | #define EP93XX_SYSCON_SYSCFG_LCSN2 (1<<1) | ||
224 | #define EP93XX_SYSCON_SYSCFG_LCSN1 (1<<0) | ||
225 | #define EP93XX_SYSCON_SWLOCK EP93XX_SYSCON_REG(0xc0) | ||
226 | |||
227 | #define EP93XX_WATCHDOG_BASE EP93XX_APB_IOMEM(0x00140000) | ||
228 | |||
229 | |||
41 | #endif | 230 | #endif |
diff --git a/arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h b/arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h deleted file mode 100644 index 6d7c571a519..00000000000 --- a/arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h +++ /dev/null | |||
@@ -1,110 +0,0 @@ | |||
1 | /* Include file for the EP93XX GPIO controller machine specifics */ | ||
2 | |||
3 | #ifndef __GPIO_EP93XX_H | ||
4 | #define __GPIO_EP93XX_H | ||
5 | |||
6 | #include <mach/ep93xx-regs.h> | ||
7 | |||
8 | #define EP93XX_GPIO_PHYS_BASE EP93XX_APB_PHYS(0x00040000) | ||
9 | #define EP93XX_GPIO_BASE EP93XX_APB_IOMEM(0x00040000) | ||
10 | #define EP93XX_GPIO_REG(x) (EP93XX_GPIO_BASE + (x)) | ||
11 | #define EP93XX_GPIO_F_INT_STATUS EP93XX_GPIO_REG(0x5c) | ||
12 | #define EP93XX_GPIO_A_INT_STATUS EP93XX_GPIO_REG(0xa0) | ||
13 | #define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc) | ||
14 | #define EP93XX_GPIO_EEDRIVE EP93XX_GPIO_REG(0xc8) | ||
15 | |||
16 | /* GPIO port A. */ | ||
17 | #define EP93XX_GPIO_LINE_A(x) ((x) + 0) | ||
18 | #define EP93XX_GPIO_LINE_EGPIO0 EP93XX_GPIO_LINE_A(0) | ||
19 | #define EP93XX_GPIO_LINE_EGPIO1 EP93XX_GPIO_LINE_A(1) | ||
20 | #define EP93XX_GPIO_LINE_EGPIO2 EP93XX_GPIO_LINE_A(2) | ||
21 | #define EP93XX_GPIO_LINE_EGPIO3 EP93XX_GPIO_LINE_A(3) | ||
22 | #define EP93XX_GPIO_LINE_EGPIO4 EP93XX_GPIO_LINE_A(4) | ||
23 | #define EP93XX_GPIO_LINE_EGPIO5 EP93XX_GPIO_LINE_A(5) | ||
24 | #define EP93XX_GPIO_LINE_EGPIO6 EP93XX_GPIO_LINE_A(6) | ||
25 | #define EP93XX_GPIO_LINE_EGPIO7 EP93XX_GPIO_LINE_A(7) | ||
26 | |||
27 | /* GPIO port B. */ | ||
28 | #define EP93XX_GPIO_LINE_B(x) ((x) + 8) | ||
29 | #define EP93XX_GPIO_LINE_EGPIO8 EP93XX_GPIO_LINE_B(0) | ||
30 | #define EP93XX_GPIO_LINE_EGPIO9 EP93XX_GPIO_LINE_B(1) | ||
31 | #define EP93XX_GPIO_LINE_EGPIO10 EP93XX_GPIO_LINE_B(2) | ||
32 | #define EP93XX_GPIO_LINE_EGPIO11 EP93XX_GPIO_LINE_B(3) | ||
33 | #define EP93XX_GPIO_LINE_EGPIO12 EP93XX_GPIO_LINE_B(4) | ||
34 | #define EP93XX_GPIO_LINE_EGPIO13 EP93XX_GPIO_LINE_B(5) | ||
35 | #define EP93XX_GPIO_LINE_EGPIO14 EP93XX_GPIO_LINE_B(6) | ||
36 | #define EP93XX_GPIO_LINE_EGPIO15 EP93XX_GPIO_LINE_B(7) | ||
37 | |||
38 | /* GPIO port C. */ | ||
39 | #define EP93XX_GPIO_LINE_C(x) ((x) + 40) | ||
40 | #define EP93XX_GPIO_LINE_ROW0 EP93XX_GPIO_LINE_C(0) | ||
41 | #define EP93XX_GPIO_LINE_ROW1 EP93XX_GPIO_LINE_C(1) | ||
42 | #define EP93XX_GPIO_LINE_ROW2 EP93XX_GPIO_LINE_C(2) | ||
43 | #define EP93XX_GPIO_LINE_ROW3 EP93XX_GPIO_LINE_C(3) | ||
44 | #define EP93XX_GPIO_LINE_ROW4 EP93XX_GPIO_LINE_C(4) | ||
45 | #define EP93XX_GPIO_LINE_ROW5 EP93XX_GPIO_LINE_C(5) | ||
46 | #define EP93XX_GPIO_LINE_ROW6 EP93XX_GPIO_LINE_C(6) | ||
47 | #define EP93XX_GPIO_LINE_ROW7 EP93XX_GPIO_LINE_C(7) | ||
48 | |||
49 | /* GPIO port D. */ | ||
50 | #define EP93XX_GPIO_LINE_D(x) ((x) + 24) | ||
51 | #define EP93XX_GPIO_LINE_COL0 EP93XX_GPIO_LINE_D(0) | ||
52 | #define EP93XX_GPIO_LINE_COL1 EP93XX_GPIO_LINE_D(1) | ||
53 | #define EP93XX_GPIO_LINE_COL2 EP93XX_GPIO_LINE_D(2) | ||
54 | #define EP93XX_GPIO_LINE_COL3 EP93XX_GPIO_LINE_D(3) | ||
55 | #define EP93XX_GPIO_LINE_COL4 EP93XX_GPIO_LINE_D(4) | ||
56 | #define EP93XX_GPIO_LINE_COL5 EP93XX_GPIO_LINE_D(5) | ||
57 | #define EP93XX_GPIO_LINE_COL6 EP93XX_GPIO_LINE_D(6) | ||
58 | #define EP93XX_GPIO_LINE_COL7 EP93XX_GPIO_LINE_D(7) | ||
59 | |||
60 | /* GPIO port E. */ | ||
61 | #define EP93XX_GPIO_LINE_E(x) ((x) + 32) | ||
62 | #define EP93XX_GPIO_LINE_GRLED EP93XX_GPIO_LINE_E(0) | ||
63 | #define EP93XX_GPIO_LINE_RDLED EP93XX_GPIO_LINE_E(1) | ||
64 | #define EP93XX_GPIO_LINE_DIORn EP93XX_GPIO_LINE_E(2) | ||
65 | #define EP93XX_GPIO_LINE_IDECS1n EP93XX_GPIO_LINE_E(3) | ||
66 | #define EP93XX_GPIO_LINE_IDECS2n EP93XX_GPIO_LINE_E(4) | ||
67 | #define EP93XX_GPIO_LINE_IDEDA0 EP93XX_GPIO_LINE_E(5) | ||
68 | #define EP93XX_GPIO_LINE_IDEDA1 EP93XX_GPIO_LINE_E(6) | ||
69 | #define EP93XX_GPIO_LINE_IDEDA2 EP93XX_GPIO_LINE_E(7) | ||
70 | |||
71 | /* GPIO port F. */ | ||
72 | #define EP93XX_GPIO_LINE_F(x) ((x) + 16) | ||
73 | #define EP93XX_GPIO_LINE_WP EP93XX_GPIO_LINE_F(0) | ||
74 | #define EP93XX_GPIO_LINE_MCCD1 EP93XX_GPIO_LINE_F(1) | ||
75 | #define EP93XX_GPIO_LINE_MCCD2 EP93XX_GPIO_LINE_F(2) | ||
76 | #define EP93XX_GPIO_LINE_MCBVD1 EP93XX_GPIO_LINE_F(3) | ||
77 | #define EP93XX_GPIO_LINE_MCBVD2 EP93XX_GPIO_LINE_F(4) | ||
78 | #define EP93XX_GPIO_LINE_VS1 EP93XX_GPIO_LINE_F(5) | ||
79 | #define EP93XX_GPIO_LINE_READY EP93XX_GPIO_LINE_F(6) | ||
80 | #define EP93XX_GPIO_LINE_VS2 EP93XX_GPIO_LINE_F(7) | ||
81 | |||
82 | /* GPIO port G. */ | ||
83 | #define EP93XX_GPIO_LINE_G(x) ((x) + 48) | ||
84 | #define EP93XX_GPIO_LINE_EECLK EP93XX_GPIO_LINE_G(0) | ||
85 | #define EP93XX_GPIO_LINE_EEDAT EP93XX_GPIO_LINE_G(1) | ||
86 | #define EP93XX_GPIO_LINE_SLA0 EP93XX_GPIO_LINE_G(2) | ||
87 | #define EP93XX_GPIO_LINE_SLA1 EP93XX_GPIO_LINE_G(3) | ||
88 | #define EP93XX_GPIO_LINE_DD12 EP93XX_GPIO_LINE_G(4) | ||
89 | #define EP93XX_GPIO_LINE_DD13 EP93XX_GPIO_LINE_G(5) | ||
90 | #define EP93XX_GPIO_LINE_DD14 EP93XX_GPIO_LINE_G(6) | ||
91 | #define EP93XX_GPIO_LINE_DD15 EP93XX_GPIO_LINE_G(7) | ||
92 | |||
93 | /* GPIO port H. */ | ||
94 | #define EP93XX_GPIO_LINE_H(x) ((x) + 56) | ||
95 | #define EP93XX_GPIO_LINE_DD0 EP93XX_GPIO_LINE_H(0) | ||
96 | #define EP93XX_GPIO_LINE_DD1 EP93XX_GPIO_LINE_H(1) | ||
97 | #define EP93XX_GPIO_LINE_DD2 EP93XX_GPIO_LINE_H(2) | ||
98 | #define EP93XX_GPIO_LINE_DD3 EP93XX_GPIO_LINE_H(3) | ||
99 | #define EP93XX_GPIO_LINE_DD4 EP93XX_GPIO_LINE_H(4) | ||
100 | #define EP93XX_GPIO_LINE_DD5 EP93XX_GPIO_LINE_H(5) | ||
101 | #define EP93XX_GPIO_LINE_DD6 EP93XX_GPIO_LINE_H(6) | ||
102 | #define EP93XX_GPIO_LINE_DD7 EP93XX_GPIO_LINE_H(7) | ||
103 | |||
104 | /* maximum value for gpio line identifiers */ | ||
105 | #define EP93XX_GPIO_LINE_MAX EP93XX_GPIO_LINE_H(7) | ||
106 | |||
107 | /* maximum value for irq capable line identifiers */ | ||
108 | #define EP93XX_GPIO_LINE_MAX_IRQ EP93XX_GPIO_LINE_F(7) | ||
109 | |||
110 | #endif /* __GPIO_EP93XX_H */ | ||
diff --git a/arch/arm/mach-ep93xx/include/mach/hardware.h b/arch/arm/mach-ep93xx/include/mach/hardware.h index efcd47815a9..4df842897ea 100644 --- a/arch/arm/mach-ep93xx/include/mach/hardware.h +++ b/arch/arm/mach-ep93xx/include/mach/hardware.h | |||
@@ -5,6 +5,7 @@ | |||
5 | #ifndef __ASM_ARCH_HARDWARE_H | 5 | #ifndef __ASM_ARCH_HARDWARE_H |
6 | #define __ASM_ARCH_HARDWARE_H | 6 | #define __ASM_ARCH_HARDWARE_H |
7 | 7 | ||
8 | #include <mach/ep93xx-regs.h> | ||
8 | #include <mach/platform.h> | 9 | #include <mach/platform.h> |
9 | 10 | ||
10 | /* | 11 | /* |
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h index 33a5122c6dc..50660455b1d 100644 --- a/arch/arm/mach-ep93xx/include/mach/platform.h +++ b/arch/arm/mach-ep93xx/include/mach/platform.h | |||
@@ -21,6 +21,20 @@ struct ep93xx_eth_data | |||
21 | void ep93xx_map_io(void); | 21 | void ep93xx_map_io(void); |
22 | void ep93xx_init_irq(void); | 22 | void ep93xx_init_irq(void); |
23 | 23 | ||
24 | /* EP93xx System Controller software locked register write */ | ||
25 | void ep93xx_syscon_swlocked_write(unsigned int val, void __iomem *reg); | ||
26 | void ep93xx_devcfg_set_clear(unsigned int set_bits, unsigned int clear_bits); | ||
27 | |||
28 | static inline void ep93xx_devcfg_set_bits(unsigned int bits) | ||
29 | { | ||
30 | ep93xx_devcfg_set_clear(bits, 0x00); | ||
31 | } | ||
32 | |||
33 | static inline void ep93xx_devcfg_clear_bits(unsigned int bits) | ||
34 | { | ||
35 | ep93xx_devcfg_set_clear(0x00, bits); | ||
36 | } | ||
37 | |||
24 | #define EP93XX_CHIP_REV_D0 3 | 38 | #define EP93XX_CHIP_REV_D0 3 |
25 | #define EP93XX_CHIP_REV_D1 4 | 39 | #define EP93XX_CHIP_REV_D1 4 |
26 | #define EP93XX_CHIP_REV_E0 5 | 40 | #define EP93XX_CHIP_REV_E0 5 |
@@ -45,23 +59,11 @@ void ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data); | |||
45 | int ep93xx_keypad_acquire_gpio(struct platform_device *pdev); | 59 | int ep93xx_keypad_acquire_gpio(struct platform_device *pdev); |
46 | void ep93xx_keypad_release_gpio(struct platform_device *pdev); | 60 | void ep93xx_keypad_release_gpio(struct platform_device *pdev); |
47 | void ep93xx_register_i2s(void); | 61 | void ep93xx_register_i2s(void); |
48 | int ep93xx_i2s_acquire(void); | 62 | int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config); |
49 | void ep93xx_i2s_release(void); | 63 | void ep93xx_i2s_release(void); |
50 | void ep93xx_register_ac97(void); | 64 | void ep93xx_register_ac97(void); |
51 | void ep93xx_register_ide(void); | ||
52 | int ep93xx_ide_acquire_gpio(struct platform_device *pdev); | ||
53 | void ep93xx_ide_release_gpio(struct platform_device *pdev); | ||
54 | 65 | ||
55 | void ep93xx_init_devices(void); | 66 | void ep93xx_init_devices(void); |
56 | extern struct sys_timer ep93xx_timer; | 67 | extern struct sys_timer ep93xx_timer; |
57 | 68 | ||
58 | void ep93xx_restart(char, const char *); | ||
59 | void ep93xx_init_late(void); | ||
60 | |||
61 | #ifdef CONFIG_CRUNCH | ||
62 | int crunch_init(void); | ||
63 | #else | ||
64 | static inline int crunch_init(void) { return 0; } | ||
65 | #endif | ||
66 | |||
67 | #endif | 69 | #endif |
diff --git a/arch/arm/mach-ep93xx/include/mach/uncompress.h b/arch/arm/mach-ep93xx/include/mach/uncompress.h index d64274fc576..16026c2b1c8 100644 --- a/arch/arm/mach-ep93xx/include/mach/uncompress.h +++ b/arch/arm/mach-ep93xx/include/mach/uncompress.h | |||
@@ -47,9 +47,13 @@ static void __raw_writel(unsigned int value, unsigned int ptr) | |||
47 | 47 | ||
48 | static inline void putc(int c) | 48 | static inline void putc(int c) |
49 | { | 49 | { |
50 | /* Transmit fifo not full? */ | 50 | int i; |
51 | while (__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF) | 51 | |
52 | ; | 52 | for (i = 0; i < 1000; i++) { |
53 | /* Transmit fifo not full? */ | ||
54 | if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF)) | ||
55 | break; | ||
56 | } | ||
53 | 57 | ||
54 | __raw_writeb(c, PHYS_UART_DATA); | 58 | __raw_writeb(c, PHYS_UART_DATA); |
55 | } | 59 | } |