xref: /OK3568_Linux_fs/kernel/arch/arm/mach-pxa/include/mach/magician.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * GPIO and IRQ definitions for HTC Magician PDA phones
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (c) 2007 Philipp Zabel
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef _MAGICIAN_H_
9*4882a593Smuzhiyun #define _MAGICIAN_H_
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #include <linux/gpio.h>
12*4882a593Smuzhiyun #include <mach/irqs.h>
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun /*
15*4882a593Smuzhiyun  * PXA GPIOs
16*4882a593Smuzhiyun  */
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun #define GPIO0_MAGICIAN_KEY_POWER		0
19*4882a593Smuzhiyun #define GPIO9_MAGICIAN_UNKNOWN			9
20*4882a593Smuzhiyun #define GPIO10_MAGICIAN_GSM_IRQ			10
21*4882a593Smuzhiyun #define GPIO11_MAGICIAN_GSM_OUT1		11
22*4882a593Smuzhiyun #define GPIO13_MAGICIAN_CPLD_IRQ		13
23*4882a593Smuzhiyun #define GPIO14_MAGICIAN_TSC2046_CS		14
24*4882a593Smuzhiyun #define GPIO18_MAGICIAN_UNKNOWN			18
25*4882a593Smuzhiyun #define GPIO22_MAGICIAN_VIBRA_EN		22
26*4882a593Smuzhiyun #define GPIO26_MAGICIAN_GSM_POWER		26
27*4882a593Smuzhiyun #define GPIO27_MAGICIAN_USBC_PUEN		27
28*4882a593Smuzhiyun #define GPIO30_MAGICIAN_BQ24022_nCHARGE_EN	30
29*4882a593Smuzhiyun #define GPIO37_MAGICIAN_KEY_HANGUP		37
30*4882a593Smuzhiyun #define GPIO38_MAGICIAN_KEY_CONTACTS		38
31*4882a593Smuzhiyun #define GPIO40_MAGICIAN_GSM_OUT2		40
32*4882a593Smuzhiyun #define GPIO48_MAGICIAN_UNKNOWN			48
33*4882a593Smuzhiyun #define GPIO56_MAGICIAN_UNKNOWN			56
34*4882a593Smuzhiyun #define GPIO57_MAGICIAN_CAM_RESET		57
35*4882a593Smuzhiyun #define GPIO75_MAGICIAN_SAMSUNG_POWER		75
36*4882a593Smuzhiyun #define GPIO83_MAGICIAN_nIR_EN			83
37*4882a593Smuzhiyun #define GPIO86_MAGICIAN_GSM_RESET		86
38*4882a593Smuzhiyun #define GPIO87_MAGICIAN_GSM_SELECT		87
39*4882a593Smuzhiyun #define GPIO90_MAGICIAN_KEY_CALENDAR		90
40*4882a593Smuzhiyun #define GPIO91_MAGICIAN_KEY_CAMERA		91
41*4882a593Smuzhiyun #define GPIO93_MAGICIAN_KEY_UP			93
42*4882a593Smuzhiyun #define GPIO94_MAGICIAN_KEY_DOWN		94
43*4882a593Smuzhiyun #define GPIO95_MAGICIAN_KEY_LEFT		95
44*4882a593Smuzhiyun #define GPIO96_MAGICIAN_KEY_RIGHT		96
45*4882a593Smuzhiyun #define GPIO97_MAGICIAN_KEY_ENTER		97
46*4882a593Smuzhiyun #define GPIO98_MAGICIAN_KEY_RECORD		98
47*4882a593Smuzhiyun #define GPIO99_MAGICIAN_HEADPHONE_IN		99
48*4882a593Smuzhiyun #define GPIO100_MAGICIAN_KEY_VOL_UP		100
49*4882a593Smuzhiyun #define GPIO101_MAGICIAN_KEY_VOL_DOWN 		101
50*4882a593Smuzhiyun #define GPIO102_MAGICIAN_KEY_PHONE		102
51*4882a593Smuzhiyun #define GPIO103_MAGICIAN_LED_KP			103
52*4882a593Smuzhiyun #define GPIO104_MAGICIAN_LCD_VOFF_EN		104
53*4882a593Smuzhiyun #define GPIO105_MAGICIAN_LCD_VON_EN		105
54*4882a593Smuzhiyun #define GPIO106_MAGICIAN_LCD_DCDC_NRESET	106
55*4882a593Smuzhiyun #define GPIO107_MAGICIAN_DS1WM_IRQ		107
56*4882a593Smuzhiyun #define GPIO108_MAGICIAN_GSM_READY		108
57*4882a593Smuzhiyun #define GPIO114_MAGICIAN_UNKNOWN		114
58*4882a593Smuzhiyun #define GPIO115_MAGICIAN_nPEN_IRQ		115
59*4882a593Smuzhiyun #define GPIO116_MAGICIAN_nCAM_EN		116
60*4882a593Smuzhiyun #define GPIO119_MAGICIAN_UNKNOWN		119
61*4882a593Smuzhiyun #define GPIO120_MAGICIAN_UNKNOWN		120
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun /*
64*4882a593Smuzhiyun  * CPLD IRQs
65*4882a593Smuzhiyun  */
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun #define IRQ_MAGICIAN_SD		(IRQ_BOARD_START + 0)
68*4882a593Smuzhiyun #define IRQ_MAGICIAN_EP		(IRQ_BOARD_START + 1)
69*4882a593Smuzhiyun #define IRQ_MAGICIAN_BT		(IRQ_BOARD_START + 2)
70*4882a593Smuzhiyun #define IRQ_MAGICIAN_VBUS	(IRQ_BOARD_START + 3)
71*4882a593Smuzhiyun 
72*4882a593Smuzhiyun #define MAGICIAN_NR_IRQS	(IRQ_BOARD_START + 8)
73*4882a593Smuzhiyun 
74*4882a593Smuzhiyun /*
75*4882a593Smuzhiyun  * CPLD EGPIOs
76*4882a593Smuzhiyun  */
77*4882a593Smuzhiyun 
78*4882a593Smuzhiyun #define MAGICIAN_EGPIO_BASE		PXA_NR_BUILTIN_GPIO
79*4882a593Smuzhiyun #define MAGICIAN_EGPIO(reg,bit) \
80*4882a593Smuzhiyun 	(MAGICIAN_EGPIO_BASE + 8*reg + bit)
81*4882a593Smuzhiyun 
82*4882a593Smuzhiyun /* output */
83*4882a593Smuzhiyun 
84*4882a593Smuzhiyun #define EGPIO_MAGICIAN_TOPPOLY_POWER	MAGICIAN_EGPIO(0, 2)
85*4882a593Smuzhiyun #define EGPIO_MAGICIAN_LED_POWER	MAGICIAN_EGPIO(0, 5)
86*4882a593Smuzhiyun #define EGPIO_MAGICIAN_GSM_RESET	MAGICIAN_EGPIO(0, 6)
87*4882a593Smuzhiyun #define EGPIO_MAGICIAN_LCD_POWER	MAGICIAN_EGPIO(0, 7)
88*4882a593Smuzhiyun #define EGPIO_MAGICIAN_SPK_POWER	MAGICIAN_EGPIO(1, 0)
89*4882a593Smuzhiyun #define EGPIO_MAGICIAN_EP_POWER		MAGICIAN_EGPIO(1, 1)
90*4882a593Smuzhiyun #define EGPIO_MAGICIAN_IN_SEL0		MAGICIAN_EGPIO(1, 2)
91*4882a593Smuzhiyun #define EGPIO_MAGICIAN_IN_SEL1		MAGICIAN_EGPIO(1, 3)
92*4882a593Smuzhiyun #define EGPIO_MAGICIAN_MIC_POWER	MAGICIAN_EGPIO(1, 4)
93*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CODEC_RESET	MAGICIAN_EGPIO(1, 5)
94*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CODEC_POWER	MAGICIAN_EGPIO(1, 6)
95*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BL_POWER		MAGICIAN_EGPIO(1, 7)
96*4882a593Smuzhiyun #define EGPIO_MAGICIAN_SD_POWER		MAGICIAN_EGPIO(2, 0)
97*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CARKIT_MIC	MAGICIAN_EGPIO(2, 1)
98*4882a593Smuzhiyun #define EGPIO_MAGICIAN_IR_RX_SHUTDOWN	MAGICIAN_EGPIO(2, 2)
99*4882a593Smuzhiyun #define EGPIO_MAGICIAN_FLASH_VPP	MAGICIAN_EGPIO(2, 3)
100*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BL_POWER2	MAGICIAN_EGPIO(2, 4)
101*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BQ24022_ISET2	MAGICIAN_EGPIO(2, 5)
102*4882a593Smuzhiyun #define EGPIO_MAGICIAN_NICD_CHARGE	MAGICIAN_EGPIO(2, 6)
103*4882a593Smuzhiyun #define EGPIO_MAGICIAN_GSM_POWER	MAGICIAN_EGPIO(2, 7)
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun /* input */
106*4882a593Smuzhiyun 
107*4882a593Smuzhiyun /* USB or AC charger type */
108*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CABLE_TYPE	MAGICIAN_EGPIO(4, 0)
109*4882a593Smuzhiyun /*
110*4882a593Smuzhiyun  * Vbus is detected
111*4882a593Smuzhiyun  * FIXME behaves like (6,3), may differ for host/device
112*4882a593Smuzhiyun  */
113*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CABLE_VBUS	MAGICIAN_EGPIO(4, 1)
114*4882a593Smuzhiyun 
115*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BOARD_ID0	MAGICIAN_EGPIO(5, 0)
116*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BOARD_ID1	MAGICIAN_EGPIO(5, 1)
117*4882a593Smuzhiyun #define EGPIO_MAGICIAN_BOARD_ID2	MAGICIAN_EGPIO(5, 2)
118*4882a593Smuzhiyun #define EGPIO_MAGICIAN_LCD_SELECT	MAGICIAN_EGPIO(5, 3)
119*4882a593Smuzhiyun #define EGPIO_MAGICIAN_nSD_READONLY	MAGICIAN_EGPIO(5, 4)
120*4882a593Smuzhiyun 
121*4882a593Smuzhiyun #define EGPIO_MAGICIAN_EP_INSERT	MAGICIAN_EGPIO(6, 1)
122*4882a593Smuzhiyun /* FIXME behaves like (4,1), may differ for host/device */
123*4882a593Smuzhiyun #define EGPIO_MAGICIAN_CABLE_INSERTED	MAGICIAN_EGPIO(6, 3)
124*4882a593Smuzhiyun 
125*4882a593Smuzhiyun #endif /* _MAGICIAN_H_ */
126