summaryrefslogtreecommitdiffstats
path: root/include/asm-arm/arch-pxa/tosa.h
blob: c05e4faf85a6f47b8641d2f8dffd067797156f69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
/*
 * Hardware specific definitions for Sharp SL-C6000x series of PDAs
 *
 * Copyright (c) 2005 Dirk Opfer
 *
 * Based on Sharp's 2.4 kernel patches
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */
#ifndef _ASM_ARCH_TOSA_H_
#define _ASM_ARCH_TOSA_H_ 1

/*  TOSA Chip selects  */
#define TOSA_LCDC_PHYS		PXA_CS4_PHYS
/* Internel Scoop */
#define TOSA_CF_PHYS		(PXA_CS2_PHYS + 0x00800000)
/* Jacket Scoop */
#define TOSA_SCOOP_PHYS  	(PXA_CS5_PHYS + 0x00800000)

/*
 * SCOOP2 internal GPIOs
 */
#define TOSA_SCOOP_PXA_VCORE1		SCOOP_GPCR_PA11
#define TOSA_SCOOP_TC6393_REST_IN	SCOOP_GPCR_PA12
#define TOSA_SCOOP_IR_POWERDWN		SCOOP_GPCR_PA13
#define TOSA_SCOOP_SD_WP		SCOOP_GPCR_PA14
#define TOSA_SCOOP_PWR_ON		SCOOP_GPCR_PA15
#define TOSA_SCOOP_AUD_PWR_ON		SCOOP_GPCR_PA16
#define TOSA_SCOOP_BT_RESET		SCOOP_GPCR_PA17
#define TOSA_SCOOP_BT_PWR_EN		SCOOP_GPCR_PA18
#define TOSA_SCOOP_AC_IN_OL		SCOOP_GPCR_PA19

/* GPIO Direction   1 : output mode / 0:input mode */
#define TOSA_SCOOP_IO_DIR     ( TOSA_SCOOP_PXA_VCORE1 | TOSA_SCOOP_TC6393_REST_IN | \
		TOSA_SCOOP_IR_POWERDWN | TOSA_SCOOP_PWR_ON | TOSA_SCOOP_AUD_PWR_ON |\
		TOSA_SCOOP_BT_RESET | TOSA_SCOOP_BT_PWR_EN )
/* GPIO out put level when init   1: Hi */
#define TOSA_SCOOP_IO_OUT     ( TOSA_SCOOP_TC6393_REST_IN )

/*
 * SCOOP2 jacket GPIOs
 */
#define TOSA_SCOOP_JC_BT_LED		SCOOP_GPCR_PA11
#define TOSA_SCOOP_JC_NOTE_LED		SCOOP_GPCR_PA12
#define TOSA_SCOOP_JC_CHRG_ERR_LED	SCOOP_GPCR_PA13
#define TOSA_SCOOP_JC_USB_PULLUP	SCOOP_GPCR_PA14
#define TOSA_SCOOP_JC_TC6393_SUSPEND	SCOOP_GPCR_PA15
#define TOSA_SCOOP_JC_TC3693_L3V_ON	SCOOP_GPCR_PA16
#define TOSA_SCOOP_JC_WLAN_DETECT	SCOOP_GPCR_PA17
#define TOSA_SCOOP_JC_WLAN_LED		SCOOP_GPCR_PA18
#define TOSA_SCOOP_JC_CARD_LIMIT_SEL	SCOOP_GPCR_PA19

/* GPIO Direction   1 : output mode / 0:input mode */
#define TOSA_SCOOP_JC_IO_DIR ( TOSA_SCOOP_JC_BT_LED | TOSA_SCOOP_JC_NOTE_LED | \
		TOSA_SCOOP_JC_CHRG_ERR_LED | TOSA_SCOOP_JC_USB_PULLUP | \
		TOSA_SCOOP_JC_TC6393_SUSPEND | TOSA_SCOOP_JC_TC3693_L3V_ON | \
		TOSA_SCOOP_JC_WLAN_LED | TOSA_SCOOP_JC_CARD_LIMIT_SEL )
/* GPIO out put level when init   1: Hi */
#define TOSA_SCOOP_JC_IO_OUT ( 0 )

/*
 * Timing Generator
 */
#define TG_PNLCTL 			0x00
#define TG_TPOSCTL 			0x01
#define TG_DUTYCTL 			0x02
#define TG_GPOSR 			0x03
#define TG_GPODR1 			0x04
#define TG_GPODR2 			0x05
#define TG_PINICTL 			0x06
#define TG_HPOSCTL 			0x07

