1#ifndef _GTA02_H
2#define _GTA02_H
3
4#include <mach/regs-gpio.h>
5
6/* Different hardware revisions, passed in ATAG_REVISION by u-boot */
7#define GTA02v1_SYSTEM_REV	0x00000310
8#define GTA02v2_SYSTEM_REV	0x00000320
9#define GTA02v3_SYSTEM_REV	0x00000330
10#define GTA02v4_SYSTEM_REV	0x00000340
11#define GTA02v5_SYSTEM_REV	0x00000350
12/* since A7 is basically same as A6, we use A6 PCB ID */
13#define GTA02v6_SYSTEM_REV	0x00000360
14
15#define GTA02_GPIO_n3DL_GSM	S3C2410_GPA(13)	/* v1 + v2 + v3 only */
16
17#define GTA02_GPIO_PWR_LED1	S3C2410_GPB(0)
18#define GTA02_GPIO_PWR_LED2	S3C2410_GPB(1)
19#define GTA02_GPIO_AUX_LED	S3C2410_GPB(2)
20#define GTA02_GPIO_VIBRATOR_ON	S3C2410_GPB(3)
21#define GTA02_GPIO_MODEM_RST	S3C2410_GPB(5)
22#define GTA02_GPIO_BT_EN	S3C2410_GPB(6)
23#define GTA02_GPIO_MODEM_ON	S3C2410_GPB(7)
24#define GTA02_GPIO_EXTINT8	S3C2410_GPB(8)
25#define GTA02_GPIO_USB_PULLUP	S3C2410_GPB(9)
26
27#define GTA02_GPIO_PIO5		S3C2410_GPC(5)	/* v3 + v4 only */
28
29#define GTA02v3_GPIO_nG1_CS	S3C2410_GPD(12)	/* v3 + v4 only */
30#define GTA02v3_GPIO_nG2_CS	S3C2410_GPD(13)	/* v3 + v4 only */
31#define GTA02v5_GPIO_HDQ	S3C2410_GPD(14)   /* v5 + */
32
33#define GTA02_GPIO_nG1_INT	S3C2410_GPF(0)
34#define GTA02_GPIO_IO1		S3C2410_GPF(1)
35#define GTA02_GPIO_PIO_2	S3C2410_GPF(2)	/* v2 + v3 + v4 only */
36#define GTA02_GPIO_JACK_INSERT	S3C2410_GPF(4)
37#define GTA02_GPIO_WLAN_GPIO1	S3C2410_GPF(5)	/* v2 + v3 + v4 only */
38#define GTA02_GPIO_AUX_KEY	S3C2410_GPF(6)
39#define GTA02_GPIO_HOLD_KEY	S3C2410_GPF(7)
40
41#define GTA02_GPIO_3D_IRQ	S3C2410_GPG(4)
42#define GTA02v2_GPIO_nG2_INT	S3C2410_GPG(8)	/* v2 + v3 + v4 only */
43#define GTA02v3_GPIO_nUSB_OC	S3C2410_GPG(9)	/* v3 + v4 only */
44#define GTA02v3_GPIO_nUSB_FLT	S3C2410_GPG(10)	/* v3 + v4 only */
45#define GTA02v3_GPIO_nGSM_OC	S3C2410_GPG(11)	/* v3 + v4 only */
46
47#define GTA02_GPIO_AMP_SHUT	S3C2410_GPJ(1)	/* v2 + v3 + v4 only */
48#define GTA02v1_GPIO_WLAN_GPIO10	S3C2410_GPJ(2)
49#define GTA02_GPIO_HP_IN	S3C2410_GPJ(2)	/* v2 + v3 + v4 only */
50#define GTA02_GPIO_INT0		S3C2410_GPJ(3)	/* v2 + v3 + v4 only */
51#define GTA02_GPIO_nGSM_EN	S3C2410_GPJ(4)
52#define GTA02_GPIO_3D_RESET	S3C2410_GPJ(5)
53#define GTA02_GPIO_nDL_GSM	S3C2410_GPJ(6)	/* v4 + v5 only */
54#define GTA02_GPIO_WLAN_GPIO0	S3C2410_GPJ(7)
55#define GTA02v1_GPIO_BAT_ID	S3C2410_GPJ(8)
56#define GTA02_GPIO_KEEPACT	S3C2410_GPJ(8)
57#define GTA02v1_GPIO_HP_IN	S3C2410_GPJ(10)
58#define GTA02_CHIP_PWD		S3C2410_GPJ(11)	/* v2 + v3 + v4 only */
59#define GTA02_GPIO_nWLAN_RESET	S3C2410_GPJ(12)	/* v2 + v3 + v4 only */
60
61#define GTA02_IRQ_GSENSOR_1	IRQ_EINT0
62#define GTA02_IRQ_MODEM		IRQ_EINT1
63#define GTA02_IRQ_PIO_2		IRQ_EINT2	/* v2 + v3 + v4 only */
64#define GTA02_IRQ_nJACK_INSERT	IRQ_EINT4
65#define GTA02_IRQ_WLAN_GPIO1	IRQ_EINT5
66#define GTA02_IRQ_AUX		IRQ_EINT6
67#define GTA02_IRQ_nHOLD		IRQ_EINT7
68#define GTA02_IRQ_PCF50633	IRQ_EINT9
69#define GTA02_IRQ_3D		IRQ_EINT12
70#define GTA02_IRQ_GSENSOR_2	IRQ_EINT16	/* v2 + v3 + v4 only */
71#define GTA02v3_IRQ_nUSB_OC	IRQ_EINT17	/* v3 + v4 only */
72#define GTA02v3_IRQ_nUSB_FLT	IRQ_EINT18	/* v3 + v4 only */
73#define GTA02v3_IRQ_nGSM_OC	IRQ_EINT19	/* v3 + v4 only */
74
75/* returns 00 000 on GTA02 A5 and earlier, A6 returns 01 001 */
76#define GTA02_PCB_ID1_0		S3C2410_GPC(13)
77#define GTA02_PCB_ID1_1		S3C2410_GPC(15)
78#define GTA02_PCB_ID1_2		S3C2410_GPD(0)
79#define GTA02_PCB_ID2_0		S3C2410_GPD(3)
80#define GTA02_PCB_ID2_1		S3C2410_GPD(4)
81
82int gta02_get_pcb_revision(void);
83
84#endif /* _GTA02_H */
85