1
2
3
4
5
6
7
8
9 #include "pcm027.h"
10 #include <mach/irqs.h>
11
12
13
14
15
16
17
18 #define PCM990_CTRL_INT_IRQ_GPIO 9
19 #define PCM990_CTRL_INT_IRQ PXA_GPIO_TO_IRQ(PCM990_CTRL_INT_IRQ_GPIO)
20 #define PCM990_CTRL_INT_IRQ_EDGE IRQ_TYPE_EDGE_RISING
21 #define PCM990_CTRL_PHYS PXA_CS1_PHYS
22 #define PCM990_CTRL_SIZE (1*1024*1024)
23
24 #define PCM990_CTRL_PWR_IRQ_GPIO 14
25 #define PCM990_CTRL_PWR_IRQ PXA_GPIO_TO_IRQ(PCM990_CTRL_PWR_IRQ_GPIO)
26 #define PCM990_CTRL_PWR_IRQ_EDGE IRQ_TYPE_EDGE_RISING
27
28
29 #define PCM990_CTRL_REG0 0x0000
30 #define PCM990_CTRL_SYSRES 0x0001
31 #define PCM990_CTRL_RESOUT 0x0002
32 #define PCM990_CTRL_RESGPIO 0x0004
33
34 #define PCM990_CTRL_REG1 0x0002
35 #define PCM990_CTRL_5VOFF 0x0001
36 #define PCM990_CTRL_CANPWR 0x0004
37 #define PCM990_CTRL_PM_5V 0x0008
38
39 #define PCM990_CTRL_REG2 0x0004
40 #define PCM990_CTRL_LEDPWR 0x0001
41 #define PCM990_CTRL_LEDBAS 0x0002
42 #define PCM990_CTRL_LEDUSR 0x0004
43
44 #define PCM990_CTRL_REG3 0x0006
45 #define PCM990_CTRL_LCDPWR 0x0001
46 #define PCM990_CTRL_LCDON 0x0002
47 #define PCM990_CTRL_LCDPOS1 0x0004
48 #define PCM990_CTRL_LCDPOS2 0x0008
49
50 #define PCM990_CTRL_REG4 0x0008
51 #define PCM990_CTRL_MMC1PWR 0x0001
52
53 #define PCM990_CTRL_REG5 0x000A
54 #define PCM990_CTRL_MMC2PWR 0x0001
55 #define PCM990_CTRL_MMC2LED 0x0002
56 #define PCM990_CTRL_MMC2DE 0x0004
57 #define PCM990_CTRL_MMC2WP 0x0008
58
59 #define PCM990_CTRL_INTSETCLR 0x000C
60 #define PCM990_CTRL_INTC0 0x0001
61 #define PCM990_CTRL_INTC1 0x0002
62 #define PCM990_CTRL_INTC2 0x0004
63 #define PCM990_CTRL_INTC3 0x0008
64
65 #define PCM990_CTRL_INTMSKENA 0x000E
66 #define PCM990_CTRL_ENAINT0 0x0001
67 #define PCM990_CTRL_ENAINT1 0x0002
68 #define PCM990_CTRL_ENAINT2 0x0004
69 #define PCM990_CTRL_ENAINT3 0x0008
70
71 #define PCM990_CTRL_REG8 0x0014
72 #define PCM990_CTRL_FFSD 0x0001
73 #define PCM990_CTRL_BTSD 0x0002
74 #define PCM990_CTRL_FFRI 0x0004
75 #define PCM990_CTRL_BTRX 0x0008
76
77 #define PCM990_CTRL_REG9 0x0010
78 #define PCM990_CTRL_FLWP 0x0001
79 #define PCM990_CTRL_FLDIS 0x0002
80 #define PCM990_CTRL_AC97ENA 0x0004
81
82 #define PCM990_CTRL_REG10 0x0012
83 #define PCM990_CTRL_GPSPWR 0x0004
84 #define PCM990_CTRL_GPSENA 0x0008
85
86 #define PCM990_CTRL_REG11 0x0014
87 #define PCM990_CTRL_ACENA 0x0001
88 #define PCM990_CTRL_ACSEL 0x0002
89 #define PCM990_CTRL_ACPRES 0x0004
90 #define PCM990_CTRL_ACALARM 0x0008
91
92
93
94
95 #define PCM990_IDE_IRQ_GPIO 13
96 #define PCM990_IDE_IRQ PXA_GPIO_TO_IRQ(PCM990_IDE_IRQ_GPIO)
97 #define PCM990_IDE_IRQ_EDGE IRQ_TYPE_EDGE_RISING
98 #define PCM990_IDE_PLD_PHYS 0x20000000
99 #define PCM990_IDE_PLD_BASE 0xee000000
100 #define PCM990_IDE_PLD_SIZE (1*1024*1024)
101
102
103 #define PCM990_IDE_PLD_REG0 0x1000
104 #define PCM990_IDE_PM5V 0x0004
105 #define PCM990_IDE_STBY 0x0008
106
107 #define PCM990_IDE_PLD_REG1 0x1002
108 #define PCM990_IDE_IDEMODE 0x0001
109 #define PCM990_IDE_DMAENA 0x0004
110 #define PCM990_IDE_DMA1_0 0x0008
111
112 #define PCM990_IDE_PLD_REG2 0x1004
113 #define PCM990_IDE_RESENA 0x0001
114 #define PCM990_IDE_RES 0x0002
115 #define PCM990_IDE_RDY 0x0008
116
117 #define PCM990_IDE_PLD_REG3 0x1006
118 #define PCM990_IDE_IDEOE 0x0001
119 #define PCM990_IDE_IDEON 0x0002
120 #define PCM990_IDE_IDEIN 0x0004
121
122 #define PCM990_IDE_PLD_REG4 0x1008
123 #define PCM990_IDE_PWRENA 0x0001
124 #define PCM990_IDE_5V 0x0002
125 #define PCM990_IDE_PWG 0x0008
126
127 #define PCM990_IDE_PLD_P2V(x) ((x) - PCM990_IDE_PLD_PHYS + PCM990_IDE_PLD_BASE)
128 #define PCM990_IDE_PLD_V2P(x) ((x) - PCM990_IDE_PLD_BASE + PCM990_IDE_PLD_PHYS)
129
130
131
132
133 #define PCM990_CF_IRQ_GPIO 11
134 #define PCM990_CF_IRQ PXA_GPIO_TO_IRQ(PCM990_CF_IRQ_GPIO)
135 #define PCM990_CF_IRQ_EDGE IRQ_TYPE_EDGE_RISING
136
137 #define PCM990_CF_CD_GPIO 12
138 #define PCM990_CF_CD PXA_GPIO_TO_IRQ(PCM990_CF_CD_GPIO)
139 #define PCM990_CF_CD_EDGE IRQ_TYPE_EDGE_RISING
140
141 #define PCM990_CF_PLD_PHYS 0x30000000
142
143
144 #define PCM990_CF_PLD_REG0 0x1000
145 #define PCM990_CF_REG0_LED 0x0001
146 #define PCM990_CF_REG0_BLK 0x0002
147 #define PCM990_CF_REG0_PM5V 0x0004
148 #define PCM990_CF_REG0_STBY 0x0008
149
150 #define PCM990_CF_PLD_REG1 0x1002
151 #define PCM990_CF_REG1_IDEMODE 0x0001
152 #define PCM990_CF_REG1_CF0 0x0002
153
154 #define PCM990_CF_PLD_REG2 0x1004
155 #define PCM990_CF_REG2_RES 0x0002
156 #define PCM990_CF_REG2_RDYENA 0x0004
157 #define PCM990_CF_REG2_RDY 0x0008
158
159 #define PCM990_CF_PLD_REG3 0x1006
160 #define PCM990_CF_REG3_CFOE 0x0001
161 #define PCM990_CF_REG3_CFON 0x0002
162 #define PCM990_CF_REG3_CFIN 0x0004
163 #define PCM990_CF_REG3_CFCD 0x0008
164
165 #define PCM990_CF_PLD_REG4 0x1008
166 #define PCM990_CF_REG4_PWRENA 0x0001
167 #define PCM990_CF_REG4_5_3V 0x0002
168 #define PCM990_CF_REG4_3B 0x0004
169 #define PCM990_CF_REG4_PWG 0x0008
170
171 #define PCM990_CF_PLD_REG5 0x100A
172 #define PCM990_CF_REG5_BVD1 0x0001
173 #define PCM990_CF_REG5_BVD2 0x0002
174 #define PCM990_CF_REG5_VS1 0x0004
175 #define PCM990_CF_REG5_VS2 0x0008
176
177 #define PCM990_CF_PLD_REG6 0x100C
178 #define PCM990_CF_REG6_CD1 0x0001
179 #define PCM990_CF_REG6_CD2 0x0002
180
181
182
183
184 #define PCM990_AC97_IRQ_GPIO 10
185 #define PCM990_AC97_IRQ PXA_GPIO_TO_IRQ(PCM990_AC97_IRQ_GPIO)
186 #define PCM990_AC97_IRQ_EDGE IRQ_TYPE_EDGE_RISING
187
188
189
190
191 #define PCM990_MMC0_IRQ_GPIO 9
192 #define PCM990_MMC0_IRQ PXA_GPIO_TO_IRQ(PCM990_MMC0_IRQ_GPIO)
193 #define PCM990_MMC0_IRQ_EDGE IRQ_TYPE_EDGE_FALLING
194
195
196
197
198 #define PCM990_USB_OVERCURRENT (88 | GPIO_ALT_FN_1_IN)
199 #define PCM990_USB_PWR_EN (89 | GPIO_ALT_FN_2_OUT)