/*
 * LED
 */
#define TOSA_SCOOP_LED_BLUE   		TOSA_SCOOP_GPCR_PA11
#define TOSA_SCOOP_LED_GREEN  		TOSA_SCOOP_GPCR_PA12
#define TOSA_SCOOP_LED_ORANGE		TOSA_SCOOP_GPCR_PA13
#define TOSA_SCOOP_LED_WLAN		TOSA_SCOOP_GPCR_PA18


/*
 * PXA GPIOs
 */
#define TOSA_GPIO_POWERON		(0)
#define TOSA_GPIO_RESET			(1)
#define TOSA_GPIO_AC_IN			(2)
#define TOSA_GPIO_RECORD_BTN		(3)
#define TOSA_GPIO_SYNC			(4)	/* Cradle SYNC Button */
#define TOSA_GPIO_USB_IN		(5)
#define TOSA_GPIO_JACKET_DETECT		(7)
#define TOSA_GPIO_nSD_DETECT		(9)
#define TOSA_GPIO_nSD_INT		(10)
#define TOSA_GPIO_TC6393_CLK		(11)
#define TOSA_GPIO_BAT1_CRG		(12)
#define TOSA_GPIO_CF_CD			(13)
#define TOSA_GPIO_BAT0_CRG		(14)
#define TOSA_GPIO_TC6393_INT		(15)
#define TOSA_GPIO_BAT0_LOW		(17)
#define TOSA_GPIO_TC6393_RDY		(18)
#define TOSA_GPIO_ON_RESET		(19)
#define TOSA_GPIO_EAR_IN		(20)
#define TOSA_GPIO_CF_IRQ		(21)	/* CF slot0 Ready */
#define TOSA_GPIO_ON_KEY		(22)
#define TOSA_GPIO_VGA_LINE		(27)
#define TOSA_GPIO_TP_INT		(32)	/* Touch Panel pen down interrupt */
#define TOSA_GPIO_JC_CF_IRQ		(36)	/* CF slot1 Ready */
#define TOSA_GPIO_BAT_LOCKED		(38)	/* Battery locked */
#define TOSA_GPIO_TG_SPI_SCLK		(81)
#define TOSA_GPIO_TG_SPI_CS		(82)
#define TOSA_GPIO_TG_SPI_MOSI		(83)
#define TOSA_GPIO_BAT1_LOW		(84)

#define TOSA_GPIO_HP_IN			GPIO_EAR_IN

#define TOSA_GPIO_MAIN_BAT_LOW		GPIO_BAT0_LOW

#define TOSA_KEY_STROBE_NUM		(11)
#define TOSA_KEY_SENSE_NUM		(7)

#define TOSA_GPIO_HIGH_STROBE_BIT	(0xfc000000)
#define TOSA_GPIO_LOW_STROBE_BIT	(0x0000001f)
#define TOSA_GPIO_ALL_SENSE_BIT		(0x00000fe0)
#define TOSA_GPIO_ALL_SENSE_RSHIFT	(5)
#define TOSA_GPIO_STROBE_BIT(a)		GPIO_bit(58+(a))
#define TOSA_GPIO_SENSE_BIT(a)		GPIO_bit(69+(a))
#define TOSA_GAFR_HIGH_STROBE_BIT	(0xfff00000)
#define TOSA_GAFR_LOW_STROBE_BIT	(0x000003ff)
#define TOSA_GAFR_ALL_SENSE_BIT		(0x00fffc00)
#define TOSA_GPIO_KEY_SENSE(a) 		(69+(a))
#define TOSA_GPIO_KEY_STROBE(a)		(58+(a))

/*
 * Interrupts
 */
