~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to arch/arm/mach-spear3xx/spear3xx.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
/* gpio device registration */
26
26
static struct pl061_platform_data gpio_plat_data = {
27
27
        .gpio_base      = 0,
28
 
        .irq_base       = SPEAR_GPIO_INT_BASE,
 
28
        .irq_base       = SPEAR3XX_GPIO_INT_BASE,
29
29
};
30
30
 
31
 
struct amba_device gpio_device = {
 
31
struct amba_device spear3xx_gpio_device = {
32
32
        .dev = {
33
33
                .init_name = "gpio",
34
34
                .platform_data = &gpio_plat_data,
38
38
                .end = SPEAR3XX_ICM3_GPIO_BASE + SZ_4K - 1,
39
39
                .flags = IORESOURCE_MEM,
40
40
        },
41
 
        .irq = {IRQ_BASIC_GPIO, NO_IRQ},
 
41
        .irq = {SPEAR3XX_IRQ_BASIC_GPIO, NO_IRQ},
42
42
};
43
43
 
44
44
/* uart device registration */
45
 
struct amba_device uart_device = {
 
45
struct amba_device spear3xx_uart_device = {
46
46
        .dev = {
47
47
                .init_name = "uart",
48
48
        },
51
51
                .end = SPEAR3XX_ICM1_UART_BASE + SZ_4K - 1,
52
52
                .flags = IORESOURCE_MEM,
53
53
        },
54
 
        .irq = {IRQ_UART, NO_IRQ},
 
54
        .irq = {SPEAR3XX_IRQ_UART, NO_IRQ},
55
55
};
56
56
 
57
57
/* Do spear3xx familiy common initialization part here */
97
97
        iotable_init(spear3xx_io_desc, ARRAY_SIZE(spear3xx_io_desc));
98
98
 
99
99
        /* This will initialize clock framework */
100
 
        clk_init();
 
100
        spear3xx_clk_init();
101
101
}
102
102
 
103
103
/* pad multiplexing support */
104
104
/* devices */
105
 
