diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2011-11-13 00:00:58 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-11-29 10:46:12 -0500 |
commit | 619d4a4b40f44c1b45263a0e0c9598e3139a1fec (patch) | |
tree | 1cf30395b134a16812a18fb58e47f125920ad29d | |
parent | ed20178d6266e0b9c9370e6862ac1eadadb8b321 (diff) |
ARM: at91: switch gpio clock to clkdev
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
-rw-r--r-- | arch/arm/mach-at91/at91cap9.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91rm9200.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9260.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9261.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9263.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9g45.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9rl.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-at91/generic.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-at91/gpio.c | 23 |
9 files changed, 43 insertions, 37 deletions
diff --git a/arch/arm/mach-at91/at91cap9.c b/arch/arm/mach-at91/at91cap9.c index dcfa8af845ab..f7f7e1ea2d1f 100644 --- a/arch/arm/mach-at91/at91cap9.c +++ b/arch/arm/mach-at91/at91cap9.c | |||
@@ -222,6 +222,10 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
222 | CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), | 222 | CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), |
223 | /* fake hclk clock */ | 223 | /* fake hclk clock */ |
224 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), | 224 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), |
225 | CLKDEV_CON_ID("pioA", &pioABCD_clk), | ||
226 | CLKDEV_CON_ID("pioB", &pioABCD_clk), | ||
227 | CLKDEV_CON_ID("pioC", &pioABCD_clk), | ||
228 | CLKDEV_CON_ID("pioD", &pioABCD_clk), | ||
225 | }; | 229 | }; |
226 | 230 | ||
227 | static struct clk_lookup usart_clocks_lookups[] = { | 231 | static struct clk_lookup usart_clocks_lookups[] = { |
@@ -298,19 +302,15 @@ static struct at91_gpio_bank at91cap9_gpio[] = { | |||
298 | { | 302 | { |
299 | .id = AT91CAP9_ID_PIOABCD, | 303 | .id = AT91CAP9_ID_PIOABCD, |
300 | .regbase = AT91CAP9_BASE_PIOA, | 304 | .regbase = AT91CAP9_BASE_PIOA, |
301 | .clock = &pioABCD_clk, | ||
302 | }, { | 305 | }, { |
303 | .id = AT91CAP9_ID_PIOABCD, | 306 | .id = AT91CAP9_ID_PIOABCD, |
304 | .regbase = AT91CAP9_BASE_PIOB, | 307 | .regbase = AT91CAP9_BASE_PIOB, |
305 | .clock = &pioABCD_clk, | ||
306 | }, { | 308 | }, { |
307 | .id = AT91CAP9_ID_PIOABCD, | 309 | .id = AT91CAP9_ID_PIOABCD, |
308 | .regbase = AT91CAP9_BASE_PIOC, | 310 | .regbase = AT91CAP9_BASE_PIOC, |
309 | .clock = &pioABCD_clk, | ||
310 | }, { | 311 | }, { |
311 | .id = AT91CAP9_ID_PIOABCD, | 312 | .id = AT91CAP9_ID_PIOABCD, |
312 | .regbase = AT91CAP9_BASE_PIOD, | 313 | .regbase = AT91CAP9_BASE_PIOD, |
313 | .clock = &pioABCD_clk, | ||
314 | } | 314 | } |
315 | }; | 315 | }; |
316 | 316 | ||
diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c index c06c14fecba4..7470f6381752 100644 --- a/arch/arm/mach-at91/at91rm9200.c +++ b/arch/arm/mach-at91/at91rm9200.c | |||
@@ -196,6 +196,10 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
196 | CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), | 196 | CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), |
197 | /* fake hclk clock */ | 197 | /* fake hclk clock */ |
198 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), | 198 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), |
199 | CLKDEV_CON_ID("pioA", &pioA_clk), | ||
200 | CLKDEV_CON_ID("pioB", &pioB_clk), | ||
201 | CLKDEV_CON_ID("pioC", &pioC_clk), | ||
202 | CLKDEV_CON_ID("pioD", &pioD_clk), | ||
199 | }; | 203 | }; |
200 | 204 | ||
201 | static struct clk_lookup usart_clocks_lookups[] = { | 205 | static struct clk_lookup usart_clocks_lookups[] = { |
@@ -273,19 +277,15 @@ static struct at91_gpio_bank at91rm9200_gpio[] = { | |||
273 | { | 277 | { |
274 | .id = AT91RM9200_ID_PIOA, | 278 | .id = AT91RM9200_ID_PIOA, |
275 | .regbase = AT91RM9200_BASE_PIOA, | 279 | .regbase = AT91RM9200_BASE_PIOA, |
276 | .clock = &pioA_clk, | ||
277 | }, { | 280 | }, { |
278 | .id = AT91RM9200_ID_PIOB, | 281 | .id = AT91RM9200_ID_PIOB, |
279 | .regbase = AT91RM9200_BASE_PIOB, | 282 | .regbase = AT91RM9200_BASE_PIOB, |
280 | .clock = &pioB_clk, | ||
281 | }, { | 283 | }, { |
282 | .id = AT91RM9200_ID_PIOC, | 284 | .id = AT91RM9200_ID_PIOC, |
283 | .regbase = AT91RM9200_BASE_PIOC, | 285 | .regbase = AT91RM9200_BASE_PIOC, |
284 | .clock = &pioC_clk, | ||
285 | }, { | 286 | }, { |
286 | .id = AT91RM9200_ID_PIOD, | 287 | .id = AT91RM9200_ID_PIOD, |
287 | .regbase = AT91RM9200_BASE_PIOD, | 288 | .regbase = AT91RM9200_BASE_PIOD, |
288 | .clock = &pioD_clk, | ||
289 | } | 289 | } |
290 | }; | 290 | }; |
291 | 291 | ||
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c index e94cc2268461..943da2100cdc 100644 --- a/arch/arm/mach-at91/at91sam9260.c +++ b/arch/arm/mach-at91/at91sam9260.c | |||
@@ -210,6 +210,9 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
210 | CLKDEV_CON_DEV_ID("usart", "fffd8000.serial", &usart5_clk), | 210 | CLKDEV_CON_DEV_ID("usart", "fffd8000.serial", &usart5_clk), |
211 | /* fake hclk clock */ | 211 | /* fake hclk clock */ |
212 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), | 212 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), |
213 | CLKDEV_CON_ID("pioA", &pioA_clk), | ||
214 | CLKDEV_CON_ID("pioB", &pioB_clk), | ||
215 | CLKDEV_CON_ID("pioC", &pioC_clk), | ||
213 | }; | 216 | }; |
214 | 217 | ||
215 | static struct clk_lookup usart_clocks_lookups[] = { | 218 | static struct clk_lookup usart_clocks_lookups[] = { |
@@ -275,15 +278,12 @@ static struct at91_gpio_bank at91sam9260_gpio[] = { | |||
275 | { | 278 | { |
276 | .id = AT91SAM9260_ID_PIOA, | 279 | .id = AT91SAM9260_ID_PIOA, |
277 | .regbase = AT91SAM9260_BASE_PIOA, | 280 | .regbase = AT91SAM9260_BASE_PIOA, |
278 | .clock = &pioA_clk, | ||
279 | }, { | 281 | }, { |
280 | .id = AT91SAM9260_ID_PIOB, | 282 | .id = AT91SAM9260_ID_PIOB, |
281 | .regbase = AT91SAM9260_BASE_PIOB, | 283 | .regbase = AT91SAM9260_BASE_PIOB, |
282 | .clock = &pioB_clk, | ||
283 | }, { | 284 | }, { |
284 | .id = AT91SAM9260_ID_PIOC, | 285 | .id = AT91SAM9260_ID_PIOC, |
285 | .regbase = AT91SAM9260_BASE_PIOC, | 286 | .regbase = AT91SAM9260_BASE_PIOC, |
286 | .clock = &pioC_clk, | ||
287 | } | 287 | } |
288 | }; | 288 | }; |
289 | 289 | ||
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c index 80e3e0fac6b1..dd7924c996fc 100644 --- a/arch/arm/mach-at91/at91sam9261.c +++ b/arch/arm/mach-at91/at91sam9261.c | |||
@@ -175,6 +175,9 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
175 | CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), | 175 | CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), |
176 | CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), | 176 | CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), |
177 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &hck0), | 177 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &hck0), |
178 | CLKDEV_CON_ID("pioA", &pioA_clk), | ||
179 | CLKDEV_CON_ID("pioB", &pioB_clk), | ||
180 | CLKDEV_CON_ID("pioC", &pioC_clk), | ||
178 | }; | 181 | }; |
179 | 182 | ||
180 | static struct clk_lookup usart_clocks_lookups[] = { | 183 | static struct clk_lookup usart_clocks_lookups[] = { |
@@ -254,15 +257,12 @@ static struct at91_gpio_bank at91sam9261_gpio[] = { | |||
254 | { | 257 | { |
255 | .id = AT91SAM9261_ID_PIOA, | 258 | .id = AT91SAM9261_ID_PIOA, |
256 | .regbase = AT91SAM9261_BASE_PIOA, | 259 | .regbase = AT91SAM9261_BASE_PIOA, |
257 | .clock = &pioA_clk, | ||
258 | }, { | 260 | }, { |
259 | .id = AT91SAM9261_ID_PIOB, | 261 | .id = AT91SAM9261_ID_PIOB, |
260 | .regbase = AT91SAM9261_BASE_PIOB, | 262 | .regbase = AT91SAM9261_BASE_PIOB, |
261 | .clock = &pioB_clk, | ||
262 | }, { | 263 | }, { |
263 | .id = AT91SAM9261_ID_PIOC, | 264 | .id = AT91SAM9261_ID_PIOC, |
264 | .regbase = AT91SAM9261_BASE_PIOC, | 265 | .regbase = AT91SAM9261_BASE_PIOC, |
265 | .clock = &pioC_clk, | ||
266 | } | 266 | } |
267 | }; | 267 | }; |
268 | 268 | ||
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c index 5c14b22928a8..5a7474174593 100644 --- a/arch/arm/mach-at91/at91sam9263.c +++ b/arch/arm/mach-at91/at91sam9263.c | |||
@@ -192,6 +192,11 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
192 | CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk), | 192 | CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk), |
193 | /* fake hclk clock */ | 193 | /* fake hclk clock */ |
194 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), | 194 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), |
195 | CLKDEV_CON_ID("pioA", &pioA_clk), | ||
196 | CLKDEV_CON_ID("pioB", &pioB_clk), | ||
197 | CLKDEV_CON_ID("pioC", &pioCDE_clk), | ||
198 | CLKDEV_CON_ID("pioD", &pioCDE_clk), | ||
199 | CLKDEV_CON_ID("pioE", &pioCDE_clk), | ||
195 | }; | 200 | }; |
196 | 201 | ||
197 | static struct clk_lookup usart_clocks_lookups[] = { | 202 | static struct clk_lookup usart_clocks_lookups[] = { |
@@ -268,23 +273,18 @@ static struct at91_gpio_bank at91sam9263_gpio[] = { | |||
268 | { | 273 | { |
269 | .id = AT91SAM9263_ID_PIOA, | 274 | .id = AT91SAM9263_ID_PIOA, |
270 | .regbase = AT91SAM9263_BASE_PIOA, | 275 | .regbase = AT91SAM9263_BASE_PIOA, |
271 | .clock = &pioA_clk, | ||
272 | }, { | 276 | }, { |
273 | .id = AT91SAM9263_ID_PIOB, | 277 | .id = AT91SAM9263_ID_PIOB, |
274 | .regbase = AT91SAM9263_BASE_PIOB, | 278 | .regbase = AT91SAM9263_BASE_PIOB, |
275 | .clock = &pioB_clk, | ||
276 | }, { | 279 | }, { |
277 | .id = AT91SAM9263_ID_PIOCDE, | 280 | .id = AT91SAM9263_ID_PIOCDE, |
278 | .regbase = AT91SAM9263_BASE_PIOC, | 281 | .regbase = AT91SAM9263_BASE_PIOC, |
279 | .clock = &pioCDE_clk, | ||
280 | }, { | 282 | }, { |
281 | .id = AT91SAM9263_ID_PIOCDE, | 283 | .id = AT91SAM9263_ID_PIOCDE, |
282 | .regbase = AT91SAM9263_BASE_PIOD, | 284 | .regbase = AT91SAM9263_BASE_PIOD, |
283 | .clock = &pioCDE_clk, | ||
284 | }, { | 285 | }, { |
285 | .id = AT91SAM9263_ID_PIOCDE, | 286 | .id = AT91SAM9263_ID_PIOCDE, |
286 | .regbase = AT91SAM9263_BASE_PIOE, | 287 | .regbase = AT91SAM9263_BASE_PIOE, |
287 | .clock = &pioCDE_clk, | ||
288 | } | 288 | } |
289 | }; | 289 | }; |
290 | 290 | ||
diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c index c0c9fa7b73f0..4bb0bf00b3a4 100644 --- a/arch/arm/mach-at91/at91sam9g45.c +++ b/arch/arm/mach-at91/at91sam9g45.c | |||
@@ -232,6 +232,11 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
232 | CLKDEV_CON_DEV_ID("usart", "fff98000.serial", &usart3_clk), | 232 | CLKDEV_CON_DEV_ID("usart", "fff98000.serial", &usart3_clk), |
233 | /* fake hclk clock */ | 233 | /* fake hclk clock */ |
234 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &uhphs_clk), | 234 | CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &uhphs_clk), |
235 | CLKDEV_CON_ID("pioA", &pioA_clk), | ||
236 | CLKDEV_CON_ID("pioB", &pioB_clk), | ||
237 | CLKDEV_CON_ID("pioC", &pioC_clk), | ||
238 | CLKDEV_CON_ID("pioD", &pioDE_clk), | ||
239 | CLKDEV_CON_ID("pioE", &pioDE_clk), | ||
235 | }; | 240 | }; |
236 | 241 | ||
237 | static struct clk_lookup usart_clocks_lookups[] = { | 242 | static struct clk_lookup usart_clocks_lookups[] = { |
@@ -298,23 +303,18 @@ static struct at91_gpio_bank at91sam9g45_gpio[] = { | |||
298 | { | 303 | { |
299 | .id = AT91SAM9G45_ID_PIOA, | 304 | .id = AT91SAM9G45_ID_PIOA, |
300 | .regbase = AT91SAM9G45_BASE_PIOA, | 305 | .regbase = AT91SAM9G45_BASE_PIOA, |
301 | .clock = &pioA_clk, | ||
302 | }, { | 306 | }, { |
303 | .id = AT91SAM9G45_ID_PIOB, | 307 | .id = AT91SAM9G45_ID_PIOB, |
304 | .regbase = AT91SAM9G45_BASE_PIOB, | 308 | .regbase = AT91SAM9G45_BASE_PIOB, |
305 | .clock = &pioB_clk, | ||
306 | }, { | 309 | }, { |
307 | .id = AT91SAM9G45_ID_PIOC, | 310 | .id = AT91SAM9G45_ID_PIOC, |
308 | .regbase = AT91SAM9G45_BASE_PIOC, | 311 | .regbase = AT91SAM9G45_BASE_PIOC, |
309 | .clock = &pioC_clk, | ||
310 | }, { | 312 | }, { |
311 | .id = AT91SAM9G45_ID_PIODE, | 313 | .id = AT91SAM9G45_ID_PIODE, |
312 | .regbase = AT91SAM9G45_BASE_PIOD, | 314 | .regbase = AT91SAM9G45_BASE_PIOD, |
313 | .clock = &pioDE_clk, | ||
314 | }, { | 315 | }, { |
315 | .id = AT91SAM9G45_ID_PIODE, | 316 | .id = AT91SAM9G45_ID_PIODE, |
316 | .regbase = AT91SAM9G45_BASE_PIOE, | 317 | .regbase = AT91SAM9G45_BASE_PIOE, |
317 | .clock = &pioDE_clk, | ||
318 | } | 318 | } |
319 | }; | 319 | }; |
320 | 320 | ||
diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c index 6856badc518b..60555d4738f8 100644 --- a/arch/arm/mach-at91/at91sam9rl.c +++ b/arch/arm/mach-at91/at91sam9rl.c | |||
@@ -183,6 +183,10 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
183 | CLKDEV_CON_DEV_ID("t2_clk", "atmel_tcb.0", &tc2_clk), | 183 | CLKDEV_CON_DEV_ID("t2_clk", "atmel_tcb.0", &tc2_clk), |
184 | CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), | 184 | CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), |
185 | CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), | 185 | CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), |
186 | CLKDEV_CON_ID("pioA", &pioA_clk), | ||
187 | CLKDEV_CON_ID("pioB", &pioB_clk), | ||
188 | CLKDEV_CON_ID("pioC", &pioC_clk), | ||
189 | CLKDEV_CON_ID("pioD", &pioD_clk), | ||
186 | }; | 190 | }; |
187 | 191 | ||
188 | static struct clk_lookup usart_clocks_lookups[] = { | 192 | static struct clk_lookup usart_clocks_lookups[] = { |
@@ -246,19 +250,15 @@ static struct at91_gpio_bank at91sam9rl_gpio[] = { | |||
246 | { | 250 | { |
247 | .id = AT91SAM9RL_ID_PIOA, | 251 | .id = AT91SAM9RL_ID_PIOA, |
248 | .regbase = AT91SAM9RL_BASE_PIOA, | 252 | .regbase = AT91SAM9RL_BASE_PIOA, |
249 | .clock = &pioA_clk, | ||
250 | }, { | 253 | }, { |
251 | .id = AT91SAM9RL_ID_PIOB, | 254 | .id = AT91SAM9RL_ID_PIOB, |
252 | .regbase = AT91SAM9RL_BASE_PIOB, | 255 | .regbase = AT91SAM9RL_BASE_PIOB, |
253 | .clock = &pioB_clk, | ||
254 | }, { | 256 | }, { |
255 | .id = AT91SAM9RL_ID_PIOC, | 257 | .id = AT91SAM9RL_ID_PIOC, |
256 | .regbase = AT91SAM9RL_BASE_PIOC, | 258 | .regbase = AT91SAM9RL_BASE_PIOC, |
257 | .clock = &pioC_clk, | ||
258 | }, { | 259 | }, { |
259 | .id = AT91SAM9RL_ID_PIOD, | 260 | .id = AT91SAM9RL_ID_PIOD, |
260 | .regbase = AT91SAM9RL_BASE_PIOD, | 261 | .regbase = AT91SAM9RL_BASE_PIOD, |
261 | .clock = &pioD_clk, | ||
262 | } | 262 | } |
263 | }; | 263 | }; |
264 | 264 | ||
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h index bc1776406f42..40309588f360 100644 --- a/arch/arm/mach-at91/generic.h +++ b/arch/arm/mach-at91/generic.h | |||
@@ -70,7 +70,6 @@ extern void at91_ioremap_shdwc(u32 base_addr); | |||
70 | struct at91_gpio_bank { | 70 | struct at91_gpio_bank { |
71 | unsigned short id; /* peripheral ID */ | 71 | unsigned short id; /* peripheral ID */ |
72 | unsigned long regbase; /* offset from system peripheral base */ | 72 | unsigned long regbase; /* offset from system peripheral base */ |
73 | struct clk *clock; /* associated clock */ | ||
74 | }; | 73 | }; |
75 | extern void __init at91_gpio_init(struct at91_gpio_bank *, int nr_banks); | 74 | extern void __init at91_gpio_init(struct at91_gpio_bank *, int nr_banks); |
76 | extern void __init at91_gpio_irq_setup(void); | 75 | extern void __init at91_gpio_irq_setup(void); |
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c index cedb753f4cad..4059f07eb955 100644 --- a/arch/arm/mach-at91/gpio.c +++ b/arch/arm/mach-at91/gpio.c | |||
@@ -31,6 +31,7 @@ struct at91_gpio_chip { | |||
31 | struct at91_gpio_chip *next; /* Bank sharing same clock */ | 31 | struct at91_gpio_chip *next; /* Bank sharing same clock */ |
32 | struct at91_gpio_bank *bank; /* Bank definition */ | 32 | struct at91_gpio_bank *bank; /* Bank definition */ |
33 | void __iomem *regbase; /* Base of register bank */ | 33 | void __iomem *regbase; /* Base of register bank */ |
34 | struct clk *clock; /* associated clock */ | ||
34 | }; | 35 | }; |
35 | 36 | ||
36 | #define to_at91_gpio_chip(c) container_of(c, struct at91_gpio_chip, chip) | 37 | #define to_at91_gpio_chip(c) container_of(c, struct at91_gpio_chip, chip) |
@@ -58,11 +59,11 @@ static int at91_gpiolib_direction_input(struct gpio_chip *chip, | |||
58 | } | 59 | } |
59 | 60 | ||
60 | static struct at91_gpio_chip gpio_chip[] = { | 61 | static struct at91_gpio_chip gpio_chip[] = { |
61 | AT91_GPIO_CHIP("A", 0x00 + PIN_BASE, 32), | 62 | AT91_GPIO_CHIP("pioA", 0x00 + PIN_BASE, 32), |
62 | AT91_GPIO_CHIP("B", 0x20 + PIN_BASE, 32), | 63 | AT91_GPIO_CHIP("pioB", 0x20 + PIN_BASE, 32), |
63 | AT91_GPIO_CHIP("C", 0x40 + PIN_BASE, 32), | 64 | AT91_GPIO_CHIP("pioC", 0x40 + PIN_BASE, 32), |
64 | AT91_GPIO_CHIP("D", 0x60 + PIN_BASE, 32), | 65 | AT91_GPIO_CHIP("pioD", 0x60 + PIN_BASE, 32), |
65 | AT91_GPIO_CHIP("E", 0x80 + PIN_BASE, 32), | 66 | AT91_GPIO_CHIP("pioE", 0x80 + PIN_BASE, 32), |
66 | }; | 67 | }; |
67 | 68 | ||
68 | static int gpio_banks; | 69 | static int gpio_banks; |
@@ -302,7 +303,7 @@ void at91_gpio_suspend(void) | |||
302 | __raw_writel(wakeups[i], pio + PIO_IER); | 303 | __raw_writel(wakeups[i], pio + PIO_IER); |
303 | 304 | ||
304 | if (!wakeups[i]) | 305 | if (!wakeups[i]) |
305 | clk_disable(gpio_chip[i].bank->clock); | 306 | clk_disable(gpio_chip[i].clock); |
306 | else { | 307 | else { |
307 | #ifdef CONFIG_PM_DEBUG | 308 | #ifdef CONFIG_PM_DEBUG |
308 | printk(KERN_DEBUG "GPIO-%c may wake for %08x\n", 'A'+i, wakeups[i]); | 309 | printk(KERN_DEBUG "GPIO-%c may wake for %08x\n", 'A'+i, wakeups[i]); |
@@ -319,7 +320,7 @@ void at91_gpio_resume(void) | |||
319 | void __iomem *pio = gpio_chip[i].regbase; | 320 | void __iomem *pio = gpio_chip[i].regbase; |
320 | 321 | ||
321 | if (!wakeups[i]) | 322 | if (!wakeups[i]) |
322 | clk_enable(gpio_chip[i].bank->clock); | 323 | clk_enable(gpio_chip[i].clock); |
323 | 324 | ||
324 | __raw_writel(wakeups[i], pio + PIO_IDR); | 325 | __raw_writel(wakeups[i], pio + PIO_IDR); |
325 | __raw_writel(backups[i], pio + PIO_IER); | 326 | __raw_writel(backups[i], pio + PIO_IER); |
@@ -621,8 +622,14 @@ void __init at91_gpio_init(struct at91_gpio_bank *data, int nr_banks) | |||
621 | continue; | 622 | continue; |
622 | } | 623 | } |
623 | 624 | ||
625 | at91_gpio->clock = clk_get_sys(NULL, at91_gpio->chip.label); | ||
626 | if (!at91_gpio->clock) { | ||
627 | pr_err("at91_gpio.%d, failed to get clock, ignoring.\n", i); | ||
628 | continue; | ||
629 | } | ||
630 | |||
624 | /* enable PIO controller's clock */ | 631 | /* enable PIO controller's clock */ |
625 | clk_enable(at91_gpio->bank->clock); | 632 | clk_enable(at91_gpio->clock); |
626 | 633 | ||
627 | /* AT91SAM9263_ID_PIOCDE groups PIOC, PIOD, PIOE */ | 634 | /* AT91SAM9263_ID_PIOCDE groups PIOC, PIOD, PIOE */ |
628 | if (last && last->bank->id == at91_gpio->bank->id) | 635 | if (last && last->bank->id == at91_gpio->bank->id) |