#define TOSA_IRQ_GPIO_WAKEUP        	IRQ_GPIO(TOSA_GPIO_WAKEUP)
#define TOSA_IRQ_GPIO_AC_IN         	IRQ_GPIO(TOSA_GPIO_AC_IN)
#define TOSA_IRQ_GPIO_RECORD_BTN    	IRQ_GPIO(TOSA_GPIO_RECORD_BTN)
#define TOSA_IRQ_GPIO_SYNC          	IRQ_GPIO(TOSA_GPIO_SYNC)
#define TOSA_IRQ_GPIO_USB_IN        	IRQ_GPIO(TOSA_GPIO_USB_IN)
#define TOSA_IRQ_GPIO_JACKET_DETECT 	IRQ_GPIO(TOSA_GPIO_JACKET_DETECT)
#define TOSA_IRQ_GPIO_nSD_INT       	IRQ_GPIO(TOSA_GPIO_nSD_INT)
#define TOSA_IRQ_GPIO_nSD_DETECT    	IRQ_GPIO(TOSA_GPIO_nSD_DETECT)
#define TOSA_IRQ_GPIO_BAT1_CRG      	IRQ_GPIO(TOSA_GPIO_BAT1_CRG)
#define TOSA_IRQ_GPIO_CF_CD         	IRQ_GPIO(TOSA_GPIO_CF_CD)
#define TOSA_IRQ_GPIO_BAT0_CRG      	IRQ_GPIO(TOSA_GPIO_BAT0_CRG)
#define TOSA_IRQ_GPIO_TC6393_INT    	IRQ_GPIO(TOSA_GPIO_TC6393_INT)
#define TOSA_IRQ_GPIO_BAT0_LOW      	IRQ_GPIO(TOSA_GPIO_BAT0_LOW)
#define TOSA_IRQ_GPIO_EAR_IN        	IRQ_GPIO(TOSA_GPIO_EAR_IN)
#define TOSA_IRQ_GPIO_CF_IRQ        	IRQ_GPIO(TOSA_GPIO_CF_IRQ)
#define TOSA_IRQ_GPIO_ON_KEY        	IRQ_GPIO(TOSA_GPIO_ON_KEY)
#define TOSA_IRQ_GPIO_VGA_LINE      	IRQ_GPIO(TOSA_GPIO_VGA_LINE)
#define TOSA_IRQ_GPIO_TP_INT        	IRQ_GPIO(TOSA_GPIO_TP_INT)
#define TOSA_IRQ_GPIO_JC_CF_IRQ     	IRQ_GPIO(TOSA_GPIO_JC_CF_IRQ)
#define TOSA_IRQ_GPIO_BAT_LOCKED    	IRQ_GPIO(TOSA_GPIO_BAT_LOCKED)
#define TOSA_IRQ_GPIO_BAT1_LOW      	IRQ_GPIO(TOSA_GPIO_BAT1_LOW)
#define TOSA_IRQ_GPIO_KEY_SENSE(a)  	IRQ_GPIO(69+(a))

#define TOSA_IRQ_GPIO_MAIN_BAT_LOW 	IRQ_GPIO(TOSA_GPIO_MAIN_BAT_LOW)

extern struct platform_device tosascoop_jc_device;
extern struct platform_device tosascoop_device;

#define TOSA_KEY_SYNC		KEY_102ND /* ??? */


#ifndef CONFIG_KEYBOARD_TOSA_USE_EXT_KEYCODES
#define TOSA_KEY_RECORD		KEY_YEN
#define TOSA_KEY_ADDRESSBOOK	KEY_KATAKANA
#define TOSA_KEY_CANCEL		KEY_ESC
#define TOSA_KEY_CENTER		KEY_HIRAGANA
#define TOSA_KEY_OK		KEY_HENKAN
#define TOSA_KEY_CALENDAR	KEY_KATAKANAHIRAGANA
#define TOSA_KEY_HOMEPAGE	KEY_HANGEUL
#define TOSA_KEY_LIGHT		KEY_MUHENKAN
#define TOSA_KEY_MENU		KEY_HANJA
#define TOSA_KEY_FN		KEY_RIGHTALT
#define TOSA_KEY_MAIL		KEY_ZENKAKUHANKAKU
#else
#define TOSA_KEY_RECORD		KEY_RECORD
#define TOSA_KEY_ADDRESSBOOK	KEY_ADDRESSBOOK
#define TOSA_KEY_CANCEL		KEY_CANCEL
#define TOSA_KEY_CENTER		KEY_SELECT /* ??? */
#define TOSA_KEY_OK		KEY_OK
#define TOSA_KEY_CALENDAR	KEY_CALENDAR
#define TOSA_KEY_HOMEPAGE	KEY_HOMEPAGE
#define TOSA_KEY_LIGHT		KEY_KBDILLUMTOGGLE
#define TOSA_KEY_MENU		KEY_MENU
#define TOSA_KEY_FN		KEY_FN
#define TOSA_KEY_MAIL		KEY_MAIL
#endif

#endif /* _ASM_ARCH_TOSA_H_ */