diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-sa1100/h3600.c | 139 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/include/mach/h3600.h | 23 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/include/mach/h3600_gpio.h | 22 |
3 files changed, 0 insertions, 184 deletions
diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c index 5e6011ce36ee..6792dd14b6e7 100644 --- a/arch/arm/mach-sa1100/h3600.c +++ b/arch/arm/mach-sa1100/h3600.c | |||
@@ -49,9 +49,6 @@ | |||
49 | 49 | ||
50 | #include "generic.h" | 50 | #include "generic.h" |
51 | 51 | ||
52 | void (*assign_h3600_egpio)(enum ipaq_egpio_type x, int level); | ||
53 | EXPORT_SYMBOL(assign_h3600_egpio); | ||
54 | |||
55 | struct gpio_default_state { | 52 | struct gpio_default_state { |
56 | int gpio; | 53 | int gpio; |
57 | int mode; | 54 | int mode; |
@@ -306,72 +303,6 @@ static void __init h3xxx_map_io(void) | |||
306 | 303 | ||
307 | #ifdef CONFIG_SA1100_H3100 | 304 | #ifdef CONFIG_SA1100_H3100 |
308 | 305 | ||
309 | #define H3100_EGPIO (*(volatile unsigned int *)H3600_EGPIO_VIRT) | ||
310 | static unsigned int h3100_egpio = 0; | ||
311 | |||
312 | static void h3100_control_egpio(enum ipaq_egpio_type x, int setp) | ||
313 | { | ||
314 | unsigned int egpio = 0; | ||
315 | long gpio = 0; | ||
316 | unsigned long flags; | ||
317 | |||
318 | switch (x) { | ||
319 | case IPAQ_EGPIO_LCD_POWER: | ||
320 | egpio |= EGPIO_H3600_LCD_ON; | ||
321 | gpio |= GPIO_H3100_LCD_3V_ON; | ||
322 | break; | ||
323 | case IPAQ_EGPIO_LCD_ENABLE: | ||
324 | break; | ||
325 | case IPAQ_EGPIO_CODEC_NRESET: | ||
326 | egpio |= EGPIO_H3600_CODEC_NRESET; | ||
327 | break; | ||
328 | case IPAQ_EGPIO_AUDIO_ON: | ||
329 | gpio |= GPIO_H3100_AUD_PWR_ON | ||
330 | | GPIO_H3100_AUD_ON; | ||
331 | break; | ||
332 | case IPAQ_EGPIO_QMUTE: | ||
333 | gpio |= GPIO_H3100_QMUTE; | ||
334 | break; | ||
335 | case IPAQ_EGPIO_OPT_NVRAM_ON: | ||
336 | egpio |= EGPIO_H3600_OPT_NVRAM_ON; | ||
337 | break; | ||
338 | case IPAQ_EGPIO_OPT_ON: | ||
339 | egpio |= EGPIO_H3600_OPT_ON; | ||
340 | break; | ||
341 | case IPAQ_EGPIO_CARD_RESET: | ||
342 | egpio |= EGPIO_H3600_CARD_RESET; | ||
343 | break; | ||
344 | case IPAQ_EGPIO_OPT_RESET: | ||
345 | egpio |= EGPIO_H3600_OPT_RESET; | ||
346 | break; | ||
347 | case IPAQ_EGPIO_IR_ON: | ||
348 | gpio |= GPIO_H3100_IR_ON; | ||
349 | break; | ||
350 | case IPAQ_EGPIO_IR_FSEL: | ||
351 | gpio |= GPIO_H3100_IR_FSEL; | ||
352 | break; | ||
353 | case IPAQ_EGPIO_RS232_ON: | ||
354 | egpio |= EGPIO_H3600_RS232_ON; | ||
355 | break; | ||
356 | case IPAQ_EGPIO_VPP_ON: | ||
357 | egpio |= EGPIO_H3600_VPP_ON; | ||
358 | break; | ||
359 | } | ||
360 | |||
361 | if (egpio || gpio) { | ||
362 | local_irq_save(flags); | ||
363 | if (setp) { | ||
364 | h3100_egpio |= egpio; | ||
365 | GPSR = gpio; | ||
366 | } else { | ||
367 | h3100_egpio &= ~egpio; | ||
368 | GPCR = gpio; | ||
369 | } | ||
370 | H3100_EGPIO = h3100_egpio; | ||
371 | local_irq_restore(flags); | ||
372 | } | ||
373 | } | ||
374 | |||
375 | #define H3100_DIRECT_EGPIO (GPIO_H3100_BT_ON \ | 306 | #define H3100_DIRECT_EGPIO (GPIO_H3100_BT_ON \ |
376 | | GPIO_H3100_GPIO3 \ | 307 | | GPIO_H3100_GPIO3 \ |
377 | | GPIO_H3100_QMUTE \ | 308 | | GPIO_H3100_QMUTE \ |
@@ -409,9 +340,6 @@ static void __init h3100_map_io(void) | |||
409 | /* Older bootldrs put GPIO2-9 in alternate mode on the | 340 | /* Older bootldrs put GPIO2-9 in alternate mode on the |
410 | assumption that they are used for video */ | 341 | assumption that they are used for video */ |
411 | GAFR &= ~H3100_DIRECT_EGPIO; | 342 | GAFR &= ~H3100_DIRECT_EGPIO; |
412 | |||
413 | H3100_EGPIO = h3100_egpio; | ||
414 | assign_h3600_egpio = h3100_control_egpio; | ||
415 | } | 343 | } |
416 | 344 | ||
417 | /* | 345 | /* |
@@ -465,70 +393,6 @@ MACHINE_END | |||
465 | 393 | ||
466 | #ifdef CONFIG_SA1100_H3600 | 394 | #ifdef CONFIG_SA1100_H3600 |
467 | 395 | ||
468 | #define H3600_EGPIO (*(volatile unsigned int *)H3600_EGPIO_VIRT) | ||
469 | static unsigned int h3600_egpio = EGPIO_H3600_RS232_ON; | ||
470 | |||
471 | static void h3600_control_egpio(enum ipaq_egpio_type x, int setp) | ||
472 | { | ||
473 | unsigned int egpio = 0; | ||
474 | unsigned long flags; | ||
475 | |||
476 | switch (x) { | ||
477 | case IPAQ_EGPIO_LCD_POWER: | ||
478 | egpio |= EGPIO_H3600_LCD_ON | | ||
479 | EGPIO_H3600_LCD_PCI | | ||
480 | EGPIO_H3600_LCD_5V_ON | | ||
481 | EGPIO_H3600_LVDD_ON; | ||
482 | break; | ||
483 | case IPAQ_EGPIO_LCD_ENABLE: | ||
484 | break; | ||
485 | case IPAQ_EGPIO_CODEC_NRESET: | ||
486 | egpio |= EGPIO_H3600_CODEC_NRESET; | ||
487 | break; | ||
488 | case IPAQ_EGPIO_AUDIO_ON: | ||
489 | egpio |= EGPIO_H3600_AUD_AMP_ON | | ||
490 | EGPIO_H3600_AUD_PWR_ON; | ||
491 | break; | ||
492 | case IPAQ_EGPIO_QMUTE: | ||
493 | egpio |= EGPIO_H3600_QMUTE; | ||
494 | break; | ||
495 | case IPAQ_EGPIO_OPT_NVRAM_ON: | ||
496 | egpio |= EGPIO_H3600_OPT_NVRAM_ON; | ||
497 | break; | ||
498 | case IPAQ_EGPIO_OPT_ON: | ||
499 | egpio |= EGPIO_H3600_OPT_ON; | ||
500 | break; | ||
501 | case IPAQ_EGPIO_CARD_RESET: | ||
502 | egpio |= EGPIO_H3600_CARD_RESET; | ||
503 | break; | ||
504 | case IPAQ_EGPIO_OPT_RESET: | ||
505 | egpio |= EGPIO_H3600_OPT_RESET; | ||
506 | break; | ||
507 | case IPAQ_EGPIO_IR_ON: | ||
508 | egpio |= EGPIO_H3600_IR_ON; | ||
509 | break; | ||
510 | case IPAQ_EGPIO_IR_FSEL: | ||
511 | egpio |= EGPIO_H3600_IR_FSEL; | ||
512 | break; | ||
513 | case IPAQ_EGPIO_RS232_ON: | ||
514 | egpio |= EGPIO_H3600_RS232_ON; | ||
515 | break; | ||
516 | case IPAQ_EGPIO_VPP_ON: | ||
517 | egpio |= EGPIO_H3600_VPP_ON; | ||
518 | break; | ||
519 | } | ||
520 | |||
521 | if (egpio) { | ||
522 | local_irq_save(flags); | ||
523 | if (setp) | ||
524 | h3600_egpio |= egpio; | ||
525 | else | ||
526 | h3600_egpio &= ~egpio; | ||
527 | H3600_EGPIO = h3600_egpio; | ||
528 | local_irq_restore(flags); | ||
529 | } | ||
530 | } | ||
531 | |||
532 | /* | 396 | /* |
533 | * helper for sa1100fb | 397 | * helper for sa1100fb |
534 | */ | 398 | */ |
@@ -567,9 +431,6 @@ static void __init h3600_map_io(void) | |||
567 | GPDR = GPIO_H3600_L3_CLOCK | | 431 | GPDR = GPIO_H3600_L3_CLOCK | |
568 | GPIO_H3600_L3_MODE | GPIO_H3600_L3_DATA | | 432 | GPIO_H3600_L3_MODE | GPIO_H3600_L3_DATA | |
569 | GPIO_H3600_CLK_SET1 | GPIO_H3600_CLK_SET0; | 433 | GPIO_H3600_CLK_SET1 | GPIO_H3600_CLK_SET0; |
570 | |||
571 | H3600_EGPIO = h3600_egpio; /* Maintains across sleep? */ | ||
572 | assign_h3600_egpio = h3600_control_egpio; | ||
573 | } | 434 | } |
574 | 435 | ||
575 | /* | 436 | /* |
diff --git a/arch/arm/mach-sa1100/include/mach/h3600.h b/arch/arm/mach-sa1100/include/mach/h3600.h index 69f138c55407..19d7fe1b5874 100644 --- a/arch/arm/mach-sa1100/include/mach/h3600.h +++ b/arch/arm/mach-sa1100/include/mach/h3600.h | |||
@@ -66,27 +66,4 @@ | |||
66 | #define IRQ_GPIO_H3600_OPT_IRQ IRQ_GPIO24 | 66 | #define IRQ_GPIO_H3600_OPT_IRQ IRQ_GPIO24 |
67 | #define IRQ_GPIO_H3600_COM_CTS IRQ_GPIO25 | 67 | #define IRQ_GPIO_H3600_COM_CTS IRQ_GPIO25 |
68 | 68 | ||
69 | |||
70 | #ifndef __ASSEMBLY__ | ||
71 | |||
72 | enum ipaq_egpio_type { | ||
73 | IPAQ_EGPIO_LCD_POWER, /* Power to the LCD panel */ | ||
74 | IPAQ_EGPIO_CODEC_NRESET, /* Clear to reset the audio codec (remember to return high) */ | ||
75 | IPAQ_EGPIO_AUDIO_ON, /* Audio power */ | ||
76 | IPAQ_EGPIO_QMUTE, /* Audio muting */ | ||
77 | IPAQ_EGPIO_OPT_NVRAM_ON, /* Non-volatile RAM on extension sleeves (SPI interface) */ | ||
78 | IPAQ_EGPIO_OPT_ON, /* Power to extension sleeves */ | ||
79 | IPAQ_EGPIO_CARD_RESET, /* Reset PCMCIA cards on extension sleeve (???) */ | ||
80 | IPAQ_EGPIO_OPT_RESET, /* Reset option pack (???) */ | ||
81 | IPAQ_EGPIO_IR_ON, /* IR sensor/emitter power */ | ||
82 | IPAQ_EGPIO_IR_FSEL, /* IR speed selection 1->fast, 0->slow */ | ||
83 | IPAQ_EGPIO_RS232_ON, /* Maxim RS232 chip power */ | ||
84 | IPAQ_EGPIO_VPP_ON, /* Turn on power to flash programming */ | ||
85 | IPAQ_EGPIO_LCD_ENABLE, /* Enable/disable LCD controller */ | ||
86 | }; | ||
87 | |||
88 | extern void (*assign_h3600_egpio)(enum ipaq_egpio_type x, int level); | ||
89 | |||
90 | #endif /* ASSEMBLY */ | ||
91 | |||
92 | #endif /* _INCLUDE_H3600_H_ */ | 69 | #endif /* _INCLUDE_H3600_H_ */ |
diff --git a/arch/arm/mach-sa1100/include/mach/h3600_gpio.h b/arch/arm/mach-sa1100/include/mach/h3600_gpio.h index ce80f1ae0c1a..6cfbc649f189 100644 --- a/arch/arm/mach-sa1100/include/mach/h3600_gpio.h +++ b/arch/arm/mach-sa1100/include/mach/h3600_gpio.h | |||
@@ -76,28 +76,6 @@ | |||
76 | #define IRQ_GPIO_H3600_ACTION_BUTTON IRQ_GPIO18 | 76 | #define IRQ_GPIO_H3600_ACTION_BUTTON IRQ_GPIO18 |
77 | #define IRQ_GPIO_H3600_OPT_DET IRQ_GPIO27 | 77 | #define IRQ_GPIO_H3600_OPT_DET IRQ_GPIO27 |
78 | 78 | ||
79 | /* H3100 / 3600 EGPIO pins */ | ||
80 | #define EGPIO_H3600_VPP_ON (1 << 0) | ||
81 | #define EGPIO_H3600_CARD_RESET (1 << 1) /* reset the attached pcmcia/compactflash card. active high. */ | ||
82 | #define EGPIO_H3600_OPT_RESET (1 << 2) /* reset the attached option pack. active high. */ | ||
83 | #define EGPIO_H3600_CODEC_NRESET (1 << 3) /* reset the onboard UDA1341. active low. */ | ||
84 | #define EGPIO_H3600_OPT_NVRAM_ON (1 << 4) /* apply power to optionpack nvram, active high. */ | ||
85 | #define EGPIO_H3600_OPT_ON (1 << 5) /* full power to option pack. active high. */ | ||
86 | #define EGPIO_H3600_LCD_ON (1 << 6) /* enable 3.3V to LCD. active high. */ | ||
87 | #define EGPIO_H3600_RS232_ON (1 << 7) /* UART3 transceiver force on. Active high. */ | ||
88 | |||
89 | /* H3600 only EGPIO pins */ | ||
90 | #define EGPIO_H3600_LCD_PCI (1 << 8) /* LCD control IC enable. active high. */ | ||
91 | #define EGPIO_H3600_IR_ON (1 << 9) /* apply power to IR module. active high. */ | ||
92 | #define EGPIO_H3600_AUD_AMP_ON (1 << 10) /* apply power to audio power amp. active high. */ | ||
93 | #define EGPIO_H3600_AUD_PWR_ON (1 << 11) /* apply power to reset of audio circuit. active high. */ | ||
94 | #define EGPIO_H3600_QMUTE (1 << 12) /* mute control for onboard UDA1341. active high. */ | ||
95 | #define EGPIO_H3600_IR_FSEL (1 << 13) /* IR speed select: 1->fast, 0->slow */ | ||
96 | #define EGPIO_H3600_LCD_5V_ON (1 << 14) /* enable 5V to LCD. active high. */ | ||
97 | #define EGPIO_H3600_LVDD_ON (1 << 15) /* enable 9V and -6.5V to LCD. */ | ||
98 | |||
99 | |||
100 | /* gpiolib versions of EGPIOs */ | ||
101 | 79 | ||
102 | /* H3100 / 3600 EGPIO pins */ | 80 | /* H3100 / 3600 EGPIO pins */ |
103 | #define H3XXX_EGPIO_BASE (GPIO_MAX + 1) | 81 | #define H3XXX_EGPIO_BASE (GPIO_MAX + 1) |