struct pmx_dev_mode pmx_firda_modes[] = {
 
105
static struct pmx_dev_mode pmx_firda_modes[] = {
106
106
        {
107
107
                .ids = 0xffffffff,
108
108
                .mask = PMX_FIRDA_MASK,
109
109
        },
110
110
};
111
111
 
112
 
struct pmx_dev pmx_firda = {
 
112
struct pmx_dev spear3xx_pmx_firda = {
113
113
        .name = "firda",
114
114
        .modes = pmx_firda_modes,
115
115
        .mode_count = ARRAY_SIZE(pmx_firda_modes),
116
116
        .enb_on_reset = 0,
117
117
};
118
118
 
119
 
struct pmx_dev_mode pmx_i2c_modes[] = {
 
119
static struct pmx_dev_mode pmx_i2c_modes[] = {
120
120
        {
121
121
                .ids = 0xffffffff,
122
122
                .mask = PMX_I2C_MASK,
123
123
        },
124
124
};
125
125
 
126
 
struct pmx_dev pmx_i2c = {
 
126
struct pmx_dev spear3xx_pmx_i2c = {
127
127
        .name = "i2c",
128
128
        .modes = pmx_i2c_modes,
129
129
        .mode_count = ARRAY_SIZE(pmx_i2c_modes),
130
130
        .enb_on_reset = 0,
131
131
};
132
132
 
133
 
struct pmx_dev_mode pmx_ssp_cs_modes[] = {
 
133
static struct pmx_dev_mode pmx_ssp_cs_modes[] = {
134
134
        {
135
135
                .ids = 0xffffffff,
136
136
                .mask = PMX_SSP_CS_MASK,
137
137
        },
138
138
};
139
139
 
140
 
struct pmx_dev pmx_ssp_cs = {
 
140
struct pmx_dev spear3xx_pmx_ssp_cs = {
141
141
        .name = "ssp_chip_selects",
142
142
        .modes = pmx_ssp_cs_modes,
143
143
        .mode_count = ARRAY_SIZE(pmx_ssp_cs_modes),
144
144
        .enb_on_reset = 0,
145
145
};
146
146
 
147
 
struct pmx_dev_mode pmx_ssp_modes[] = {
 
147
static struct pmx_dev_mode pmx_ssp_modes[] = {
148
148
        {
149
149
                .ids = 0xffffffff,
150
150
                .mask = PMX_SSP_MASK,
151
151
        },
152
152
};
153
153
 
154
 
struct pmx_dev pmx_ssp = {
 
154
struct pmx_dev spear3xx_pmx_ssp = {
155
155
        .name = "ssp",
156
156
        .modes = pmx_ssp_modes,
157
157
        .mode_count = ARRAY_SIZE(pmx_ssp_modes),
158
158
        .enb_on_reset = 0,
159
159
};
160
160
 
161
 
struct pmx_dev_mode pmx_mii_modes[] = {
 
161
static struct pmx_dev_mode pmx_mii_modes[] = {
162
162
        {
163
163
                .ids = 0xffffffff,
164
164
                .mask = PMX_MII_MASK,
165
165
        },
166
166
};
167
167
 
168
 
struct pmx_dev pmx_mii = {
 
168
struct pmx_dev spear3xx_pmx_mii = {
169
169
        .name = "mii",
170
170
        .modes = pmx_mii_modes,
171
171
        .mode_count = ARRAY_SIZE(pmx_mii_modes),
172
172
        .enb_on_reset = 0,
173
173
};
174
174
 
175
 
struct pmx_dev_mode pmx_gpio_pin0_modes[] = {
 
175
static struct pmx_dev_mode pmx_gpio_pin0_modes[] = {
176
176
        {
177
177
                .ids = 0xffffffff,
178
178
                .mask = PMX_GPIO_PIN0_MASK,
179
179
        },
180
180
};
181
181
 
182
 
struct pmx_dev pmx_gpio_pin0 = {
 
182
struct pmx_dev spear3xx_pmx_gpio_pin0 = {
183
183
        .name = "gpio_pin0",
184
184
        .modes = pmx_gpio_pin0_modes,
185
185
        .mode_count = ARRAY_SIZE(pmx_gpio_pin0_modes),
186
186
        .enb_on_reset = 0,
187
187
};
188
188
 
189
 
struct pmx_dev_mode pmx_gpio_pin1_modes[] = {
 
189
static struct pmx_dev_mode pmx_gpio_pin1_modes[] = {
190
190
        {
191
191
                .ids = 0xffffffff,
192
192
                .mask = PMX_GPIO_PIN1_MASK,
193
193
        },
194
194
};
195
195
 
196
 
struct pmx_dev pmx_gpio_pin1 = {
 
196
struct pmx_dev spear3xx_pmx_gpio_pin1 = {
197
197
        .name = "gpio_pin1",
198
198
        .modes = pmx_gpio_pin1_modes,
199
199
        .mode_count = ARRAY_SIZE(pmx_gpio_pin1_modes),
200
200
        .enb_on_reset = 0,
201
201
};
202
202
 
203
 
struct pmx_dev_mode pmx_gpio_pin2_modes[] = {
 
203
static struct pmx_dev_mode pmx_gpio_pin2_modes[] = {
204
204
        {
205
205
                .ids = 0xffffffff,
206
206
                .mask = PMX_GPIO_PIN2_MASK,
207
207
        },
208
208
};
209
209
 
210
 
struct pmx_dev pmx_gpio_pin2 = {
 
210
struct pmx_dev spear3xx_pmx_gpio_pin2 = {
211
211
        .name = "gpio_pin2",
212
212
        .modes = pmx_gpio_pin2_modes,
213
213
        .mode_count = ARRAY_SIZE(pmx_gpio_pin2_modes),
214
214
        .enb_on_reset = 0,
215
215
};
216
216
 
217
 
struct pmx_dev_mode pmx_gpio_pin3_modes[] = {
 
217
static struct pmx_dev_mode pmx_gpio_pin3_modes[] = {
218
218
        {
219
219
                .ids = 0xffffffff,
220
220
                .mask = PMX_GPIO_PIN3_MASK,
221
221
        },
222
222
};
223
223
 
224
 
struct pmx_dev pmx_gpio_pin3 = {
 
224
struct pmx_dev spear3xx_pmx_gpio_pin3 = {
225
225
        .name = "gpio_pin3",
226
226
        .modes = pmx_gpio_pin3_modes,
227
227
        .mode_count = ARRAY_SIZE(pmx_gpio_pin3_modes),
228
228
        .enb_on_reset = 0,
229
229
};
230
230
 
231
 
struct pmx_dev_mode pmx_gpio_pin4_modes[] = {
 
231
static struct pmx_dev_mode pmx_gpio_pin4_modes[] = {
232
232
        {
233
233
                .ids = 0xffffffff,
234
234
                .mask = PMX_GPIO_PIN4_MASK,
235
235
        },
236
236
};
237
237
 
238
 
struct pmx_dev pmx_gpio_pin4 = {
 
238
struct pmx_dev spear3xx_pmx_gpio_pin4 = {
239
239
        .name = "gpio_pin4",
240
240
        .modes = pmx_gpio_pin4_modes,
241
241
        .mode_count = ARRAY_SIZE(pmx_gpio_pin4_modes),
242
242
        .enb_on_reset = 0,
243
243
};
244
244
 
245
 
struct pmx_dev_mode pmx_gpio_pin5_modes[] = {
 
245
static struct pmx_dev_mode pmx_gpio_pin5_modes[] = {
246
246
        {
247
247
                .ids = 0xffffffff,
248
248
                .mask = PMX_GPIO_PIN5_MASK,
249
249
        },
250
250
};
251
251
 
252
 
struct pmx_dev pmx_gpio_pin5 = {
 
252
struct pmx_dev spear3xx_pmx_gpio_pin5 = {
253
253
        .name = "gpio_pin5",
254
254
        .modes = pmx_gpio_pin5_modes,
255
255
        .mode_count = ARRAY_SIZE(pmx_gpio_pin5_modes),
256
256
        .enb_on_reset = 0,
257
257
};
258
258
 
259
 
struct pmx_dev_mode pmx_uart0_modem_modes[] = {
 
259
static struct pmx_dev_mode pmx_uart0_modem_modes[] = {
260
260
        {
261
261
                .ids = 0xffffffff,
262
262
                .mask = PMX_UART0_MODEM_MASK,
263
263
        },
264
264
};
265
265
 
266
 
struct pmx_dev pmx_uart0_modem = {
 
266
struct pmx_dev spear3xx_pmx_uart0_modem = {
267
267
        .name = "uart0_modem",
268
268
        .modes = pmx_uart0_modem_modes,
269
269
        .mode_count = ARRAY_SIZE(pmx_uart0_modem_modes),
270
270
        .enb_on_reset = 0,
271
271
};
272
272
 
273
 
struct pmx_dev_mode pmx_uart0_modes[] = {
 
273
static struct pmx_dev_mode pmx_uart0_modes[] = {
274
274
        {
275
275
                .ids = 0xffffffff,
276
276
                .mask = PMX_UART0_MASK,
277
277
        },
278
278
};
279
279
 
280
 
struct pmx_dev pmx_uart0 = {
 
280
struct pmx_dev spear3xx_pmx_uart0 = {
281
281
        .name = "uart0",
282
282
        .modes = pmx_uart0_modes,
283
283
        .mode_count = ARRAY_SIZE(pmx_uart0_modes),
284
284
        .enb_on_reset = 0,
285
285
};
286
286
 
287
 
struct pmx_dev_mode pmx_timer_3_4_modes[] = {
 
287
static struct pmx_dev_mode pmx_timer_3_4_modes[] = {
288
288
        {
289
289
                .ids = 0xffffffff,
290
290
                .mask = PMX_TIMER_3_4_MASK,
291
291
        },
292
292
};
293
293
 
294
 
struct pmx_dev pmx_timer_3_4 = {
 
294
struct pmx_dev spear3xx_pmx_timer_3_4 = {
295
295
        .name = "timer_3_4",
296
296
        .modes = pmx_timer_3_4_modes,
297
297
        .mode_count = ARRAY_SIZE(pmx_timer_3_4_modes),
298
298
        .enb_on_reset = 0,
299
299
};
300
300
 
301
 
struct pmx_dev_mode pmx_timer_1_2_modes[] = {
 
301
static struct pmx_dev_mode pmx_timer_1_2_modes[] = {
302
302
        {
303
303
                .ids = 0xffffffff,
304
304
                .mask = PMX_TIMER_1_2_MASK,
305
305
        },
306
306
};
307
307
 
308
 
struct pmx_dev pmx_timer_1_2 = {
 
308
struct pmx_dev spear3xx_pmx_timer_1_2 = {
309
309
        .name = "timer_1_2",
310
310
        .modes = pmx_timer_1_2_modes,
311
311
        .mode_count = ARRAY_SIZE(pmx_timer_1_2_modes),
314
314
 
315
315
#if defined(CONFIG_MACH_SPEAR310) || defined(CONFIG_MACH_SPEAR320)
316
316
/* plgpios devices */
317
 
struct pmx_dev_mode pmx_plgpio_0_1_modes[] = {
 
317
static struct pmx_dev_mode pmx_plgpio_0_1_modes[] = {
318
318
        {
319
319
                .ids = 0x00,
320
320
                .mask = PMX_FIRDA_MASK,
321
321
        },
322
322
};
323
323
 
324
 
struct pmx_dev pmx_plgpio_0_1 = {
 
324
struct pmx_dev spear3xx_pmx_plgpio_0_1 = {
325
325
        .name = "plgpio 0 and 1",
326
326
        .modes = pmx_plgpio_0_1_modes,
327
327
        .mode_count = ARRAY_SIZE(pmx_plgpio_0_1_modes),
328
328
        .enb_on_reset = 1,
329
329
};
330
330
 
331
 
struct pmx_dev_mode pmx_plgpio_2_3_modes[] = {
 
331
static struct pmx_dev_mode pmx_plgpio_2_3_modes[] = {
332
332
        {
333
333
                .ids = 0x00,
334
334
                .mask = PMX_UART0_MASK,
335
335
        },
336
336
};
337
337
 
338
 
struct pmx_dev pmx_plgpio_2_3 = {
 
338
struct pmx_dev spear3xx_pmx_plgpio_2_3 = {
339
339
        .name = "plgpio 2 and 3",
340
340
        .modes = pmx_plgpio_2_3_modes,
341
341
        .mode_count = ARRAY_SIZE(pmx_plgpio_2_3_modes),
342
342
        .enb_on_reset = 1,
343
343
};
344
344
 
345
 
struct pmx_dev_mode pmx_plgpio_4_5_modes[] = {
 
345
static struct pmx_dev_mode pmx_plgpio_4_5_modes[] = {
346
346
        {
347
347
                .ids = 0x00,
348
348
                .mask = PMX_I2C_MASK,
349
349
        },
350
350
};
351
351
 
352
 
struct pmx_dev pmx_plgpio_4_5 = {
 
352
struct pmx_dev spear3xx_pmx_plgpio_4_5 = {
353
353
        .name = "plgpio 4 and 5",
354
354
        .modes = pmx_plgpio_4_5_modes,
355
355
        .mode_count = ARRAY_SIZE(pmx_plgpio_4_5_modes),
356
356
        .enb_on_reset = 1,
357
357
};
358
358
 
359
 
struct pmx_dev_mode pmx_plgpio_6_9_modes[] = {
 
359
static struct pmx_dev_mode pmx_plgpio_6_9_modes[] = {
360
360
        {
361
361
                .ids = 0x00,
362
362
                .mask = PMX_SSP_MASK,
363
363
        },
364
364
};
365
365
 
366
 
struct pmx_dev pmx_plgpio_6_9 = {
 
366
struct pmx_dev spear3xx_pmx_plgpio_6_9 = {
367
367
        .name = "plgpio 6 to 9",
368
368
        .modes = pmx_plgpio_6_9_modes,
369
369
        .mode_count = ARRAY_SIZE(pmx_plgpio_6_9_modes),
370
370
        .enb_on_reset = 1,
371
371
};
372
372
 
373
 
struct pmx_dev_mode pmx_plgpio_10_27_modes[] = {
 
373
static struct pmx_dev_mode pmx_plgpio_10_27_modes[] = {
374
374
        {
375
375
                .ids = 0x00,
376
376
                .mask = PMX_MII_MASK,
377
377
        },
378
378
};
379
379
 
380
 
struct pmx_dev pmx_plgpio_10_27 = {
 
380
struct pmx_dev spear3xx_pmx_plgpio_10_27 = {
381
381
        .name = "plgpio 10 to 27",
382
382
        .modes = pmx_plgpio_10_27_modes,
383
383
        .mode_count = ARRAY_SIZE(pmx_plgpio_10_27_modes),
384
384
        .enb_on_reset = 1,
385
385
};
386
386
 
387
 
struct pmx_dev_mode pmx_plgpio_28_modes[] = {
 
387
static struct pmx_dev_mode pmx_plgpio_28_modes[] = {
388
388
        {
389
389
                .ids = 0x00,
390
390
                .mask = PMX_GPIO_PIN0_MASK,
391
391
        },
392
392
};
393
393
 
394
 
struct pmx_dev pmx_plgpio_28 = {
 
394
struct pmx_dev spear3xx_pmx_plgpio_28 = {
395
395
        .name = "plgpio 28",
396
396
        .modes = pmx_plgpio_28_modes,
397
397
        .mode_count = ARRAY_SIZE(pmx_plgpio_28_modes),
398
398
        .enb_on_reset = 1,
399
399
};
400
400
 
401
 
struct pmx_dev_mode pmx_plgpio_29_modes[] = {
 
401
static struct pmx_dev_mode pmx_plgpio_29_modes[] = {
402
402
        {
403
403
                .ids = 0x00,
404
404
                .mask = PMX_GPIO_PIN1_MASK,
405
405
        },
406
406
};
407
407
 
408
 
struct pmx_dev pmx_plgpio_29 = {
 
408
struct pmx_dev spear3xx_pmx_plgpio_29 = {
409
409
        .name = "plgpio 29",
410
410
        .modes = pmx_plgpio_29_modes,
411
411
        .mode_count = ARRAY_SIZE(pmx_plgpio_29_modes),
412
412
        .enb_on_reset = 1,
413
413
};
414
414
 
415
 
struct pmx_dev_mode pmx_plgpio_30_modes[] = {
 
415
static struct pmx_dev_mode pmx_plgpio_30_modes[] = {
416
416
        {
417
417
                .ids = 0x00,
418
418
                .mask = PMX_GPIO_PIN2_MASK,
419
419
        },
420
420
};
421
421
 
422
 
struct pmx_dev pmx_plgpio_30 = {
 
422
struct pmx_dev spear3xx_pmx_plgpio_30 = {
423
423
        .name = "plgpio 30",
424
424
        .modes = pmx_plgpio_30_modes,
425
425
        .mode_count = ARRAY_SIZE(pmx_plgpio_30_modes),
426
426
        .enb_on_reset = 1,
427
427
};
428
428
 
429
 
struct pmx_dev_mode pmx_plgpio_31_modes[] = {
 
429
static struct pmx_dev_mode pmx_plgpio_31_modes[] = {
430
430
        {
431
431
                .ids = 0x00,
432
432
                .mask = PMX_GPIO_PIN3_MASK,
433
433
        },
434
434
};
435
435
 
436
 
struct pmx_dev pmx_plgpio_31 = {
 
436
struct pmx_dev spear3xx_pmx_plgpio_31 = {
437
437
        .name = "plgpio 31",
438
438
        .modes = pmx_plgpio_31_modes,
439
439
        .mode_count = ARRAY_SIZE(pmx_plgpio_31_modes),
440
440
        .enb_on_reset = 1,
441
441
};
442
442
 
443
 
struct pmx_dev_mode pmx_plgpio_32_modes[] = {
 
443
static struct pmx_dev_mode pmx_plgpio_32_modes[] = {
444
444
        {
445
445
                .ids = 0x00,
446
446
                .mask = PMX_GPIO_PIN4_MASK,
447
447
        },
448
448
};
449
449
 
450
 
struct pmx_dev pmx_plgpio_32 = {
 
450
struct pmx_dev spear3xx_pmx_plgpio_32 = {
451
451
        .name = "plgpio 32",
452
452
        .modes = pmx_plgpio_32_modes,
453
453
        .mode_count = ARRAY_SIZE(pmx_plgpio_32_modes),
454
454
        .enb_on_reset = 1,
455
455
};
456
456
 
457
 
struct pmx_dev_mode pmx_plgpio_33_modes[] = {
 
457
static struct pmx_dev_mode pmx_plgpio_33_modes[] = {
458
458
        {
459
459
                .ids = 0x00,
460
460
                .mask = PMX_GPIO_PIN5_MASK,
461
461
        },
462
462
};
463
463
 
464
 
struct pmx_dev pmx_plgpio_33 = {
 
464
struct pmx_dev spear3xx_pmx_plgpio_33 = {
465
465
        .name = "plgpio 33",
466
466
        .modes = pmx_plgpio_33_modes,
467
467
        .mode_count = ARRAY_SIZE(pmx_plgpio_33_modes),
468
468
        .enb_on_reset = 1,
469
469
};
470
470
 
471
 
struct pmx_dev_mode pmx_plgpio_34_36_modes[] = {
 
471
static struct pmx_dev_mode pmx_plgpio_34_36_modes[] = {
472
472
        {
473
473
                .ids = 0x00,
474
474
                .mask = PMX_SSP_CS_MASK,
475
475
        },
476
476
};
477
477
 
478
 
struct pmx_dev pmx_plgpio_34_36 = {
 
478
struct pmx_dev spear3xx_pmx_plgpio_34_36 = {
479
479
        .name = "plgpio 34 to 36",
480
480
        .modes = pmx_plgpio_34_36_modes,
481
481
        .mode_count = ARRAY_SIZE(pmx_plgpio_34_36_modes),
482
482
        .enb_on_reset = 1,
483
483
};
484
484
 
485
 
struct pmx_dev_mode pmx_plgpio_37_42_modes[] = {
 
485
static struct pmx_dev_mode pmx_plgpio_37_42_modes[] = {
486
486
        {
487
487
                .ids = 0x00,
488
488
                .mask = PMX_UART0_MODEM_MASK,
489
489
        },
490
490
};
491
491
 
492
 
struct pmx_dev pmx_plgpio_37_42 = {
 
492
struct pmx_dev spear3xx_pmx_plgpio_37_42 = {
493
493
        .name = "plgpio 37 to 42",
494
494
        .modes = pmx_plgpio_37_42_modes,
495
495
        .mode_count = ARRAY_SIZE(pmx_plgpio_37_42_modes),
496
496
        .enb_on_reset = 1,
497
497
};
498
498
 
499
 
struct pmx_dev_mode pmx_plgpio_43_44_47_48_modes[] = {
 
499
static struct pmx_dev_mode pmx_plgpio_43_44_47_48_modes[] = {
500
500
        {
501
501
                .ids = 0x00,
502
502
                .mask = PMX_TIMER_1_2_MASK,
503
503
        },
504
504
};
505
505
 
506
 
struct pmx_dev pmx_plgpio_43_44_47_48 = {
 
506
struct pmx_dev spear3xx_pmx_plgpio_43_44_47_48 = {
507
507
        .name = "plgpio 43, 44, 47 and 48",
508
508
        .modes = pmx_plgpio_43_44_47_48_modes,
509
509
        .mode_count = ARRAY_SIZE(pmx_plgpio_43_44_47_48_modes),
510
510
        .enb_on_reset = 1,
511
511
};
512
512
 
513
 
struct pmx_dev_mode pmx_plgpio_45_46_49_50_modes[] = {
 
513
static struct pmx_dev_mode pmx_plgpio_45_46_49_50_modes[] = {
514
514
        {
515
515
                .ids = 0x00,
516
516
                .mask = PMX_TIMER_3_4_MASK,
517
517
        },
518
518
};
519
519
 
520
 
struct pmx_dev pmx_plgpio_45_46_49_50 = {
 
520
struct pmx_dev spear3xx_pmx_plgpio_45_46_49_50 = {
521
521
        .name = "plgpio 45, 46, 49 and 50",
522
522
        .modes = pmx_plgpio_45_46_49_50_modes,
523
523
        .mode_count = ARRAY_SIZE(pmx_plgpio_45_46_49_50_modes),