Commit | Line | Data |
---|---|---|
8459c159 DO |
1 | /* |
2 | * Hardware specific definitions for Sharp SL-C6000x series of PDAs | |
3 | * | |
4 | * Copyright (c) 2005 Dirk Opfer | |
5 | * | |
6 | * Based on Sharp's 2.4 kernel patches | |
7 | * | |
8 | * This program is free software; you can redistribute it and/or modify | |
9 | * it under the terms of the GNU General Public License version 2 as | |
10 | * published by the Free Software Foundation. | |
11 | * | |
12 | */ | |
13 | #ifndef _ASM_ARCH_TOSA_H_ | |
14 | #define _ASM_ARCH_TOSA_H_ 1 | |
15 | ||
9705e746 LW |
16 | #include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ |
17 | ||
8459c159 DO |
18 | /* TOSA Chip selects */ |
19 | #define TOSA_LCDC_PHYS PXA_CS4_PHYS | |
20 | /* Internel Scoop */ | |
21 | #define TOSA_CF_PHYS (PXA_CS2_PHYS + 0x00800000) | |
22 | /* Jacket Scoop */ | |
23 | #define TOSA_SCOOP_PHYS (PXA_CS5_PHYS + 0x00800000) | |
24 | ||
6ac6b817 | 25 | #define TOSA_NR_IRQS (IRQ_BOARD_START + TC6393XB_NR_IRQS) |
8459c159 DO |
26 | /* |
27 | * SCOOP2 internal GPIOs | |
28 | */ | |
1a8d5fab | 29 | #define TOSA_SCOOP_GPIO_BASE PXA_NR_BUILTIN_GPIO |
8459c159 | 30 | #define TOSA_SCOOP_PXA_VCORE1 SCOOP_GPCR_PA11 |
bf0116e5 | 31 | #define TOSA_GPIO_TC6393XB_REST_IN (TOSA_SCOOP_GPIO_BASE + 1) |
d4e7d09f DB |
32 | #define TOSA_GPIO_IR_POWERDWN (TOSA_SCOOP_GPIO_BASE + 2) |
33 | #define TOSA_GPIO_SD_WP (TOSA_SCOOP_GPIO_BASE + 3) | |
34 | #define TOSA_GPIO_PWR_ON (TOSA_SCOOP_GPIO_BASE + 4) | |
8459c159 | 35 | #define TOSA_SCOOP_AUD_PWR_ON SCOOP_GPCR_PA16 |
16b32fd0 DB |
36 | #define TOSA_GPIO_BT_RESET (TOSA_SCOOP_GPIO_BASE + 6) |
37 | #define TOSA_GPIO_BT_PWR_EN (TOSA_SCOOP_GPIO_BASE + 7) | |
8459c159 DO |
38 | #define TOSA_SCOOP_AC_IN_OL SCOOP_GPCR_PA19 |
39 | ||
40 | /* GPIO Direction 1 : output mode / 0:input mode */ | |
bf0116e5 | 41 | #define TOSA_SCOOP_IO_DIR (TOSA_SCOOP_PXA_VCORE1 | \ |
16b32fd0 | 42 | TOSA_SCOOP_AUD_PWR_ON) |
8459c159 DO |
43 | |
44 | /* | |
45 | * SCOOP2 jacket GPIOs | |
46 | */ | |
1a8d5fab | 47 | #define TOSA_SCOOP_JC_GPIO_BASE (PXA_NR_BUILTIN_GPIO + 12) |
c546106c | 48 | #define TOSA_GPIO_BT_LED (TOSA_SCOOP_JC_GPIO_BASE + 0) |
311c736c DB |
49 | #define TOSA_GPIO_NOTE_LED (TOSA_SCOOP_JC_GPIO_BASE + 1) |
50 | #define TOSA_GPIO_CHRG_ERR_LED (TOSA_SCOOP_JC_GPIO_BASE + 2) | |
d4e7d09f | 51 | #define TOSA_GPIO_USB_PULLUP (TOSA_SCOOP_JC_GPIO_BASE + 3) |
bf0116e5 DB |
52 | #define TOSA_GPIO_TC6393XB_SUSPEND (TOSA_SCOOP_JC_GPIO_BASE + 4) |
53 | #define TOSA_GPIO_TC6393XB_L3V_ON (TOSA_SCOOP_JC_GPIO_BASE + 5) | |
8459c159 | 54 | #define TOSA_SCOOP_JC_WLAN_DETECT SCOOP_GPCR_PA17 |
c546106c | 55 | #define TOSA_GPIO_WLAN_LED (TOSA_SCOOP_JC_GPIO_BASE + 7) |
8459c159 DO |
56 | #define TOSA_SCOOP_JC_CARD_LIMIT_SEL SCOOP_GPCR_PA19 |
57 | ||
58 | /* GPIO Direction 1 : output mode / 0:input mode */ | |
bf0116e5 DB |
59 | #define TOSA_SCOOP_JC_IO_DIR (TOSA_SCOOP_JC_CARD_LIMIT_SEL) |
60 | ||
61 | /* | |
62 | * TC6393XB GPIOs | |
63 | */ | |
1a8d5fab | 64 | #define TOSA_TC6393XB_GPIO_BASE (PXA_NR_BUILTIN_GPIO + 2 * 12) |
bf0116e5 DB |
65 | |
66 | #define TOSA_GPIO_TG_ON (TOSA_TC6393XB_GPIO_BASE + 0) | |
67 | #define TOSA_GPIO_L_MUTE (TOSA_TC6393XB_GPIO_BASE + 1) | |
68 | #define TOSA_GPIO_BL_C20MA (TOSA_TC6393XB_GPIO_BASE + 3) | |
69 | #define TOSA_GPIO_CARD_VCC_ON (TOSA_TC6393XB_GPIO_BASE + 4) | |
70 | #define TOSA_GPIO_CHARGE_OFF (TOSA_TC6393XB_GPIO_BASE + 6) | |
71 | #define TOSA_GPIO_CHARGE_OFF_JC (TOSA_TC6393XB_GPIO_BASE + 7) | |
72 | #define TOSA_GPIO_BAT0_V_ON (TOSA_TC6393XB_GPIO_BASE + 9) | |
73 | #define TOSA_GPIO_BAT1_V_ON (TOSA_TC6393XB_GPIO_BASE + 10) | |
74 | #define TOSA_GPIO_BU_CHRG_ON (TOSA_TC6393XB_GPIO_BASE + 11) | |
75 | #define TOSA_GPIO_BAT_SW_ON (TOSA_TC6393XB_GPIO_BASE + 12) | |
76 | #define TOSA_GPIO_BAT0_TH_ON (TOSA_TC6393XB_GPIO_BASE + 14) | |
77 | #define TOSA_GPIO_BAT1_TH_ON (TOSA_TC6393XB_GPIO_BASE + 15) | |
8459c159 DO |
78 | |
79 | /* | |
80 | * Timing Generator | |
81 | */ | |
82 | #define TG_PNLCTL 0x00 | |
83 | #define TG_TPOSCTL 0x01 | |
84 | #define TG_DUTYCTL 0x02 | |
85 | #define TG_GPOSR 0x03 | |
86 | #define TG_GPODR1 0x04 | |
87 | #define TG_GPODR2 0x05 | |
88 | #define TG_PINICTL 0x06 | |
89 | #define TG_HPOSCTL 0x07 | |
90 | ||
8459c159 DO |
91 | /* |
92 | * PXA GPIOs | |
93 | */ | |
94 | #define TOSA_GPIO_POWERON (0) | |
95 | #define TOSA_GPIO_RESET (1) | |
96 | #define TOSA_GPIO_AC_IN (2) | |
97 | #define TOSA_GPIO_RECORD_BTN (3) | |
98 | #define TOSA_GPIO_SYNC (4) /* Cradle SYNC Button */ | |
99 | #define TOSA_GPIO_USB_IN (5) | |
100 | #define TOSA_GPIO_JACKET_DETECT (7) | |
101 | #define TOSA_GPIO_nSD_DETECT (9) | |
102 | #define TOSA_GPIO_nSD_INT (10) | |
bf0116e5 | 103 | #define TOSA_GPIO_TC6393XB_CLK (11) |
8459c159 DO |
104 | #define TOSA_GPIO_BAT1_CRG (12) |
105 | #define TOSA_GPIO_CF_CD (13) | |
106 | #define TOSA_GPIO_BAT0_CRG (14) | |
bf0116e5 | 107 | #define TOSA_GPIO_TC6393XB_INT (15) |
8459c159 | 108 | #define TOSA_GPIO_BAT0_LOW (17) |
bf0116e5 | 109 | #define TOSA_GPIO_TC6393XB_RDY (18) |
8459c159 DO |
110 | #define TOSA_GPIO_ON_RESET (19) |
111 | #define TOSA_GPIO_EAR_IN (20) | |
112 | #define TOSA_GPIO_CF_IRQ (21) /* CF slot0 Ready */ | |
113 | #define TOSA_GPIO_ON_KEY (22) | |
114 | #define TOSA_GPIO_VGA_LINE (27) | |
115 | #define TOSA_GPIO_TP_INT (32) /* Touch Panel pen down interrupt */ | |
116 | #define TOSA_GPIO_JC_CF_IRQ (36) /* CF slot1 Ready */ | |
117 | #define TOSA_GPIO_BAT_LOCKED (38) /* Battery locked */ | |
b032fccc | 118 | #define TOSA_GPIO_IRDA_TX (47) |
8459c159 DO |
119 | #define TOSA_GPIO_TG_SPI_SCLK (81) |
120 | #define TOSA_GPIO_TG_SPI_CS (82) | |
121 | #define TOSA_GPIO_TG_SPI_MOSI (83) | |
122 | #define TOSA_GPIO_BAT1_LOW (84) | |
123 | ||
124 | #define TOSA_GPIO_HP_IN GPIO_EAR_IN | |
125 | ||
126 | #define TOSA_GPIO_MAIN_BAT_LOW GPIO_BAT0_LOW | |
127 | ||
128 | #define TOSA_KEY_STROBE_NUM (11) | |
129 | #define TOSA_KEY_SENSE_NUM (7) | |
130 | ||
131 | #define TOSA_GPIO_HIGH_STROBE_BIT (0xfc000000) | |
132 | #define TOSA_GPIO_LOW_STROBE_BIT (0x0000001f) | |
133 | #define TOSA_GPIO_ALL_SENSE_BIT (0x00000fe0) | |
134 | #define TOSA_GPIO_ALL_SENSE_RSHIFT (5) | |
135 | #define TOSA_GPIO_STROBE_BIT(a) GPIO_bit(58+(a)) | |
136 | #define TOSA_GPIO_SENSE_BIT(a) GPIO_bit(69+(a)) | |
137 | #define TOSA_GAFR_HIGH_STROBE_BIT (0xfff00000) | |
138 | #define TOSA_GAFR_LOW_STROBE_BIT (0x000003ff) | |
139 | #define TOSA_GAFR_ALL_SENSE_BIT (0x00fffc00) | |
140 | #define TOSA_GPIO_KEY_SENSE(a) (69+(a)) | |
141 | #define TOSA_GPIO_KEY_STROBE(a) (58+(a)) | |
142 | ||
143 | /* | |
144 | * Interrupts | |
145 | */ | |
6384fdad HZ |
146 | #define TOSA_IRQ_GPIO_WAKEUP PXA_GPIO_TO_IRQ(TOSA_GPIO_WAKEUP) |
147 | #define TOSA_IRQ_GPIO_AC_IN PXA_GPIO_TO_IRQ(TOSA_GPIO_AC_IN) | |
148 | #define TOSA_IRQ_GPIO_RECORD_BTN PXA_GPIO_TO_IRQ(TOSA_GPIO_RECORD_BTN) | |
149 | #define TOSA_IRQ_GPIO_SYNC PXA_GPIO_TO_IRQ(TOSA_GPIO_SYNC) | |
150 | #define TOSA_IRQ_GPIO_USB_IN PXA_GPIO_TO_IRQ(TOSA_GPIO_USB_IN) | |
151 | #define TOSA_IRQ_GPIO_JACKET_DETECT PXA_GPIO_TO_IRQ(TOSA_GPIO_JACKET_DETECT) | |
152 | #define TOSA_IRQ_GPIO_nSD_INT PXA_GPIO_TO_IRQ(TOSA_GPIO_nSD_INT) | |
153 | #define TOSA_IRQ_GPIO_nSD_DETECT PXA_GPIO_TO_IRQ(TOSA_GPIO_nSD_DETECT) | |
154 | #define TOSA_IRQ_GPIO_BAT1_CRG PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT1_CRG) | |
155 | #define TOSA_IRQ_GPIO_CF_CD PXA_GPIO_TO_IRQ(TOSA_GPIO_CF_CD) | |
156 | #define TOSA_IRQ_GPIO_BAT0_CRG PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT0_CRG) | |
157 | #define TOSA_IRQ_GPIO_TC6393XB_INT PXA_GPIO_TO_IRQ(TOSA_GPIO_TC6393XB_INT) | |
158 | #define TOSA_IRQ_GPIO_BAT0_LOW PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT0_LOW) | |
159 | #define TOSA_IRQ_GPIO_EAR_IN PXA_GPIO_TO_IRQ(TOSA_GPIO_EAR_IN) | |
160 | #define TOSA_IRQ_GPIO_CF_IRQ PXA_GPIO_TO_IRQ(TOSA_GPIO_CF_IRQ) | |
161 | #define TOSA_IRQ_GPIO_ON_KEY PXA_GPIO_TO_IRQ(TOSA_GPIO_ON_KEY) | |
162 | #define TOSA_IRQ_GPIO_VGA_LINE PXA_GPIO_TO_IRQ(TOSA_GPIO_VGA_LINE) | |
163 | #define TOSA_IRQ_GPIO_TP_INT PXA_GPIO_TO_IRQ(TOSA_GPIO_TP_INT) | |
164 | #define TOSA_IRQ_GPIO_JC_CF_IRQ PXA_GPIO_TO_IRQ(TOSA_GPIO_JC_CF_IRQ) | |
165 | #define TOSA_IRQ_GPIO_BAT_LOCKED PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT_LOCKED) | |
166 | #define TOSA_IRQ_GPIO_BAT1_LOW PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT1_LOW) | |
167 | #define TOSA_IRQ_GPIO_KEY_SENSE(a) PXA_GPIO_TO_IRQ(69+(a)) | |
8459c159 | 168 | |
6384fdad | 169 | #define TOSA_IRQ_GPIO_MAIN_BAT_LOW PXA_GPIO_TO_IRQ(TOSA_GPIO_MAIN_BAT_LOW) |
8459c159 | 170 | |
93e9012f DB |
171 | #define TOSA_KEY_SYNC KEY_102ND /* ??? */ |
172 | ||
cb8f3c7d | 173 | #ifndef CONFIG_TOSA_USE_EXT_KEYCODES |
93e9012f DB |
174 | #define TOSA_KEY_RECORD KEY_YEN |
175 | #define TOSA_KEY_ADDRESSBOOK KEY_KATAKANA | |
176 | #define TOSA_KEY_CANCEL KEY_ESC | |
177 | #define TOSA_KEY_CENTER KEY_HIRAGANA | |
178 | #define TOSA_KEY_OK KEY_HENKAN | |
179 | #define TOSA_KEY_CALENDAR KEY_KATAKANAHIRAGANA | |
180 | #define TOSA_KEY_HOMEPAGE KEY_HANGEUL | |
181 | #define TOSA_KEY_LIGHT KEY_MUHENKAN | |
182 | #define TOSA_KEY_MENU KEY_HANJA | |
183 | #define TOSA_KEY_FN KEY_RIGHTALT | |
184 | #define TOSA_KEY_MAIL KEY_ZENKAKUHANKAKU | |
185 | #else | |
186 | #define TOSA_KEY_RECORD KEY_RECORD | |
187 | #define TOSA_KEY_ADDRESSBOOK KEY_ADDRESSBOOK | |
188 | #define TOSA_KEY_CANCEL KEY_CANCEL | |
189 | #define TOSA_KEY_CENTER KEY_SELECT /* ??? */ | |
190 | #define TOSA_KEY_OK KEY_OK | |
191 | #define TOSA_KEY_CALENDAR KEY_CALENDAR | |
192 | #define TOSA_KEY_HOMEPAGE KEY_HOMEPAGE | |
193 | #define TOSA_KEY_LIGHT KEY_KBDILLUMTOGGLE | |
194 | #define TOSA_KEY_MENU KEY_MENU | |
195 | #define TOSA_KEY_FN KEY_FN | |
196 | #define TOSA_KEY_MAIL KEY_MAIL | |
197 | #endif | |
198 | ||
fbd1b17b DB |
199 | struct spi_device; |
200 | extern int tosa_bl_enable(struct spi_device *spi, int enable); | |
201 | ||
8459c159 | 202 | #endif /* _ASM_ARCH_TOSA_H_ */ |