h3600.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /*
  2. *
  3. * Definitions for H3600 Handheld Computer
  4. *
  5. * Copyright 2000 Compaq Computer Corporation.
  6. *
  7. * Use consistent with the GNU GPL is permitted,
  8. * provided that this copyright notice is
  9. * preserved in its entirety in all copies and derived works.
  10. *
  11. * COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED,
  12. * AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS
  13. * FITNESS FOR ANY PARTICULAR PURPOSE.
  14. *
  15. * Author: Jamey Hicks.
  16. *
  17. * History:
  18. *
  19. * 2001-10-?? Andrew Christian Added support for iPAQ H3800
  20. *
  21. */
  22. #ifndef _INCLUDE_H3600_H_
  23. #define _INCLUDE_H3600_H_
  24. typedef int __bitwise pm_request_t;
  25. #define PM_SUSPEND ((__force pm_request_t) 1) /* enter D1-D3 */
  26. #define PM_RESUME ((__force pm_request_t) 2) /* enter D0 */
  27. /* generalized support for H3xxx series Compaq Pocket PC's */
  28. #define machine_is_h3xxx() (machine_is_h3100() || machine_is_h3600())
  29. /* Physical memory regions corresponding to chip selects */
  30. #define H3600_EGPIO_PHYS (SA1100_CS5_PHYS + 0x01000000)
  31. #define H3600_BANK_2_PHYS SA1100_CS2_PHYS
  32. #define H3600_BANK_4_PHYS SA1100_CS4_PHYS
  33. /* Virtual memory regions corresponding to chip selects 2 & 4 (used on sleeves) */
  34. #define H3600_EGPIO_VIRT 0xf0000000
  35. #define H3600_BANK_2_VIRT 0xf1000000
  36. #define H3600_BANK_4_VIRT 0xf3800000
  37. /*
  38. Machine-independent GPIO definitions
  39. --- these are common across all current iPAQ platforms
  40. */
  41. #define GPIO_H3600_NPOWER_BUTTON GPIO_GPIO (0) /* Also known as the "off button" */
  42. #define GPIO_H3600_PCMCIA_CD1 GPIO_GPIO (10)
  43. #define GPIO_H3600_PCMCIA_IRQ1 GPIO_GPIO (11)
  44. /* UDA1341 L3 Interface */
  45. #define GPIO_H3600_L3_DATA GPIO_GPIO (14)
  46. #define GPIO_H3600_L3_MODE GPIO_GPIO (15)
  47. #define GPIO_H3600_L3_CLOCK GPIO_GPIO (16)
  48. #define GPIO_H3600_PCMCIA_CD0 GPIO_GPIO (17)
  49. #define GPIO_H3600_SYS_CLK GPIO_GPIO (19)
  50. #define GPIO_H3600_PCMCIA_IRQ0 GPIO_GPIO (21)
  51. #define GPIO_H3600_COM_DCD GPIO_GPIO (23)
  52. #define GPIO_H3600_OPT_IRQ GPIO_GPIO (24)
  53. #define GPIO_H3600_COM_CTS GPIO_GPIO (25)
  54. #define GPIO_H3600_COM_RTS GPIO_GPIO (26)
  55. #define IRQ_GPIO_H3600_NPOWER_BUTTON IRQ_GPIO0
  56. #define IRQ_GPIO_H3600_PCMCIA_CD1 IRQ_GPIO10
  57. #define IRQ_GPIO_H3600_PCMCIA_IRQ1 IRQ_GPIO11
  58. #define IRQ_GPIO_H3600_PCMCIA_CD0 IRQ_GPIO17
  59. #define IRQ_GPIO_H3600_PCMCIA_IRQ0 IRQ_GPIO21
  60. #define IRQ_GPIO_H3600_COM_DCD IRQ_GPIO23
  61. #define IRQ_GPIO_H3600_OPT_IRQ IRQ_GPIO24
  62. #define IRQ_GPIO_H3600_COM_CTS IRQ_GPIO25
  63. #ifndef __ASSEMBLY__
  64. enum ipaq_egpio_type {
  65. IPAQ_EGPIO_LCD_POWER, /* Power to the LCD panel */
  66. IPAQ_EGPIO_CODEC_NRESET, /* Clear to reset the audio codec (remember to return high) */
  67. IPAQ_EGPIO_AUDIO_ON, /* Audio power */
  68. IPAQ_EGPIO_QMUTE, /* Audio muting */
  69. IPAQ_EGPIO_OPT_NVRAM_ON, /* Non-volatile RAM on extension sleeves (SPI interface) */
  70. IPAQ_EGPIO_OPT_ON, /* Power to extension sleeves */
  71. IPAQ_EGPIO_CARD_RESET, /* Reset PCMCIA cards on extension sleeve (???) */
  72. IPAQ_EGPIO_OPT_RESET, /* Reset option pack (???) */
  73. IPAQ_EGPIO_IR_ON, /* IR sensor/emitter power */
  74. IPAQ_EGPIO_IR_FSEL, /* IR speed selection 1->fast, 0->slow */
  75. IPAQ_EGPIO_RS232_ON, /* Maxim RS232 chip power */
  76. IPAQ_EGPIO_VPP_ON, /* Turn on power to flash programming */
  77. IPAQ_EGPIO_LCD_ENABLE, /* Enable/disable LCD controller */
  78. };
  79. extern void (*assign_h3600_egpio)(enum ipaq_egpio_type x, int level);
  80. #endif /* ASSEMBLY */
  81. #endif /* _INCLUDE_H3600_H_ */