aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-h720x/include/mach/h7202-regs.h
blob: 17c12eb349957d37bbba2330a839c2bd4b2121e3 (plain) (blame)
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
/*
 * arch/arm/mach-h720x/include/mach/h7202-regs.h
 *
 * Copyright (C) 2000 Jungjun Kim, Hynix Semiconductor Inc.
 *           (C) 2003 Thomas Gleixner <tglx@linutronix.de>
 *           (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
 *           (C) 2004 Sascha Hauer    <s.hauer@pengutronix.de>
 *
 * This file contains the hardware definitions of the h720x processors
 *
 * 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.
 *
 * Do not add implementations specific defines here. This files contains
 * only defines of the onchip peripherals. Add those defines to boards.h,
 * which is included by this file.
 */

#define SERIAL2_OFS		0x2d000
#define SERIAL2_BASE		(IO_PHYS + SERIAL2_OFS)
#define SERIAL2_VIRT 		(IO_VIRT + SERIAL2_OFS)
#define SERIAL3_OFS		0x2e000
#define SERIAL3_BASE		(IO_PHYS + SERIAL3_OFS)
#define SERIAL3_VIRT 		(IO_VIRT + SERIAL3_OFS)

/* Matrix Keyboard Controller */
#define KBD_VIRT		(IO_VIRT + 0x22000)
#define KBD_KBCR		0x00
#define KBD_KBSC		0x04
#define KBD_KBTR		0x08
#define KBD_KBVR0		0x0C
#define KBD_KBVR1		0x10
#define KBD_KBSR		0x18

#define KBD_KBCR_SCANENABLE	(1 << 7)
#define KBD_KBCR_NPOWERDOWN	(1 << 2)
#define KBD_KBCR_CLKSEL_MASK	(3)
#define KBD_KBCR_CLKSEL_PCLK2	0x0
#define KBD_KBCR_CLKSEL_PCLK128	0x1
#define KBD_KBCR_CLKSEL_PCLK256	0x2
#define KBD_KBCR_CLKSEL_PCLK512	0x3

#define KBD_KBSR_INTR		(1 << 0)
#define KBD_KBSR_WAKEUP		(1 << 1)

/* USB device controller */

#define USBD_BASE		(IO_VIRT + 0x12000)
#define USBD_LENGTH		0x3C

#define USBD_GCTRL		0x00
#define USBD_EPCTRL		0x04
#define USBD_INTMASK		0x08
#define USBD_INTSTAT		0x0C
#define USBD_PWR		0x10
#define USBD_DMARXTX		0x14
#define USBD_DEVID		0x18
#define USBD_DEVCLASS		0x1C
#define USBD_INTCLASS		0x20
#define USBD_SETUP0		0x24
#define USBD_SETUP1		0x28
#define USBD_ENDP0RD		0x2C
#define USBD_ENDP0WT		0x30
#define USBD_ENDP1RD		0x34
#define USBD_ENDP2WT		0x38

/* PS/2 port */
#define PSDATA 0x00
#define PSSTAT 0x04
#define PSSTAT_TXEMPTY (1<<0)
#define PSSTAT_TXBUSY (1<<1)
#define PSSTAT_RXFULL (1<<2)
#define PSSTAT_RXBUSY (1<<3)
#define PSSTAT_CLKIN (1<<4)
#define PSSTAT_DATAIN (1<<5)
#define PSSTAT_PARITY (1<<6)

#define PSCONF 0x08
#define PSCONF_ENABLE (1<<0)
#define PSCONF_TXINTEN (1<<2)
#define PSCONF_RXINTEN (1<<3)
#define PSCONF_FORCECLKLOW (1<<4)
#define PSCONF_FORCEDATLOW (1<<5)
#define PSCONF_LCE (1<<6)

#define PSINTR 0x0C
#define PSINTR_TXINT (1<<0)
#define PSINTR_RXINT (1<<1)
#define PSINTR_PAR (1<<2)
#define PSINTR_RXTO (1<<3)
#define PSINTR_TXTO (1<<4)

#define PSTDLO 0x10 /* clk low before start transmission */
#define PSTPRI 0x14 /* PRI clock */
#define PSTXMT 0x18 /* maximum transmission time */
#define PSTREC 0x20 /* maximum receive time */
#define PSPWDN 0x3c

/* ADC converter */
#define ADC_BASE 		(IO_VIRT + 0x29000)
#define ADC_CR 			0x00
#define ADC_TSCTRL 		0x04
#define ADC_BT_CTRL 		0x08
#define ADC_MC_CTRL		0x0C
#define ADC_STATUS		0x10

/* ADC control register bits */
#define ADC_CR_PW_CTRL 		0x80
#define ADC_CR_DIRECTC		0x04
#define ADC_CR_CONTIME_NO	0x00
#define ADC_CR_CONTIME_2	0x04
#define ADC_CR_CONTIME_4	0x08
#define ADC_CR_CONTIME_ADE	0x0c
#define ADC_CR_LONGCALTIME	0x01

/* ADC touch panel register bits */
#define ADC_TSCTRL_ENABLE 	0x80
#define ADC_TSCTRL_INTR   	0x40
#define	ADC_TSCTRL_SWBYPSS	0x20
#define ADC_TSCTRL_SWINVT	0x10
#define ADC_TSCTRL_S400   	0x03
#define ADC_TSCTRL_S200   	0x02
#define ADC_TSCTRL_S100   	0x01
#define ADC_TSCTRL_S50    	0x00

/* ADC Interrupt Status Register bits */
#define ADC_STATUS_TS_BIT	0x80
#define ADC_STATUS_MBT_BIT	0x40
#define ADC_STATUS_BBT_BIT	0x20
#define ADC_STATUS_MIC_BIT	0x10

/* Touch data registers */
#define ADC_TS_X0X1  		0x30
#define ADC_TS_X2X3		0x34
#define ADC_TS_Y0Y1		0x38
#define ADC_TS_Y2Y3  		0x3c
#define ADC_TS_X4X5  		0x40
#define ADC_TS_X6X7  		0x44
#define ADC_TS_Y4Y5		0x48
#define ADC_TS_Y6Y7		0x50

/* battery data */
#define ADC_MB_DATA		0x54
#define ADC_BB_DATA		0x58

/* Sound data register */
#define ADC_SD_DAT0 		0x60
#define ADC_SD_DAT1		0x64
#define ADC_SD_DAT2		0x68
#define ADC_SD_DAT3		0x6c
#define ADC_SD_DAT4		0x70
#define ADC_SD_DAT5		0x74
#define ADC_SD_DAT6		0x78
#define ADC_SD_DAT7		0x7c