1 /*
2  * pxaregs - tool to display and modify PXA250's registers at runtime
3  *
4  * (c) Copyright 2002 by M&N Logistik-Lösungen Online GmbH
5  * set under the GPLv2
6  *
7  * $Id: pxaregs.c,v 1.14 2003/11/12 13:14:43 schurig Exp $
8  *
9  * Please send patches to h.schurig, working at mn-logistik.de
10  * - added fix from Bernhard Nemec
11  * - i2c registers from Stefan Eletzhofer
12 */
13 
14 #include <stdio.h>
15 #include <unistd.h>
16 #include <stdlib.h>
17 #include <string.h>
18 #include <sys/mman.h>
19 #include <sys/types.h>
20 #include <sys/stat.h>
21 #include <fcntl.h>
22 #include <ctype.h>
23 
24 #include <linux/i2c.h>
25 #include <linux/i2c-dev.h>
26 
27 
28 // fd for /dev/mem
29 static int fd = -1;
30 
31 typedef unsigned int u32;
32 
33 struct reg_info {
34    char *name;
35    u32 addr;
36    int shift;
37    u32 mask;
38    char type;
39    char *desc;
40 };
41 
42 
43 static struct reg_info regs[] = {
44 { "IBMR",      0x40301680,  0, 0xffffffff, 'x', "I2C Bus Monitor Register" },
45 { "IBMR_SDAS", 0x40301680,  0, 0x00000001, 'x', "SDA Status" },
46 { "IBMR_SCLS", 0x40301680,  1, 0x00000001, 'x', "SDA Status" },
47 
48 { "IDBR",      0x40301688,  0, 0xffffffff, 'x', "I2C Data Buffer Register" },
49 { "IDBR_IDB",  0x40301688,  0, 0x000000ff, 'x', "I2C Data Buffer" },
50 
51 { "ICR",       0x40301690,  0, 0xffffffff, 'x', "I2C Control Register" },
52 { "ICR_START", 0x40301690,  0,	1, 'x',  " start bit " },
53 { "ICR_STOP",  0x40301690,  1,	1, 'x',  " stop bit " },
54 { "ICR_ACKNAK",0x40301690,  2,	1, 'x',  " send ACK(0) or NAK(1)" },
55 { "ICR_TB",    0x40301690,  3,	1, 'x',  " transfer byte bit " },
56 { "ICR_MA",    0x40301690,  4,	1, 'x',  " master abort " },
57 { "ICR_SCLE",  0x40301690,  5,	1, 'x',  " master clock enable " },
58 { "ICR_IUE",   0x40301690,  6,	1, 'x',  " unit enable " },
59 { "ICR_GCD",   0x40301690,  7,	1, 'x',  " general call disable " },
60 { "ICR_ITEIE", 0x40301690,  8,	1, 'x',  " enable tx interrupts " },
61 { "ICR_IRFIE", 0x40301690,  9,	1, 'x',  " enable rx interrupts " },
62 { "ICR_BEIE",  0x40301690,  10,	1, 'x',  " enable bus error ints " },
63 { "ICR_SSDIE", 0x40301690,  11,	1, 'x',  " slave STOP detected int enable " },
64 { "ICR_ALDIE", 0x40301690,  12,	1, 'x',  " enable arbitration interrupt " },
65 { "ICR_SADIE", 0x40301690,  13,	1, 'x',  " slave address detected int enable " },
66 { "ICR_UR",    0x40301690,  14, 1, 'x',  " unit reset " },
67 { "ICR_FM",    0x40301690,  15, 1, 'x',  " fast mode " },
68 
69 { "ISR",       0x40301698, 0, 0xffffffff, 'x', "I2C Status Register" },
70 { "ISR_RWM",   0x40301698, 0, 1, 'x', " read/write mode " },
71 { "ISR_ACKNAK",0x40301698, 1, 1, 'x', " ack/nak status " },
72 { "ISR_UB",    0x40301698, 2, 1, 'x', " unit busy " },
73 { "ISR_IBB",   0x40301698, 3, 1, 'x', " bus busy " },
74 { "ISR_SSD",   0x40301698, 4, 1, 'x', " slave stop detected " },
75 { "ISR_ALD",   0x40301698, 5, 1, 'x', " arbitration loss detected " },
76 { "ISR_ITE",   0x40301698, 6, 1, 'x', " tx buffer empty " },
77 { "ISR_IRF",   0x40301698, 7, 1, 'x', " rx buffer full " },
78 { "ISR_GCAD",  0x40301698, 8, 1, 'x', " general call address detected " },
79 { "ISR_SAD",   0x40301698, 9, 1, 'x', " slave address detected " },
80 { "ISR_BED",   0x40301698, 10, 1, 'x', " bus error no ACK/NAK " },
81 
82 { "ISAR",      0x403016A0,  0, 0xffffffff, 'x', "I2C Slave Address Register" },
83 { "ISAR_SA",   0x403016A0,  0, 0x0000007f, 'x', "I2C Slave Address" },
84 
85 { "PMCR",      0x40F00000,  0, 0xffffffff, 'x', "Power Manager Control Register (3-23)" },
86 { "PMCR_IDAE", 0x40F00000,  0, 0x00000001, 'd', "PM imprecise data abort abort signal" },
87 
88 { "PSSR",      0x40F00004,  0, 0xffffffff, 'x', "Power Manager Sleep Status Register (3-29)" },
89 { "PSSR_SSS",  0x40F00004,  0, 0x00000001, 'd', "PM chip was in sleep by setting sleep mode bit" },
90 { "PSSR_BFS",  0x40F00004,  1, 0x00000001, 'd', "PM nBATT_FAULT has been asserted" },
91 { "PSSR_VFS",  0x40F00004,  2, 0x00000001, 'd', "PM nVDD_FAULT was asserted while in Run or Idle" },
92 { "PSSR_PH",   0x40F00004,  4, 0x00000001, 'd', "PM GPIO pins are held in their sleep state" },
93 { "PSSR_RDH",  0x40F00004,  5, 0x00000001, 'd', "PM receivers of all input GPIO are disabled" },
94 
95 { "PSPR",      0x40F00008,  0, 0xffffffff, 'x', "Power Manager Scratch Pad Register (3-30)" },
96 
97 { "PWER",      0x40F0000C,  0, 0xffffffff, 'x', "Power Manager Wake-Up Enable Register (3-25)" },
98 { "PWER_WE0",  0x40F0000C,  0, 0x00000001, 'd', "PM wake up due to GPIO 0 edge detect enabled" },
99 { "PWER_WE1",  0x40F0000C,  1, 0x00000001, 'd', "PM wake up due to GPIO 1 edge detect enabled" },
100 { "PWER_WE2",  0x40F0000C,  2, 0x00000001, 'd', "PM wake up due to GPIO 2 edge detect enabled" },
101 { "PWER_WE3",  0x40F0000C,  3, 0x00000001, 'd', "PM wake up due to GPIO 3 edge detect enabled" },
102 { "PWER_WE4",  0x40F0000C,  4, 0x00000001, 'd', "PM wake up due to GPIO 4 edge detect enabled" },
103 { "PWER_WE5",  0x40F0000C,  5, 0x00000001, 'd', "PM wake up due to GPIO 5 edge detect enabled" },
104 { "PWER_WE6",  0x40F0000C,  6, 0x00000001, 'd', "PM wake up due to GPIO 6 edge detect enabled" },
105 { "PWER_WE7",  0x40F0000C,  7, 0x00000001, 'd', "PM wake up due to GPIO 7 edge detect enabled" },
106 { "PWER_WE8",  0x40F0000C,  8, 0x00000001, 'd', "PM wake up due to GPIO 8 edge detect enabled" },
107 { "PWER_WE9",  0x40F0000C,  9, 0x00000001, 'd', "PM wake up due to GPIO 9 edge detect enabled" },
108 { "PWER_WE10", 0x40F0000C, 10, 0x00000001, 'd', "PM wake up due to GPIO10 edge detect enabled" },
109 { "PWER_WE11", 0x40F0000C, 11, 0x00000001, 'd', "PM wake up due to GPIO11 edge detect enabled" },
110 { "PWER_WE12", 0x40F0000C, 12, 0x00000001, 'd', "PM wake up due to GPIO12 edge detect enabled" },
111 { "PWER_WE13", 0x40F0000C, 13, 0x00000001, 'd', "PM wake up due to GPIO13 edge detect enabled" },
112 { "PWER_WE14", 0x40F0000C, 14, 0x00000001, 'd', "PM wake up due to GPIO14 edge detect enabled" },
113 { "PWER_WE15", 0x40F0000C, 15, 0x00000001, 'd', "PM wake up due to GPIO15 edge detect enabled" },
114 { "PWER_WERTC",0x40F0000C, 31, 0x00000001, 'd', "PM wake up due to RTC alarm enabled" },
115 
116 { "PRER",      0x40F00010,  0, 0xffffffff, 'x', "Power Manager Rising Edge Detect Enable Register (3-26)" },
117 { "PRER_RE0",  0x40F00010,  0, 0x00000001, 'd', "PM wake up due to GPIO 0 rising edge detect enabled" },
118 { "PRER_RE1",  0x40F00010,  1, 0x00000001, 'd', "PM wake up due to GPIO 1 rising edge detect enabled" },
119 { "PRER_RE2",  0x40F00010,  2, 0x00000001, 'd', "PM wake up due to GPIO 2 rising edge detect enabled" },
120 { "PRER_RE3",  0x40F00010,  3, 0x00000001, 'd', "PM wake up due to GPIO 3 rising edge detect enabled" },
121 { "PRER_RE4",  0x40F00010,  4, 0x00000001, 'd', "PM wake up due to GPIO 4 rising edge detect enabled" },
122 { "PRER_RE5",  0x40F00010,  5, 0x00000001, 'd', "PM wake up due to GPIO 5 rising edge detect enabled" },
123 { "PRER_RE6",  0x40F00010,  6, 0x00000001, 'd', "PM wake up due to GPIO 6 rising edge detect enabled" },
124 { "PRER_RE7",  0x40F00010,  7, 0x00000001, 'd', "PM wake up due to GPIO 7 rising edge detect enabled" },
125 { "PRER_RE8",  0x40F00010,  8, 0x00000001, 'd', "PM wake up due to GPIO 8 rising edge detect enabled" },
126 { "PRER_RE9",  0x40F00010,  9, 0x00000001, 'd', "PM wake up due to GPIO 9 rising edge detect enabled" },
127 { "PRER_RE10", 0x40F00010, 10, 0x00000001, 'd', "PM wake up due to GPIO10 rising edge detect enabled" },
128 { "PRER_RE11", 0x40F00010, 11, 0x00000001, 'd', "PM wake up due to GPIO11 rising edge detect enabled" },
129 { "PRER_RE12", 0x40F00010, 12, 0x00000001, 'd', "PM wake up due to GPIO12 rising edge detect enabled" },
130 { "PRER_RE13", 0x40F00010, 13, 0x00000001, 'd', "PM wake up due to GPIO13 rising edge detect enabled" },
131 { "PRER_RE14", 0x40F00010, 14, 0x00000001, 'd', "PM wake up due to GPIO14 rising edge detect enabled" },
132 { "PRER_RE15", 0x40F00010, 15, 0x00000001, 'd', "PM wake up due to GPIO15 rising edge detect enabled" },
133 
134 { "PFER",      0x40F00014,  0, 0xffffffff, 'x', "Power Manager Falling Detect Enable Register (3-27)" },
135 { "PFER_FE0",  0x40F00014,  0, 0x00000001, 'd', "PM wake up due to GPIO 0 falling edge detect enabled" },
136 { "PFER_FE1",  0x40F00014,  1, 0x00000001, 'd', "PM wake up due to GPIO 1 falling edge detect enabled" },
137 { "PFER_FE2",  0x40F00014,  2, 0x00000001, 'd', "PM wake up due to GPIO 2 falling edge detect enabled" },
138 { "PFER_FE3",  0x40F00014,  3, 0x00000001, 'd', "PM wake up due to GPIO 3 falling edge detect enabled" },
139 { "PFER_FE4",  0x40F00014,  4, 0x00000001, 'd', "PM wake up due to GPIO 4 falling edge detect enabled" },
140 { "PFER_FE5",  0x40F00014,  5, 0x00000001, 'd', "PM wake up due to GPIO 5 falling edge detect enabled" },
141 { "PFER_FE6",  0x40F00014,  6, 0x00000001, 'd', "PM wake up due to GPIO 6 falling edge detect enabled" },
142 { "PFER_FE7",  0x40F00014,  7, 0x00000001, 'd', "PM wake up due to GPIO 7 falling edge detect enabled" },
143 { "PFER_FE8",  0x40F00014,  8, 0x00000001, 'd', "PM wake up due to GPIO 8 falling edge detect enabled" },
144 { "PFER_FE9",  0x40F00014,  9, 0x00000001, 'd', "PM wake up due to GPIO 9 falling edge detect enabled" },
145 { "PFER_FE10", 0x40F00014, 10, 0x00000001, 'd', "PM wake up due to GPIO10 falling edge detect enabled" },
146 { "PFER_FE11", 0x40F00014, 11, 0x00000001, 'd', "PM wake up due to GPIO11 falling edge detect enabled" },
147 { "PFER_FE12", 0x40F00014, 12, 0x00000001, 'd', "PM wake up due to GPIO12 falling edge detect enabled" },
148 { "PFER_FE13", 0x40F00014, 13, 0x00000001, 'd', "PM wake up due to GPIO13 falling edge detect enabled" },
149 { "PFER_FE14", 0x40F00014, 14, 0x00000001, 'd', "PM wake up due to GPIO14 falling edge detect enabled" },
150 { "PFER_FE15", 0x40F00014, 15, 0x00000001, 'd', "PM wake up due to GPIO15 falling edge detect enabled" },
151 
152 { "PEDR",      0x40F00018,  0, 0xffffffff, 'x', "Power Manager Edge Detect Status Register (3-28)" },
153 { "PEDR_ED0",  0x40F00018,  0, 0x00000001, 'd', "PM wake up due to edge on GPIO 0 detected" },
154 { "PEDR_ED1",  0x40F00018,  1, 0x00000001, 'd', "PM wake up due to edge on GPIO 1 detected" },
155 { "PEDR_ED2",  0x40F00018,  2, 0x00000001, 'd', "PM wake up due to edge on GPIO 2 detected" },
156 { "PEDR_ED3",  0x40F00018,  3, 0x00000001, 'd', "PM wake up due to edge on GPIO 3 detected" },
157 { "PEDR_ED4",  0x40F00018,  4, 0x00000001, 'd', "PM wake up due to edge on GPIO 4 detected" },
158 { "PEDR_ED5",  0x40F00018,  5, 0x00000001, 'd', "PM wake up due to edge on GPIO 5 detected" },
159 { "PEDR_ED6",  0x40F00018,  6, 0x00000001, 'd', "PM wake up due to edge on GPIO 6 detected" },
160 { "PEDR_ED7",  0x40F00018,  7, 0x00000001, 'd', "PM wake up due to edge on GPIO 7 detected" },
161 { "PEDR_ED8",  0x40F00018,  8, 0x00000001, 'd', "PM wake up due to edge on GPIO 8 detected" },
162 { "PEDR_ED9",  0x40F00018,  9, 0x00000001, 'd', "PM wake up due to edge on GPIO 9 detected" },
163 { "PEDR_ED10", 0x40F00018, 10, 0x00000001, 'd', "PM wake up due to edge on GPIO10 detected" },
164 { "PEDR_ED11", 0x40F00018, 11, 0x00000001, 'd', "PM wake up due to edge on GPIO11 detected" },
165 { "PEDR_ED12", 0x40F00018, 12, 0x00000001, 'd', "PM wake up due to edge on GPIO12 detected" },
166 { "PEDR_ED13", 0x40F00018, 13, 0x00000001, 'd', "PM wake up due to edge on GPIO13 detected" },
167 { "PEDR_ED14", 0x40F00018, 14, 0x00000001, 'd', "PM wake up due to edge on GPIO14 detected" },
168 { "PEDR_ED15", 0x40F00018, 15, 0x00000001, 'd', "PM wake up due to edge on GPIO15 detected" },
169 
170 { "PCFR",      0x40F0001C,  0, 0xffffffff, 'x', "Power Manager General Configuration Register (3-24)" },
171 { "PCFR_OPDE", 0x40F0001C,  0, 0x00000001, 'd', "PM stop 3.6864 MHz oscillator during sleep" },
172 { "PCFR_FP",   0x40F0001C,  1, 0x00000001, 'd', "PM PCMCIA signals float during sleep" },
173 { "PCFR_FS",   0x40F0001C,  2, 0x00000001, 'd', "PM static chip select signals float during sleep" },
174 
175 { "PGSR0",     0x40F00020,  0, 0xffffffff, 'x', "Power Manager GPIO Sleep State Register 0 (3-32)" },
176 { "PGSR_SS0",  0x40F00020,  0, 0x00000001, 'd', "PM GPIO pin 0 is driven to 1 during sleep" },
177 { "PGSR_SS1",  0x40F00020,  1, 0x00000001, 'd', "PM GPIO pin 1 is driven to 1 during sleep" },
178 { "PGSR_SS2",  0x40F00020,  2, 0x00000001, 'd', "PM GPIO pin 2 is driven to 1 during sleep" },
179 { "PGSR_SS3",  0x40F00020,  3, 0x00000001, 'd', "PM GPIO pin 3 is driven to 1 during sleep" },
180 { "PGSR_SS4",  0x40F00020,  4, 0x00000001, 'd', "PM GPIO pin 4 is driven to 1 during sleep" },
181 { "PGSR_SS5",  0x40F00020,  5, 0x00000001, 'd', "PM GPIO pin 5 is driven to 1 during sleep" },
182 { "PGSR_SS6",  0x40F00020,  6, 0x00000001, 'd', "PM GPIO pin 6 is driven to 1 during sleep" },
183 { "PGSR_SS7",  0x40F00020,  7, 0x00000001, 'd', "PM GPIO pin 7 is driven to 1 during sleep" },
184 { "PGSR_SS8",  0x40F00020,  8, 0x00000001, 'd', "PM GPIO pin 8 is driven to 1 during sleep" },
185 { "PGSR_SS9",  0x40F00020,  9, 0x00000001, 'd', "PM GPIO pin 9 is driven to 1 during sleep" },
186 { "PGSR_SS10", 0x40F00020, 10, 0x00000001, 'd', "PM GPIO pin 10 is driven to 1 during sleep" },
187 { "PGSR_SS11", 0x40F00020, 11, 0x00000001, 'd', "PM GPIO pin 11 is driven to 1 during sleep" },
188 { "PGSR_SS12", 0x40F00020, 12, 0x00000001, 'd', "PM GPIO pin 12 is driven to 1 during sleep" },
189 { "PGSR_SS13", 0x40F00020, 13, 0x00000001, 'd', "PM GPIO pin 13 is driven to 1 during sleep" },
190 { "PGSR_SS14", 0x40F00020, 14, 0x00000001, 'd', "PM GPIO pin 14 is driven to 1 during sleep" },
191 { "PGSR_SS15", 0x40F00020, 15, 0x00000001, 'd', "PM GPIO pin 15 is driven to 1 during sleep" },
192 { "PGSR_SS16", 0x40F00020, 16, 0x00000001, 'd', "PM GPIO pin 16 is driven to 1 during sleep" },
193 { "PGSR_SS17", 0x40F00020, 17, 0x00000001, 'd', "PM GPIO pin 17 is driven to 1 during sleep" },
194 { "PGSR_SS18", 0x40F00020, 18, 0x00000001, 'd', "PM GPIO pin 18 is driven to 1 during sleep" },
195 { "PGSR_SS19", 0x40F00020, 19, 0x00000001, 'd', "PM GPIO pin 19 is driven to 1 during sleep" },
196 { "PGSR_SS20", 0x40F00020, 20, 0x00000001, 'd', "PM GPIO pin 20 is driven to 1 during sleep" },
197 { "PGSR_SS21", 0x40F00020, 21, 0x00000001, 'd', "PM GPIO pin 21 is driven to 1 during sleep" },
198 { "PGSR_SS22", 0x40F00020, 22, 0x00000001, 'd', "PM GPIO pin 22 is driven to 1 during sleep" },
199 { "PGSR_SS23", 0x40F00020, 23, 0x00000001, 'd', "PM GPIO pin 23 is driven to 1 during sleep" },
200 { "PGSR_SS24", 0x40F00020, 24, 0x00000001, 'd', "PM GPIO pin 24 is driven to 1 during sleep" },
201 { "PGSR_SS25", 0x40F00020, 25, 0x00000001, 'd', "PM GPIO pin 25 is driven to 1 during sleep" },
202 { "PGSR_SS26", 0x40F00020, 26, 0x00000001, 'd', "PM GPIO pin 26 is driven to 1 during sleep" },
203 { "PGSR_SS27", 0x40F00020, 27, 0x00000001, 'd', "PM GPIO pin 27 is driven to 1 during sleep" },
204 { "PGSR_SS28", 0x40F00020, 28, 0x00000001, 'd', "PM GPIO pin 28 is driven to 1 during sleep" },
205 { "PGSR_SS29", 0x40F00020, 29, 0x00000001, 'd', "PM GPIO pin 29 is driven to 1 during sleep" },
206 { "PGSR_SS30", 0x40F00020, 30, 0x00000001, 'd', "PM GPIO pin 30 is driven to 1 during sleep" },
207 { "PGSR_SS31", 0x40F00020, 31, 0x00000001, 'd', "PM GPIO pin 31 is driven to 1 during sleep" },
208 
209 { "PGSR1",     0x40F00024,  0, 0xffffffff, 'x', "Power Manager GPIO Sleep State Register 1 (3-32)" },
210 { "PGSR_SS32", 0x40F00024,  0, 0x00000001, 'd', "PM GPIO pin 32 is driven to 1 during sleep" },
211 { "PGSR_SS33", 0x40F00024,  1, 0x00000001, 'd', "PM GPIO pin 33 is driven to 1 during sleep" },
212 { "PGSR_SS34", 0x40F00024,  2, 0x00000001, 'd', "PM GPIO pin 34 is driven to 1 during sleep" },
213 { "PGSR_SS35", 0x40F00024,  3, 0x00000001, 'd', "PM GPIO pin 35 is driven to 1 during sleep" },
214 { "PGSR_SS36", 0x40F00024,  4, 0x00000001, 'd', "PM GPIO pin 36 is driven to 1 during sleep" },
215 { "PGSR_SS37", 0x40F00024,  5, 0x00000001, 'd', "PM GPIO pin 37 is driven to 1 during sleep" },
216 { "PGSR_SS38", 0x40F00024,  6, 0x00000001, 'd', "PM GPIO pin 38 is driven to 1 during sleep" },
217 { "PGSR_SS39", 0x40F00024,  7, 0x00000001, 'd', "PM GPIO pin 39 is driven to 1 during sleep" },
218 { "PGSR_SS40", 0x40F00024,  8, 0x00000001, 'd', "PM GPIO pin 40 is driven to 1 during sleep" },
219 { "PGSR_SS41", 0x40F00024,  9, 0x00000001, 'd', "PM GPIO pin 41 is driven to 1 during sleep" },
220 { "PGSR_SS42", 0x40F00024, 10, 0x00000001, 'd', "PM GPIO pin 42 is driven to 1 during sleep" },
221 { "PGSR_SS43", 0x40F00024, 11, 0x00000001, 'd', "PM GPIO pin 43 is driven to 1 during sleep" },
222 { "PGSR_SS44", 0x40F00024, 12, 0x00000001, 'd', "PM GPIO pin 44 is driven to 1 during sleep" },
223 { "PGSR_SS45", 0x40F00024, 13, 0x00000001, 'd', "PM GPIO pin 45 is driven to 1 during sleep" },
224 { "PGSR_SS46", 0x40F00024, 14, 0x00000001, 'd', "PM GPIO pin 46 is driven to 1 during sleep" },
225 { "PGSR_SS47", 0x40F00024, 15, 0x00000001, 'd', "PM GPIO pin 47 is driven to 1 during sleep" },
226 { "PGSR_SS48", 0x40F00024, 16, 0x00000001, 'd', "PM GPIO pin 48 is driven to 1 during sleep" },
227 { "PGSR_SS49", 0x40F00024, 17, 0x00000001, 'd', "PM GPIO pin 49 is driven to 1 during sleep" },
228 { "PGSR_SS50", 0x40F00024, 18, 0x00000001, 'd', "PM GPIO pin 50 is driven to 1 during sleep" },
229 { "PGSR_SS51", 0x40F00024, 19, 0x00000001, 'd', "PM GPIO pin 51 is driven to 1 during sleep" },
230 { "PGSR_SS52", 0x40F00024, 20, 0x00000001, 'd', "PM GPIO pin 52 is driven to 1 during sleep" },
231 { "PGSR_SS53", 0x40F00024, 21, 0x00000001, 'd', "PM GPIO pin 53 is driven to 1 during sleep" },
232 { "PGSR_SS54", 0x40F00024, 22, 0x00000001, 'd', "PM GPIO pin 54 is driven to 1 during sleep" },
233 { "PGSR_SS55", 0x40F00024, 23, 0x00000001, 'd', "PM GPIO pin 55 is driven to 1 during sleep" },
234 { "PGSR_SS56", 0x40F00024, 24, 0x00000001, 'd', "PM GPIO pin 56 is driven to 1 during sleep" },
235 { "PGSR_SS57", 0x40F00024, 25, 0x00000001, 'd', "PM GPIO pin 57 is driven to 1 during sleep" },
236 { "PGSR_SS58", 0x40F00024, 26, 0x00000001, 'd', "PM GPIO pin 58 is driven to 1 during sleep" },
237 { "PGSR_SS59", 0x40F00024, 27, 0x00000001, 'd', "PM GPIO pin 59 is driven to 1 during sleep" },
238 { "PGSR_SS60", 0x40F00024, 28, 0x00000001, 'd', "PM GPIO pin 60 is driven to 1 during sleep" },
239 { "PGSR_SS61", 0x40F00024, 29, 0x00000001, 'd', "PM GPIO pin 61 is driven to 1 during sleep" },
240 { "PGSR_SS62", 0x40F00024, 30, 0x00000001, 'd', "PM GPIO pin 62 is driven to 1 during sleep" },
241 { "PGSR_SS63", 0x40F00024, 31, 0x00000001, 'd', "PM GPIO pin 63 is driven to 1 during sleep" },
242 
243 { "PGSR2",     0x40F00028,  0, 0xffffffff, 'x', "Power Manager GPIO Sleep State Register 2 (3-33)" },
244 { "PGSR_SS64", 0x40F00028,  0, 0x00000001, 'd', "PM GPIO pin 64 is driven to 1 during sleep" },
245 { "PGSR_SS65", 0x40F00028,  1, 0x00000001, 'd', "PM GPIO pin 65 is driven to 1 during sleep" },
246 { "PGSR_SS66", 0x40F00028,  2, 0x00000001, 'd', "PM GPIO pin 66 is driven to 1 during sleep" },
247 { "PGSR_SS67", 0x40F00028,  3, 0x00000001, 'd', "PM GPIO pin 67 is driven to 1 during sleep" },
248 { "PGSR_SS68", 0x40F00028,  4, 0x00000001, 'd', "PM GPIO pin 68 is driven to 1 during sleep" },
249 { "PGSR_SS69", 0x40F00028,  5, 0x00000001, 'd', "PM GPIO pin 69 is driven to 1 during sleep" },
250 { "PGSR_SS70", 0x40F00028,  6, 0x00000001, 'd', "PM GPIO pin 70 is driven to 1 during sleep" },
251 { "PGSR_SS71", 0x40F00028,  7, 0x00000001, 'd', "PM GPIO pin 71 is driven to 1 during sleep" },
252 { "PGSR_SS72", 0x40F00028,  8, 0x00000001, 'd', "PM GPIO pin 72 is driven to 1 during sleep" },
253 { "PGSR_SS73", 0x40F00028,  9, 0x00000001, 'd', "PM GPIO pin 73 is driven to 1 during sleep" },
254 { "PGSR_SS74", 0x40F00028, 10, 0x00000001, 'd', "PM GPIO pin 74 is driven to 1 during sleep" },
255 { "PGSR_SS75", 0x40F00028, 11, 0x00000001, 'd', "PM GPIO pin 75 is driven to 1 during sleep" },
256 { "PGSR_SS76", 0x40F00028, 12, 0x00000001, 'd', "PM GPIO pin 76 is driven to 1 during sleep" },
257 { "PGSR_SS77", 0x40F00028, 13, 0x00000001, 'd', "PM GPIO pin 77 is driven to 1 during sleep" },
258 { "PGSR_SS78", 0x40F00028, 14, 0x00000001, 'd', "PM GPIO pin 78 is driven to 1 during sleep" },
259 { "PGSR_SS79", 0x40F00028, 15, 0x00000001, 'd', "PM GPIO pin 79 is driven to 1 during sleep" },
260 { "PGSR_SS80", 0x40F00028, 16, 0x00000001, 'd', "PM GPIO pin 80 is driven to 1 during sleep" },
261 
262 { "RCSR",      0x40F00030,  0, 0xffffffff, 'x', "Power Manager Reset Controller Status Register (3-34)" },
263 { "RCSR_HWR",  0x40F00030,  0, 0x00000001, 'd', "PM hardware reset occurred" },
264 { "RCSR_WDR",  0x40F00030,  1, 0x00000001, 'd', "PM watchdog reset occurred" },
265 { "RCSR_SMR",  0x40F00030,  2, 0x00000001, 'd', "PM sleep mode occurred" },
266 { "RCSR_GFR",  0x40F00030,  3, 0x00000001, 'd', "PM GPIO reset  occurred" },
267 
268 // PXA255
269 { "PMFW",      0x40F00034,  0, 0xffffffff, 'x', "Power Manager Fast Sleep Wakeup Register (3-31)" },
270 { "PMFW_FWAKE",0x40F00034,  1, 0x00000001, 'x', "Fast Wakeup Enable" },
271 
272 { "CCCR",      0x41300000,  0, 0xffffffff, 'x', "Core Clock Configuration Register (3-35)" },
273 { "CCCR_L",    0x41300000,  0, 0x0000001f, 'x', "CM crystal freq to memory freq multiplier" },
274 { "CCCR_M",    0x41300000,  5, 0x00000003, 'x', "CM memory freq to run mode freq multiplier" },
275 { "CCCR_N",    0x41300000,  7, 0x00000007, 'x', "CM run mode freq to turbo freq multiplier" },
276 
277 { "CKEN",      0x41300004,  0, 0xffffffff, 'x', "Clock Enable Register (3-36)" },
278 { "CKEN_0",    0x41300004,  0, 0x00000001, 'd', "CM PWM0 clock enabled" },
279 { "CKEN_1",    0x41300004,  1, 0x00000001, 'd', "CM PWM1 clock enabled" },
280 { "CKEN_2",    0x41300004,  2, 0x00000001, 'd', "CM AC97 clock enabled" },
281 { "CKEN_3",    0x41300004,  3, 0x00000001, 'd', "CM SSP clock enabled" },
282 { "CKEN_5",    0x41300004,  5, 0x00000001, 'd', "CM STUART clock enabled" },
283 { "CKEN_6",    0x41300004,  6, 0x00000001, 'd', "CM FFUART clock enabled" },
284 { "CKEN_7",    0x41300004,  7, 0x00000001, 'd', "CM BTUART clock enabled" },
285 { "CKEN_8",    0x41300004,  8, 0x00000001, 'd', "CM I2S clock enabled" },
286 { "CKEN_11",   0x41300004, 11, 0x00000001, 'd', "CM USB clock enabled" },
287 { "CKEN_12",   0x41300004, 12, 0x00000001, 'd', "CM MMC clock enabled" },
288 { "CKEN_13",   0x41300004, 13, 0x00000001, 'd', "CM FIPC clock enabled" },
289 { "CKEN_14",   0x41300004, 14, 0x00000001, 'd', "CM I2C clock enabled" },
290 { "CKEN_16",   0x41300004, 16, 0x00000001, 'd', "CM LCD clock enabled" },
291 
292 { "OSCC",      0x41300008,  0, 0xffffffff, 'x', "Oscillator Configuration Register (3-38)" },
293 { "OSCC_OOK",  0x41300008,  0, 0x00000001, 'd', "CM 32.768 kHz oscillator enabled and stabilized" },
294 { "OSCC_OON",  0x41300008,  1, 0x00000001, 'd', "CM 32.768 kHz oscillator enabled" },
295 
296 // TODO: CP14-Registers (3-37)
297 
298 { "GPLR0",    0x40E00000,  0, 0xffffffff, 'x', "GPIO Pin Level Register 0 (4-7)" },
299 #if defined(CONFIG_ARCH_RAMSES)
300 { "GPLR0_0",  0x40E00000,  0, 0x00000001, 'd', "GPIO 0 (nc) level" },
301 { "GPLR0_1",  0x40E00000,  1, 0x00000001, 'd', "GPIO 1 (nPFI) level" },
302 { "GPLR0_2",  0x40E00000,  2, 0x00000001, 'd', "GPIO 2 (BAT_DATA) level" },
303 { "GPLR0_3",  0x40E00000,  3, 0x00000001, 'd', "GPIO 3 (IRQ_KEY) level" },
304 { "GPLR0_4",  0x40E00000,  4, 0x00000001, 'd', "GPIO 4 (IRQ_ETH) level" },
305 { "GPLR0_5",  0x40E00000,  5, 0x00000001, 'd', "GPIO 5 (nc) level" },
306 { "GPLR0_6",  0x40E00000,  6, 0x00000001, 'd', "GPIO 6 (MMC_CLK) level" },
307 { "GPLR0_7",  0x40E00000,  7, 0x00000001, 'd', "GPIO 7 (IRQ_GSM) level" },
308 { "GPLR0_8",  0x40E00000,  8, 0x00000001, 'd', "GPIO 8 (nPCC_S1_CD) level" },
309 { "GPLR0_9",  0x40E00000,  9, 0x00000001, 'd', "GPIO 9 (MMC_CD) level" },
310 { "GPLR0_10", 0x40E00000, 10, 0x00000001, 'd', "GPIO 10 (IRQ_RTC) level" },
311 { "GPLR0_11", 0x40E00000, 11, 0x00000001, 'd', "GPIO 11 (nc 3M6) level" },
312 { "GPLR0_12", 0x40E00000, 12, 0x00000001, 'd', "GPIO 12 (nc) level" },
313 { "GPLR0_13", 0x40E00000, 13, 0x00000001, 'd', "GPIO 13 (IRQ_DOCK) level" },
314 { "GPLR0_14", 0x40E00000, 14, 0x00000001, 'd', "GPIO 14 (nc) level" },
315 { "GPLR0_15", 0x40E00000, 15, 0x00000001, 'd', "GPIO 15 (nCS1) level" },
316 { "GPLR0_16", 0x40E00000, 16, 0x00000001, 'd', "GPIO 16 (PWM0) level" },
317 { "GPLR0_17", 0x40E00000, 17, 0x00000001, 'd', "GPIO 17 (PWM1) level" },
318 { "GPLR0_18", 0x40E00000, 18, 0x00000001, 'd', "GPIO 18 (RDY) level" },
319 { "GPLR0_19", 0x40E00000, 19, 0x00000001, 'd', "GPIO 19 (nc nPCC_S0_IRQ) level" },
320 { "GPLR0_20", 0x40E00000, 20, 0x00000001, 'd', "GPIO 20 (nc) level" },
321 { "GPLR0_21", 0x40E00000, 21, 0x00000001, 'd', "GPIO 21 (AC97_IRQ) level" },
322 { "GPLR0_22", 0x40E00000, 22, 0x00000001, 'd', "GPIO 22 (nPCC_S1_IRQ) level" },
323 { "GPLR0_23", 0x40E00000, 23, 0x00000001, 'd', "GPIO 23 (UART_INTA) level" },
324 { "GPLR0_24", 0x40E00000, 24, 0x00000001, 'd', "GPIO 24 (UART_INTB) level" },
325 { "GPLR0_25", 0x40E00000, 25, 0x00000001, 'd', "GPIO 25 (UART_INTC) level" },
326 { "GPLR0_26", 0x40E00000, 26, 0x00000001, 'd', "GPIO 26 (UART_INTD) level" },
327 { "GPLR0_27", 0x40E00000, 27, 0x00000001, 'd', "GPIO 27 (nc CPLD_FREE) level" },
328 { "GPLR0_28", 0x40E00000, 28, 0x00000001, 'd', "GPIO 28 (AUD_BITCLK) level" },
329 { "GPLR0_29", 0x40E00000, 29, 0x00000001, 'd', "GPIO 29 (AUD_SDIN0) level" },
330 { "GPLR0_30", 0x40E00000, 30, 0x00000001, 'd', "GPIO 30 (AUD_SDOUT) level" },
331 { "GPLR0_31", 0x40E00000, 31, 0x00000001, 'd', "GPIO 31 (AUD_SYNC) level" },
332 #else
333 { "GPLR0_0",  0x40E00000,  0, 0x00000001, 'd', "GPIO 0 level" },
334 { "GPLR0_1",  0x40E00000,  1, 0x00000001, 'd', "GPIO 1 level" },
335 { "GPLR0_2",  0x40E00000,  2, 0x00000001, 'd', "GPIO 2 level" },
336 { "GPLR0_3",  0x40E00000,  3, 0x00000001, 'd', "GPIO 3 level" },
337 { "GPLR0_4",  0x40E00000,  4, 0x00000001, 'd', "GPIO 4 level" },
338 { "GPLR0_5",  0x40E00000,  5, 0x00000001, 'd', "GPIO 5 level" },
339 { "GPLR0_6",  0x40E00000,  6, 0x00000001, 'd', "GPIO 6 level" },
340 { "GPLR0_7",  0x40E00000,  7, 0x00000001, 'd', "GPIO 7 level" },
341 { "GPLR0_8",  0x40E00000,  8, 0x00000001, 'd', "GPIO 8 level" },
342 { "GPLR0_9",  0x40E00000,  9, 0x00000001, 'd', "GPIO 9 level" },
343 { "GPLR0_10", 0x40E00000, 10, 0x00000001, 'd', "GPIO 10 level" },
344 { "GPLR0_11", 0x40E00000, 11, 0x00000001, 'd', "GPIO 11 level" },
345 { "GPLR0_12", 0x40E00000, 12, 0x00000001, 'd', "GPIO 12 level" },
346 { "GPLR0_13", 0x40E00000, 13, 0x00000001, 'd', "GPIO 13 level" },
347 { "GPLR0_14", 0x40E00000, 14, 0x00000001, 'd', "GPIO 14 level" },
348 { "GPLR0_15", 0x40E00000, 15, 0x00000001, 'd', "GPIO 15 level" },
349 { "GPLR0_16", 0x40E00000, 16, 0x00000001, 'd', "GPIO 16 level" },
350 { "GPLR0_17", 0x40E00000, 17, 0x00000001, 'd', "GPIO 17 level" },
351 { "GPLR0_18", 0x40E00000, 18, 0x00000001, 'd', "GPIO 18 level" },
352 { "GPLR0_19", 0x40E00000, 19, 0x00000001, 'd', "GPIO 19 level" },
353 { "GPLR0_20", 0x40E00000, 20, 0x00000001, 'd', "GPIO 20 level" },
354 { "GPLR0_21", 0x40E00000, 21, 0x00000001, 'd', "GPIO 21 level" },
355 { "GPLR0_22", 0x40E00000, 22, 0x00000001, 'd', "GPIO 22 level" },
356 { "GPLR0_23", 0x40E00000, 23, 0x00000001, 'd', "GPIO 23 level" },
357 { "GPLR0_24", 0x40E00000, 24, 0x00000001, 'd', "GPIO 24 level" },
358 { "GPLR0_25", 0x40E00000, 25, 0x00000001, 'd', "GPIO 25 level" },
359 { "GPLR0_26", 0x40E00000, 26, 0x00000001, 'd', "GPIO 26 level" },
360 { "GPLR0_27", 0x40E00000, 27, 0x00000001, 'd', "GPIO 27 level" },
361 { "GPLR0_28", 0x40E00000, 28, 0x00000001, 'd', "GPIO 28 level" },
362 { "GPLR0_29", 0x40E00000, 29, 0x00000001, 'd', "GPIO 29 level" },
363 { "GPLR0_30", 0x40E00000, 30, 0x00000001, 'd', "GPIO 30 level" },
364 { "GPLR0_31", 0x40E00000, 31, 0x00000001, 'd', "GPIO 31 level" },
365 #endif
366 
367 { "GPLR1",    0x40E00004,  0, 0xffffffff, 'x', "GPIO Level Register 1 (4-8)" },
368 #if defined(CONFIG_ARCH_RAMSES)
369 { "GPLR1_32", 0x40E00004,  0, 0x00000001, 'd', "GPIO 32 (AUD_SDIN1) level" },
370 { "GPLR1_33", 0x40E00004,  1, 0x00000001, 'd', "GPIO 33 (nCS5) level" },
371 { "GPLR1_34", 0x40E00004,  2, 0x00000001, 'd', "GPIO 34 (FF_RXD) level" },
372 { "GPLR1_35", 0x40E00004,  3, 0x00000001, 'd', "GPIO 35 (FF_CTS) level" },
373 { "GPLR1_36", 0x40E00004,  4, 0x00000001, 'd', "GPIO 36 (FF_DCD) level" },
374 { "GPLR1_37", 0x40E00004,  5, 0x00000001, 'd', "GPIO 37 (FF_DSR) level" },
375 { "GPLR1_38", 0x40E00004,  6, 0x00000001, 'd', "GPIO 38 (FF_RI) level" },
376 { "GPLR1_39", 0x40E00004,  7, 0x00000001, 'd', "GPIO 39 (FF_TXD) level" },
377 { "GPLR1_40", 0x40E00004,  8, 0x00000001, 'd', "GPIO 40 (FF_DTR) level" },
378 { "GPLR1_41", 0x40E00004,  9, 0x00000001, 'd', "GPIO 41 (FF_RTS) level" },
379 { "GPLR1_42", 0x40E00004, 10, 0x00000001, 'd', "GPIO 42 (BT_RXD) level" },
380 { "GPLR1_43", 0x40E00004, 11, 0x00000001, 'd', "GPIO 43 (BT_TXD) level" },
381 { "GPLR1_44", 0x40E00004, 12, 0x00000001, 'd', "GPIO 44 (BT_CTS) level" },
382 { "GPLR1_45", 0x40E00004, 13, 0x00000001, 'd', "GPIO 45 (BT_RTS) level" },
383 { "GPLR1_46", 0x40E00004, 14, 0x00000001, 'd', "GPIO 46 (IR_RXD) level" },
384 { "GPLR1_47", 0x40E00004, 15, 0x00000001, 'd', "GPIO 47 (IR_TXD) level" },
385 { "GPLR1_48", 0x40E00004, 16, 0x00000001, 'd', "GPIO 48 (nPOE) level" },
386 { "GPLR1_49", 0x40E00004, 17, 0x00000001, 'd', "GPIO 49 (nPWE) level" },
387 { "GPLR1_50", 0x40E00004, 18, 0x00000001, 'd', "GPIO 50 (nPIOR) level" },
388 { "GPLR1_51", 0x40E00004, 19, 0x00000001, 'd', "GPIO 51 (nPIOW) level" },
389 { "GPLR1_52", 0x40E00004, 20, 0x00000001, 'd', "GPIO 52 (nPCE1) level" },
390 { "GPLR1_53", 0x40E00004, 21, 0x00000001, 'd', "GPIO 53 (nPCE2) level" },
391 { "GPLR1_54", 0x40E00004, 22, 0x00000001, 'd', "GPIO 54 (nPKTSEL) level" },
392 { "GPLR1_55", 0x40E00004, 23, 0x00000001, 'd', "GPIO 55 (nPREG) level" },
393 { "GPLR1_56", 0x40E00004, 24, 0x00000001, 'd', "GPIO 56 (nPWAIT) level" },
394 { "GPLR1_57", 0x40E00004, 25, 0x00000001, 'd', "GPIO 57 (nIOIS16) level" },
395 { "GPLR1_58", 0x40E00004, 26, 0x00000001, 'd', "GPIO 58 (LDD0) level" },
396 { "GPLR1_59", 0x40E00004, 27, 0x00000001, 'd', "GPIO 59 (LDD1) level" },
397 { "GPLR1_60", 0x40E00004, 28, 0x00000001, 'd', "GPIO 60 (LDD2) level" },
398 { "GPLR1_61", 0x40E00004, 29, 0x00000001, 'd', "GPIO 61 (LDD3) level" },
399 { "GPLR1_62", 0x40E00004, 30, 0x00000001, 'd', "GPIO 62 (LDD4) level" },
400 { "GPLR1_63", 0x40E00004, 31, 0x00000001, 'd', "GPIO 63 (LDD5) level" },
401 #else
402 { "GPLR1_32", 0x40E00004,  0, 0x00000001, 'd', "GPIO 32 level" },
403 { "GPLR1_33", 0x40E00004,  1, 0x00000001, 'd', "GPIO 33 level" },
404 { "GPLR1_34", 0x40E00004,  2, 0x00000001, 'd', "GPIO 34 level" },
405 { "GPLR1_35", 0x40E00004,  3, 0x00000001, 'd', "GPIO 35 level" },
406 { "GPLR1_36", 0x40E00004,  4, 0x00000001, 'd', "GPIO 36 level" },
407 { "GPLR1_37", 0x40E00004,  5, 0x00000001, 'd', "GPIO 37 level" },
408 { "GPLR1_38", 0x40E00004,  6, 0x00000001, 'd', "GPIO 38 level" },
409 { "GPLR1_39", 0x40E00004,  7, 0x00000001, 'd', "GPIO 39 level" },
410 { "GPLR1_40", 0x40E00004,  8, 0x00000001, 'd', "GPIO 40 level" },
411 { "GPLR1_41", 0x40E00004,  9, 0x00000001, 'd', "GPIO 41 level" },
412 { "GPLR1_42", 0x40E00004, 10, 0x00000001, 'd', "GPIO 42 level" },
413 { "GPLR1_43", 0x40E00004, 11, 0x00000001, 'd', "GPIO 43 level" },
414 { "GPLR1_44", 0x40E00004, 12, 0x00000001, 'd', "GPIO 44 level" },
415 { "GPLR1_45", 0x40E00004, 13, 0x00000001, 'd', "GPIO 45 level" },
416 { "GPLR1_46", 0x40E00004, 14, 0x00000001, 'd', "GPIO 46 level" },
417 { "GPLR1_47", 0x40E00004, 15, 0x00000001, 'd', "GPIO 47 level" },
418 { "GPLR1_48", 0x40E00004, 16, 0x00000001, 'd', "GPIO 48 level" },
419 { "GPLR1_49", 0x40E00004, 17, 0x00000001, 'd', "GPIO 49 level" },
420 { "GPLR1_50", 0x40E00004, 18, 0x00000001, 'd', "GPIO 50 level" },
421 { "GPLR1_51", 0x40E00004, 19, 0x00000001, 'd', "GPIO 51 level" },
422 { "GPLR1_52", 0x40E00004, 20, 0x00000001, 'd', "GPIO 52 level" },
423 { "GPLR1_53", 0x40E00004, 21, 0x00000001, 'd', "GPIO 53 level" },
424 { "GPLR1_54", 0x40E00004, 22, 0x00000001, 'd', "GPIO 54 level" },
425 { "GPLR1_55", 0x40E00004, 23, 0x00000001, 'd', "GPIO 55 level" },
426 { "GPLR1_56", 0x40E00004, 24, 0x00000001, 'd', "GPIO 56 level" },
427 { "GPLR1_57", 0x40E00004, 25, 0x00000001, 'd', "GPIO 57 level" },
428 { "GPLR1_58", 0x40E00004, 26, 0x00000001, 'd', "GPIO 58 level" },
429 { "GPLR1_59", 0x40E00004, 27, 0x00000001, 'd', "GPIO 59 level" },
430 { "GPLR1_60", 0x40E00004, 28, 0x00000001, 'd', "GPIO 60 level" },
431 { "GPLR1_61", 0x40E00004, 29, 0x00000001, 'd', "GPIO 61 level" },
432 { "GPLR1_62", 0x40E00004, 30, 0x00000001, 'd', "GPIO 62 level" },
433 { "GPLR1_63", 0x40E00004, 31, 0x00000001, 'd', "GPIO 63 level" },
434 #endif
435 
436 { "GPLR2",    0x40E00008,  0, 0xffffffff, 'x', "GPIO Level Register 2 (4-8)" },
437 #if defined(CONFIG_ARCH_RAMSES)
438 { "GPLR2_64", 0x40E00008,  0, 0x00000001, 'd', "GPIO 64 (LDD6) level" },
439 { "GPLR2_65", 0x40E00008,  1, 0x00000001, 'd', "GPIO 65 (LDD7) level" },
440 { "GPLR2_66", 0x40E00008,  2, 0x00000001, 'd', "GPIO 66 (nc) level" },
441 { "GPLR2_67", 0x40E00008,  3, 0x00000001, 'd', "GPIO 67 (nc) level" },
442 { "GPLR2_68", 0x40E00008,  4, 0x00000001, 'd', "GPIO 68 (nc) level" },
443 { "GPLR2_69", 0x40E00008,  5, 0x00000001, 'd', "GPIO 69 (nc) level" },
444 { "GPLR2_70", 0x40E00008,  6, 0x00000001, 'd', "GPIO 70 (nc) level" },
445 { "GPLR2_71", 0x40E00008,  7, 0x00000001, 'd', "GPIO 71 (nc) level" },
446 { "GPLR2_72", 0x40E00008,  8, 0x00000001, 'd', "GPIO 72 (nc) level" },
447 { "GPLR2_73", 0x40E00008,  9, 0x00000001, 'd', "GPIO 73 (nc) level" },
448 { "GPLR2_74", 0x40E00008, 10, 0x00000001, 'd', "GPIO 74 (FCLK) level" },
449 { "GPLR2_75", 0x40E00008, 11, 0x00000001, 'd', "GPIO 75 (LCLK) level" },
450 { "GPLR2_76", 0x40E00008, 12, 0x00000001, 'd', "GPIO 76 (PCLK) level" },
451 { "GPLR2_77", 0x40E00008, 13, 0x00000001, 'd', "GPIO 77 (BIAS) level" },
452 { "GPLR2_78", 0x40E00008, 14, 0x00000001, 'd', "GPIO 78 (nCS2) level" },
453 { "GPLR2_79", 0x40E00008, 15, 0x00000001, 'd', "GPIO 79 (nCS3) level" },
454 { "GPLR2_80", 0x40E00008, 16, 0x00000001, 'd', "GPIO 80 (nCS4) level" },
455 { "GPLR2_81", 0x40E00008, 17, 0x00000001, 'd', "GPIO 81 (nc) level" },
456 { "GPLR2_82", 0x40E00008, 18, 0x00000001, 'd', "GPIO 82 (nc) level" },
457 { "GPLR2_83", 0x40E00008, 19, 0x00000001, 'd', "GPIO 83 (nc) level" },
458 { "GPLR2_84", 0x40E00008, 20, 0x00000001, 'd', "GPIO 84 (nc) level" },
459 #else
460 { "GPLR2_64", 0x40E00008,  0, 0x00000001, 'd', "GPIO 64 level" },
461 { "GPLR2_65", 0x40E00008,  1, 0x00000001, 'd', "GPIO 65 level" },
462 { "GPLR2_66", 0x40E00008,  2, 0x00000001, 'd', "GPIO 66 level" },
463 { "GPLR2_67", 0x40E00008,  3, 0x00000001, 'd', "GPIO 67 level" },
464 { "GPLR2_68", 0x40E00008,  4, 0x00000001, 'd', "GPIO 68 level" },
465 { "GPLR2_69", 0x40E00008,  5, 0x00000001, 'd', "GPIO 69 level" },
466 { "GPLR2_70", 0x40E00008,  6, 0x00000001, 'd', "GPIO 70 level" },
467 { "GPLR2_71", 0x40E00008,  7, 0x00000001, 'd', "GPIO 71 level" },
468 { "GPLR2_72", 0x40E00008,  8, 0x00000001, 'd', "GPIO 72 level" },
469 { "GPLR2_73", 0x40E00008,  9, 0x00000001, 'd', "GPIO 73 level" },
470 { "GPLR2_74", 0x40E00008, 10, 0x00000001, 'd', "GPIO 74 level" },
471 { "GPLR2_75", 0x40E00008, 11, 0x00000001, 'd', "GPIO 75 level" },
472 { "GPLR2_76", 0x40E00008, 12, 0x00000001, 'd', "GPIO 76 level" },
473 { "GPLR2_77", 0x40E00008, 13, 0x00000001, 'd', "GPIO 77 level" },
474 { "GPLR2_78", 0x40E00008, 14, 0x00000001, 'd', "GPIO 78 level" },
475 { "GPLR2_79", 0x40E00008, 15, 0x00000001, 'd', "GPIO 79 level" },
476 { "GPLR2_80", 0x40E00008, 16, 0x00000001, 'd', "GPIO 80 level" },
477 { "GPLR2_81", 0x40E00008, 17, 0x00000001, 'd', "GPIO 81 level" },
478 { "GPLR2_82", 0x40E00008, 18, 0x00000001, 'd', "GPIO 82 level" },
479 { "GPLR2_83", 0x40E00008, 19, 0x00000001, 'd', "GPIO 83 level" },
480 { "GPLR2_84", 0x40E00008, 20, 0x00000001, 'd', "GPIO 84 level" },
481 #endif
482 
483 { "GPDR0",    0x40E0000C,  0, 0xffffffff, 'x', "GPIO Direction Register 0 (4-9)" },
484 { "GPDR0_0",  0x40E0000C,  0, 0x00000001, 'd', "GPIO 0 i/o direction (1=output)" },
485 { "GPDR0_1",  0x40E0000C,  1, 0x00000001, 'd', "GPIO 1 i/o direction (1=output)" },
486 { "GPDR0_2",  0x40E0000C,  2, 0x00000001, 'd', "GPIO 2 i/o direction (1=output)" },
487 { "GPDR0_3",  0x40E0000C,  3, 0x00000001, 'd', "GPIO 3 i/o direction (1=output)" },
488 { "GPDR0_4",  0x40E0000C,  4, 0x00000001, 'd', "GPIO 4 i/o direction (1=output)" },
489 { "GPDR0_5",  0x40E0000C,  5, 0x00000001, 'd', "GPIO 5 i/o direction (1=output)" },
490 { "GPDR0_6",  0x40E0000C,  6, 0x00000001, 'd', "GPIO 6 i/o direction (1=output)" },
491 { "GPDR0_7",  0x40E0000C,  7, 0x00000001, 'd', "GPIO 7 i/o direction (1=output)" },
492 { "GPDR0_8",  0x40E0000C,  8, 0x00000001, 'd', "GPIO 8 i/o direction (1=output)" },
493 { "GPDR0_9",  0x40E0000C,  9, 0x00000001, 'd', "GPIO 9 i/o direction (1=output)" },
494 { "GPDR0_10", 0x40E0000C, 10, 0x00000001, 'd', "GPIO 10 i/o direction (1=output)" },
495 { "GPDR0_11", 0x40E0000C, 11, 0x00000001, 'd', "GPIO 11 i/o direction (1=output)" },
496 { "GPDR0_12", 0x40E0000C, 12, 0x00000001, 'd', "GPIO 12 i/o direction (1=output)" },
497 { "GPDR0_13", 0x40E0000C, 13, 0x00000001, 'd', "GPIO 13 i/o direction (1=output)" },
498 { "GPDR0_14", 0x40E0000C, 14, 0x00000001, 'd', "GPIO 14 i/o direction (1=output)" },
499 { "GPDR0_15", 0x40E0000C, 15, 0x00000001, 'd', "GPIO 15 i/o direction (1=output)" },
500 { "GPDR0_16", 0x40E0000C, 16, 0x00000001, 'd', "GPIO 16 i/o direction (1=output)" },
501 { "GPDR0_17", 0x40E0000C, 17, 0x00000001, 'd', "GPIO 17 i/o direction (1=output)" },
502 { "GPDR0_18", 0x40E0000C, 18, 0x00000001, 'd', "GPIO 18 i/o direction (1=output)" },
503 { "GPDR0_19", 0x40E0000C, 19, 0x00000001, 'd', "GPIO 19 i/o direction (1=output)" },
504 { "GPDR0_20", 0x40E0000C, 20, 0x00000001, 'd', "GPIO 20 i/o direction (1=output)" },
505 { "GPDR0_21", 0x40E0000C, 21, 0x00000001, 'd', "GPIO 21 i/o direction (1=output)" },
506 { "GPDR0_22", 0x40E0000C, 22, 0x00000001, 'd', "GPIO 22 i/o direction (1=output)" },
507 { "GPDR0_23", 0x40E0000C, 23, 0x00000001, 'd', "GPIO 23 i/o direction (1=output)" },
508 { "GPDR0_24", 0x40E0000C, 24, 0x00000001, 'd', "GPIO 24 i/o direction (1=output)" },
509 { "GPDR0_25", 0x40E0000C, 25, 0x00000001, 'd', "GPIO 25 i/o direction (1=output)" },
510 { "GPDR0_26", 0x40E0000C, 26, 0x00000001, 'd', "GPIO 26 i/o direction (1=output)" },
511 { "GPDR0_27", 0x40E0000C, 27, 0x00000001, 'd', "GPIO 27 i/o direction (1=output)" },
512 { "GPDR0_28", 0x40E0000C, 28, 0x00000001, 'd', "GPIO 28 i/o direction (1=output)" },
513 { "GPDR0_29", 0x40E0000C, 29, 0x00000001, 'd', "GPIO 29 i/o direction (1=output)" },
514 { "GPDR0_30", 0x40E0000C, 30, 0x00000001, 'd', "GPIO 30 i/o direction (1=output)" },
515 { "GPDR0_31", 0x40E0000C, 31, 0x00000001, 'd', "GPIO 31 i/o direction (1=output)" },
516 
517 { "GPDR1",    0x40E00010,  0, 0xffffffff, 'x', "GPIO Direction Register 1 (4-9)" },
518 { "GPDR1_32", 0x40E00010,  0, 0x00000001, 'd', "GPIO 32 i/o direction (1=output)" },
519 { "GPDR1_33", 0x40E00010,  1, 0x00000001, 'd', "GPIO 33 i/o direction (1=output)" },
520 { "GPDR1_34", 0x40E00010,  2, 0x00000001, 'd', "GPIO 34 i/o direction (1=output)" },
521 { "GPDR1_35", 0x40E00010,  3, 0x00000001, 'd', "GPIO 35 i/o direction (1=output)" },
522 { "GPDR1_36", 0x40E00010,  4, 0x00000001, 'd', "GPIO 36 i/o direction (1=output)" },
523 { "GPDR1_37", 0x40E00010,  5, 0x00000001, 'd', "GPIO 37 i/o direction (1=output)" },
524 { "GPDR1_38", 0x40E00010,  6, 0x00000001, 'd', "GPIO 38 i/o direction (1=output)" },
525 { "GPDR1_39", 0x40E00010,  7, 0x00000001, 'd', "GPIO 39 i/o direction (1=output)" },
526 { "GPDR1_40", 0x40E00010,  8, 0x00000001, 'd', "GPIO 40 i/o direction (1=output)" },
527 { "GPDR1_41", 0x40E00010,  9, 0x00000001, 'd', "GPIO 41 i/o direction (1=output)" },
528 { "GPDR1_42", 0x40E00010, 10, 0x00000001, 'd', "GPIO 42 i/o direction (1=output)" },
529 { "GPDR1_43", 0x40E00010, 11, 0x00000001, 'd', "GPIO 43 i/o direction (1=output)" },
530 { "GPDR1_44", 0x40E00010, 12, 0x00000001, 'd', "GPIO 44 i/o direction (1=output)" },
531 { "GPDR1_45", 0x40E00010, 13, 0x00000001, 'd', "GPIO 45 i/o direction (1=output)" },
532 { "GPDR1_46", 0x40E00010, 14, 0x00000001, 'd', "GPIO 46 i/o direction (1=output)" },
533 { "GPDR1_47", 0x40E00010, 15, 0x00000001, 'd', "GPIO 47 i/o direction (1=output)" },
534 { "GPDR1_48", 0x40E00010, 16, 0x00000001, 'd', "GPIO 48 i/o direction (1=output)" },
535 { "GPDR1_49", 0x40E00010, 17, 0x00000001, 'd', "GPIO 49 i/o direction (1=output)" },
536 { "GPDR1_50", 0x40E00010, 18, 0x00000001, 'd', "GPIO 50 i/o direction (1=output)" },
537 { "GPDR1_51", 0x40E00010, 19, 0x00000001, 'd', "GPIO 51 i/o direction (1=output)" },
538 { "GPDR1_52", 0x40E00010, 20, 0x00000001, 'd', "GPIO 52 i/o direction (1=output)" },
539 { "GPDR1_53", 0x40E00010, 21, 0x00000001, 'd', "GPIO 53 i/o direction (1=output)" },
540 { "GPDR1_54", 0x40E00010, 22, 0x00000001, 'd', "GPIO 54 i/o direction (1=output)" },
541 { "GPDR1_55", 0x40E00010, 23, 0x00000001, 'd', "GPIO 55 i/o direction (1=output)" },
542 { "GPDR1_56", 0x40E00010, 24, 0x00000001, 'd', "GPIO 56 i/o direction (1=output)" },
543 { "GPDR1_57", 0x40E00010, 25, 0x00000001, 'd', "GPIO 57 i/o direction (1=output)" },
544 { "GPDR1_58", 0x40E00010, 26, 0x00000001, 'd', "GPIO 58 i/o direction (1=output)" },
545 { "GPDR1_59", 0x40E00010, 27, 0x00000001, 'd', "GPIO 59 i/o direction (1=output)" },
546 { "GPDR1_60", 0x40E00010, 28, 0x00000001, 'd', "GPIO 60 i/o direction (1=output)" },
547 { "GPDR1_61", 0x40E00010, 29, 0x00000001, 'd', "GPIO 61 i/o direction (1=output)" },
548 { "GPDR1_62", 0x40E00010, 30, 0x00000001, 'd', "GPIO 62 i/o direction (1=output)" },
549 { "GPDR1_63", 0x40E00010, 31, 0x00000001, 'd', "GPIO 63 i/o direction (1=output)" },
550 
551 { "GPDR2",    0x40E00014,  0, 0xffffffff, 'x', "GPIO Direction Register 2 (4-9)" },
552 { "GPDR2_64", 0x40E00014,  0, 0x00000001, 'd', "GPIO 64 i/o direction (1=output)" },
553 { "GPDR2_65", 0x40E00014,  1, 0x00000001, 'd', "GPIO 65 i/o direction (1=output)" },
554 { "GPDR2_66", 0x40E00014,  2, 0x00000001, 'd', "GPIO 66 i/o direction (1=output)" },
555 { "GPDR2_67", 0x40E00014,  3, 0x00000001, 'd', "GPIO 67 i/o direction (1=output)" },
556 { "GPDR2_68", 0x40E00014,  4, 0x00000001, 'd', "GPIO 68 i/o direction (1=output)" },
557 { "GPDR2_69", 0x40E00014,  5, 0x00000001, 'd', "GPIO 69 i/o direction (1=output)" },
558 { "GPDR2_70", 0x40E00014,  6, 0x00000001, 'd', "GPIO 70 i/o direction (1=output)" },
559 { "GPDR2_71", 0x40E00014,  7, 0x00000001, 'd', "GPIO 71 i/o direction (1=output)" },
560 { "GPDR2_72", 0x40E00014,  8, 0x00000001, 'd', "GPIO 72 i/o direction (1=output)" },
561 { "GPDR2_73", 0x40E00014,  9, 0x00000001, 'd', "GPIO 73 i/o direction (1=output)" },
562 { "GPDR2_74", 0x40E00014, 10, 0x00000001, 'd', "GPIO 74 i/o direction (1=output)" },
563 { "GPDR2_75", 0x40E00014, 11, 0x00000001, 'd', "GPIO 75 i/o direction (1=output)" },
564 { "GPDR2_76", 0x40E00014, 12, 0x00000001, 'd', "GPIO 76 i/o direction (1=output)" },
565 { "GPDR2_77", 0x40E00014, 13, 0x00000001, 'd', "GPIO 77 i/o direction (1=output)" },
566 { "GPDR2_78", 0x40E00014, 14, 0x00000001, 'd', "GPIO 78 i/o direction (1=output)" },
567 { "GPDR2_79", 0x40E00014, 15, 0x00000001, 'd', "GPIO 79 i/o direction (1=output)" },
568 { "GPDR2_80", 0x40E00014, 16, 0x00000001, 'd', "GPIO 80 i/o direction (1=output)" },
569 { "GPDR2_81", 0x40E00014, 17, 0x00000001, 'd', "GPIO 81 i/o direction (1=output)" },
570 { "GPDR2_82", 0x40E00014, 18, 0x00000001, 'd', "GPIO 82 i/o direction (1=output)" },
571 { "GPDR2_83", 0x40E00014, 19, 0x00000001, 'd', "GPIO 83 i/o direction (1=output)" },
572 { "GPDR2_84", 0x40E00014, 20, 0x00000001, 'd', "GPIO 84 i/o direction (1=output)" },
573 
574 { "GPSR0",    0x40E00018,  0, 0xffffffff, 'x', "GPIO Set Register 0 (4-10)" },
575 { "GPSR0_0",  0x40E00018,  0, 0x00000001, 'd', "GPIO 0 set" },
576 { "GPSR0_1",  0x40E00018,  1, 0x00000001, 'd', "GPIO 1 set" },
577 { "GPSR0_2",  0x40E00018,  2, 0x00000001, 'd', "GPIO 2 set" },
578 { "GPSR0_3",  0x40E00018,  3, 0x00000001, 'd', "GPIO 3 set" },
579 { "GPSR0_4",  0x40E00018,  4, 0x00000001, 'd', "GPIO 4 set" },
580 { "GPSR0_5",  0x40E00018,  5, 0x00000001, 'd', "GPIO 5 set" },
581 { "GPSR0_6",  0x40E00018,  6, 0x00000001, 'd', "GPIO 6 set" },
582 { "GPSR0_7",  0x40E00018,  7, 0x00000001, 'd', "GPIO 7 set" },
583 { "GPSR0_8",  0x40E00018,  8, 0x00000001, 'd', "GPIO 8 set" },
584 { "GPSR0_9",  0x40E00018,  9, 0x00000001, 'd', "GPIO 9 set" },
585 { "GPSR0_10", 0x40E00018, 10, 0x00000001, 'd', "GPIO 10 set" },
586 { "GPSR0_11", 0x40E00018, 11, 0x00000001, 'd', "GPIO 11 set" },
587 { "GPSR0_12", 0x40E00018, 12, 0x00000001, 'd', "GPIO 12 set" },
588 { "GPSR0_13", 0x40E00018, 13, 0x00000001, 'd', "GPIO 13 set" },
589 { "GPSR0_14", 0x40E00018, 14, 0x00000001, 'd', "GPIO 14 set" },
590 { "GPSR0_15", 0x40E00018, 15, 0x00000001, 'd', "GPIO 15 set" },
591 { "GPSR0_16", 0x40E00018, 16, 0x00000001, 'd', "GPIO 16 set" },
592 { "GPSR0_17", 0x40E00018, 17, 0x00000001, 'd', "GPIO 17 set" },
593 { "GPSR0_18", 0x40E00018, 18, 0x00000001, 'd', "GPIO 18 set" },
594 { "GPSR0_19", 0x40E00018, 19, 0x00000001, 'd', "GPIO 19 set" },
595 { "GPSR0_20", 0x40E00018, 20, 0x00000001, 'd', "GPIO 20 set" },
596 { "GPSR0_21", 0x40E00018, 21, 0x00000001, 'd', "GPIO 21 set" },
597 { "GPSR0_22", 0x40E00018, 22, 0x00000001, 'd', "GPIO 22 set" },
598 { "GPSR0_23", 0x40E00018, 23, 0x00000001, 'd', "GPIO 23 set" },
599 { "GPSR0_24", 0x40E00018, 24, 0x00000001, 'd', "GPIO 24 set" },
600 { "GPSR0_25", 0x40E00018, 25, 0x00000001, 'd', "GPIO 25 set" },
601 { "GPSR0_26", 0x40E00018, 26, 0x00000001, 'd', "GPIO 26 set" },
602 { "GPSR0_27", 0x40E00018, 27, 0x00000001, 'd', "GPIO 27 set" },
603 { "GPSR0_28", 0x40E00018, 28, 0x00000001, 'd', "GPIO 28 set" },
604 { "GPSR0_29", 0x40E00018, 29, 0x00000001, 'd', "GPIO 29 set" },
605 { "GPSR0_30", 0x40E00018, 30, 0x00000001, 'd', "GPIO 30 set" },
606 { "GPSR0_31", 0x40E00018, 31, 0x00000001, 'd', "GPIO 31 set" },
607 
608 { "GPSR1",    0x40E0001C,  0, 0xffffffff, 'x', "GPIO Set Register 1 (4-10)" },
609 { "GPSR1_32", 0x40E0001C,  0, 0x00000001, 'd', "GPIO 32 set" },
610 { "GPSR1_33", 0x40E0001C,  1, 0x00000001, 'd', "GPIO 33 set" },
611 { "GPSR1_34", 0x40E0001C,  2, 0x00000001, 'd', "GPIO 34 set" },
612 { "GPSR1_35", 0x40E0001C,  3, 0x00000001, 'd', "GPIO 35 set" },
613 { "GPSR1_36", 0x40E0001C,  4, 0x00000001, 'd', "GPIO 36 set" },
614 { "GPSR1_37", 0x40E0001C,  5, 0x00000001, 'd', "GPIO 37 set" },
615 { "GPSR1_38", 0x40E0001C,  6, 0x00000001, 'd', "GPIO 38 set" },
616 { "GPSR1_39", 0x40E0001C,  7, 0x00000001, 'd', "GPIO 39 set" },
617 { "GPSR1_40", 0x40E0001C,  8, 0x00000001, 'd', "GPIO 40 set" },
618 { "GPSR1_41", 0x40E0001C,  9, 0x00000001, 'd', "GPIO 41 set" },
619 { "GPSR1_42", 0x40E0001C, 10, 0x00000001, 'd', "GPIO 42 set" },
620 { "GPSR1_43", 0x40E0001C, 11, 0x00000001, 'd', "GPIO 43 set" },
621 { "GPSR1_44", 0x40E0001C, 12, 0x00000001, 'd', "GPIO 44 set" },
622 { "GPSR1_45", 0x40E0001C, 13, 0x00000001, 'd', "GPIO 45 set" },
623 { "GPSR1_46", 0x40E0001C, 14, 0x00000001, 'd', "GPIO 46 set" },
624 { "GPSR1_47", 0x40E0001C, 15, 0x00000001, 'd', "GPIO 47 set" },
625 { "GPSR1_48", 0x40E0001C, 16, 0x00000001, 'd', "GPIO 48 set" },
626 { "GPSR1_49", 0x40E0001C, 17, 0x00000001, 'd', "GPIO 49 set" },
627 { "GPSR1_50", 0x40E0001C, 18, 0x00000001, 'd', "GPIO 50 set" },
628 { "GPSR1_51", 0x40E0001C, 19, 0x00000001, 'd', "GPIO 51 set" },
629 { "GPSR1_52", 0x40E0001C, 20, 0x00000001, 'd', "GPIO 52 set" },
630 { "GPSR1_53", 0x40E0001C, 21, 0x00000001, 'd', "GPIO 53 set" },
631 { "GPSR1_54", 0x40E0001C, 22, 0x00000001, 'd', "GPIO 54 set" },
632 { "GPSR1_55", 0x40E0001C, 23, 0x00000001, 'd', "GPIO 55 set" },
633 { "GPSR1_56", 0x40E0001C, 24, 0x00000001, 'd', "GPIO 56 set" },
634 { "GPSR1_57", 0x40E0001C, 25, 0x00000001, 'd', "GPIO 57 set" },
635 { "GPSR1_58", 0x40E0001C, 26, 0x00000001, 'd', "GPIO 58 set" },
636 { "GPSR1_59", 0x40E0001C, 27, 0x00000001, 'd', "GPIO 59 set" },
637 { "GPSR1_60", 0x40E0001C, 28, 0x00000001, 'd', "GPIO 60 set" },
638 { "GPSR1_61", 0x40E0001C, 29, 0x00000001, 'd', "GPIO 61 set" },
639 { "GPSR1_62", 0x40E0001C, 30, 0x00000001, 'd', "GPIO 62 set" },
640 { "GPSR1_63", 0x40E0001C, 31, 0x00000001, 'd', "GPIO 63 set" },
641 
642 { "GPSR2",    0x40E00020,  0, 0xffffffff, 'x', "GPIO Set Register 2 (4-11)" },
643 { "GPSR2_64", 0x40E00020,  0, 0x00000001, 'd', "GPIO 64 set" },
644 { "GPSR2_65", 0x40E00020,  1, 0x00000001, 'd', "GPIO 65 set" },
645 { "GPSR2_66", 0x40E00020,  2, 0x00000001, 'd', "GPIO 66 set" },
646 { "GPSR2_67", 0x40E00020,  3, 0x00000001, 'd', "GPIO 67 set" },
647 { "GPSR2_68", 0x40E00020,  4, 0x00000001, 'd', "GPIO 68 set" },
648 { "GPSR2_69", 0x40E00020,  5, 0x00000001, 'd', "GPIO 69 set" },
649 { "GPSR2_70", 0x40E00020,  6, 0x00000001, 'd', "GPIO 70 set" },
650 { "GPSR2_71", 0x40E00020,  7, 0x00000001, 'd', "GPIO 71 set" },
651 { "GPSR2_72", 0x40E00020,  8, 0x00000001, 'd', "GPIO 72 set" },
652 { "GPSR2_73", 0x40E00020,  9, 0x00000001, 'd', "GPIO 73 set" },
653 { "GPSR2_74", 0x40E00020, 10, 0x00000001, 'd', "GPIO 74 set" },
654 { "GPSR2_75", 0x40E00020, 11, 0x00000001, 'd', "GPIO 75 set" },
655 { "GPSR2_76", 0x40E00020, 12, 0x00000001, 'd', "GPIO 76 set" },
656 { "GPSR2_77", 0x40E00020, 13, 0x00000001, 'd', "GPIO 77 set" },
657 { "GPSR2_78", 0x40E00020, 14, 0x00000001, 'd', "GPIO 78 set" },
658 { "GPSR2_79", 0x40E00020, 15, 0x00000001, 'd', "GPIO 79 set" },
659 { "GPSR2_80", 0x40E00020, 16, 0x00000001, 'd', "GPIO 80 set" },
660 { "GPSR2_81", 0x40E00020, 17, 0x00000001, 'd', "GPIO 81 set" },
661 { "GPSR2_82", 0x40E00020, 18, 0x00000001, 'd', "GPIO 82 set" },
662 { "GPSR2_83", 0x40E00020, 19, 0x00000001, 'd', "GPIO 83 set" },
663 { "GPSR2_84", 0x40E00020, 20, 0x00000001, 'd', "GPIO 84 set" },
664 
665 { "GPCR0",    0x40E00024,  0, 0xffffffff, 'x', "GPIO Clear Register 0 (4-11)" },
666 { "GPCR0_0",  0x40E00024,  0, 0x00000001, 'd', "GPIO 0 clear" },
667 { "GPCR0_1",  0x40E00024,  1, 0x00000001, 'd', "GPIO 1 clear" },
668 { "GPCR0_2",  0x40E00024,  2, 0x00000001, 'd', "GPIO 2 clear" },
669 { "GPCR0_3",  0x40E00024,  3, 0x00000001, 'd', "GPIO 3 clear" },
670 { "GPCR0_4",  0x40E00024,  4, 0x00000001, 'd', "GPIO 4 clear" },
671 { "GPCR0_5",  0x40E00024,  5, 0x00000001, 'd', "GPIO 5 clear" },
672 { "GPCR0_6",  0x40E00024,  6, 0x00000001, 'd', "GPIO 6 clear" },
673 { "GPCR0_7",  0x40E00024,  7, 0x00000001, 'd', "GPIO 7 clear" },
674 { "GPCR0_8",  0x40E00024,  8, 0x00000001, 'd', "GPIO 8 clear" },
675 { "GPCR0_9",  0x40E00024,  9, 0x00000001, 'd', "GPIO 9 clear" },
676 { "GPCR0_10", 0x40E00024, 10, 0x00000001, 'd', "GPIO 10 clear" },
677 { "GPCR0_11", 0x40E00024, 11, 0x00000001, 'd', "GPIO 11 clear" },
678 { "GPCR0_12", 0x40E00024, 12, 0x00000001, 'd', "GPIO 12 clear" },
679 { "GPCR0_13", 0x40E00024, 13, 0x00000001, 'd', "GPIO 13 clear" },
680 { "GPCR0_14", 0x40E00024, 14, 0x00000001, 'd', "GPIO 14 clear" },
681 { "GPCR0_15", 0x40E00024, 15, 0x00000001, 'd', "GPIO 15 clear" },
682 { "GPCR0_16", 0x40E00024, 16, 0x00000001, 'd', "GPIO 16 clear" },
683 { "GPCR0_17", 0x40E00024, 17, 0x00000001, 'd', "GPIO 17 clear" },
684 { "GPCR0_18", 0x40E00024, 18, 0x00000001, 'd', "GPIO 18 clear" },
685 { "GPCR0_19", 0x40E00024, 19, 0x00000001, 'd', "GPIO 19 clear" },
686 { "GPCR0_20", 0x40E00024, 20, 0x00000001, 'd', "GPIO 20 clear" },
687 { "GPCR0_21", 0x40E00024, 21, 0x00000001, 'd', "GPIO 21 clear" },
688 { "GPCR0_22", 0x40E00024, 22, 0x00000001, 'd', "GPIO 22 clear" },
689 { "GPCR0_23", 0x40E00024, 23, 0x00000001, 'd', "GPIO 23 clear" },
690 { "GPCR0_24", 0x40E00024, 24, 0x00000001, 'd', "GPIO 24 clear" },
691 { "GPCR0_25", 0x40E00024, 25, 0x00000001, 'd', "GPIO 25 clear" },
692 { "GPCR0_26", 0x40E00024, 26, 0x00000001, 'd', "GPIO 26 clear" },
693 { "GPCR0_27", 0x40E00024, 27, 0x00000001, 'd', "GPIO 27 clear" },
694 { "GPCR0_28", 0x40E00024, 28, 0x00000001, 'd', "GPIO 28 clear" },
695 { "GPCR0_29", 0x40E00024, 29, 0x00000001, 'd', "GPIO 29 clear" },
696 { "GPCR0_30", 0x40E00024, 30, 0x00000001, 'd', "GPIO 30 clear" },
697 { "GPCR0_31", 0x40E00024, 31, 0x00000001, 'd', "GPIO 31 clear" },
698 
699 { "GPCR1",    0x40E00028,  0, 0xffffffff, 'x', "GPIO Clear Register 1 (4-11)" },
700 { "GPCR1_32", 0x40E00028,  0, 0x00000001, 'd', "GPIO 32 clear" },
701 { "GPCR1_33", 0x40E00028,  1, 0x00000001, 'd', "GPIO 33 clear" },
702 { "GPCR1_34", 0x40E00028,  2, 0x00000001, 'd', "GPIO 34 clear" },
703 { "GPCR1_35", 0x40E00028,  3, 0x00000001, 'd', "GPIO 35 clear" },
704 { "GPCR1_36", 0x40E00028,  4, 0x00000001, 'd', "GPIO 36 clear" },
705 { "GPCR1_37", 0x40E00028,  5, 0x00000001, 'd', "GPIO 37 clear" },
706 { "GPCR1_38", 0x40E00028,  6, 0x00000001, 'd', "GPIO 38 clear" },
707 { "GPCR1_39", 0x40E00028,  7, 0x00000001, 'd', "GPIO 39 clear" },
708 { "GPCR1_40", 0x40E00028,  8, 0x00000001, 'd', "GPIO 40 clear" },
709 { "GPCR1_41", 0x40E00028,  9, 0x00000001, 'd', "GPIO 41 clear" },
710 { "GPCR1_42", 0x40E00028, 10, 0x00000001, 'd', "GPIO 42 clear" },
711 { "GPCR1_43", 0x40E00028, 11, 0x00000001, 'd', "GPIO 43 clear" },
712 { "GPCR1_44", 0x40E00028, 12, 0x00000001, 'd', "GPIO 44 clear" },
713 { "GPCR1_45", 0x40E00028, 13, 0x00000001, 'd', "GPIO 45 clear" },
714 { "GPCR1_46", 0x40E00028, 14, 0x00000001, 'd', "GPIO 46 clear" },
715 { "GPCR1_47", 0x40E00028, 15, 0x00000001, 'd', "GPIO 47 clear" },
716 { "GPCR1_48", 0x40E00028, 16, 0x00000001, 'd', "GPIO 48 clear" },
717 { "GPCR1_49", 0x40E00028, 17, 0x00000001, 'd', "GPIO 49 clear" },
718 { "GPCR1_50", 0x40E00028, 18, 0x00000001, 'd', "GPIO 50 clear" },
719 { "GPCR1_51", 0x40E00028, 19, 0x00000001, 'd', "GPIO 51 clear" },
720 { "GPCR1_52", 0x40E00028, 20, 0x00000001, 'd', "GPIO 52 clear" },
721 { "GPCR1_53", 0x40E00028, 21, 0x00000001, 'd', "GPIO 53 clear" },
722 { "GPCR1_54", 0x40E00028, 22, 0x00000001, 'd', "GPIO 54 clear" },
723 { "GPCR1_55", 0x40E00028, 23, 0x00000001, 'd', "GPIO 55 clear" },
724 { "GPCR1_56", 0x40E00028, 24, 0x00000001, 'd', "GPIO 56 clear" },
725 { "GPCR1_57", 0x40E00028, 25, 0x00000001, 'd', "GPIO 57 clear" },
726 { "GPCR1_58", 0x40E00028, 26, 0x00000001, 'd', "GPIO 58 clear" },
727 { "GPCR1_59", 0x40E00028, 27, 0x00000001, 'd', "GPIO 59 clear" },
728 { "GPCR1_60", 0x40E00028, 28, 0x00000001, 'd', "GPIO 60 clear" },
729 { "GPCR1_61", 0x40E00028, 29, 0x00000001, 'd', "GPIO 61 clear" },
730 { "GPCR1_62", 0x40E00028, 30, 0x00000001, 'd', "GPIO 62 clear" },
731 { "GPCR1_63", 0x40E00028, 31, 0x00000001, 'd', "GPIO 63 clear" },
732 
733 { "GPCR2",    0x40E0002C,  0, 0xffffffff, 'x', "GPIO Clear Register 2 (4-12)" },
734 { "GPCR2_64", 0x40E0002C,  0, 0x00000001, 'd', "GPIO 64 clear" },
735 { "GPCR2_65", 0x40E0002C,  1, 0x00000001, 'd', "GPIO 65 clear" },
736 { "GPCR2_66", 0x40E0002C,  2, 0x00000001, 'd', "GPIO 66 clear" },
737 { "GPCR2_67", 0x40E0002C,  3, 0x00000001, 'd', "GPIO 67 clear" },
738 { "GPCR2_68", 0x40E0002C,  4, 0x00000001, 'd', "GPIO 68 clear" },
739 { "GPCR2_69", 0x40E0002C,  5, 0x00000001, 'd', "GPIO 69 clear" },
740 { "GPCR2_70", 0x40E0002C,  6, 0x00000001, 'd', "GPIO 70 clear" },
741 { "GPCR2_71", 0x40E0002C,  7, 0x00000001, 'd', "GPIO 71 clear" },
742 { "GPCR2_72", 0x40E0002C,  8, 0x00000001, 'd', "GPIO 72 clear" },
743 { "GPCR2_73", 0x40E0002C,  9, 0x00000001, 'd', "GPIO 73 clear" },
744 { "GPCR2_74", 0x40E0002C, 10, 0x00000001, 'd', "GPIO 74 clear" },
745 { "GPCR2_75", 0x40E0002C, 11, 0x00000001, 'd', "GPIO 75 clear" },
746 { "GPCR2_76", 0x40E0002C, 12, 0x00000001, 'd', "GPIO 76 clear" },
747 { "GPCR2_77", 0x40E0002C, 13, 0x00000001, 'd', "GPIO 77 clear" },
748 { "GPCR2_78", 0x40E0002C, 14, 0x00000001, 'd', "GPIO 78 clear" },
749 { "GPCR2_79", 0x40E0002C, 15, 0x00000001, 'd', "GPIO 79 clear" },
750 { "GPCR2_80", 0x40E0002C, 16, 0x00000001, 'd', "GPIO 80 clear" },
751 { "GPCR2_81", 0x40E0002C, 17, 0x00000001, 'd', "GPIO 81 clear" },
752 { "GPCR2_82", 0x40E0002C, 18, 0x00000001, 'd', "GPIO 82 clear" },
753 { "GPCR2_83", 0x40E0002C, 19, 0x00000001, 'd', "GPIO 83 clear" },
754 { "GPCR2_84", 0x40E0002C, 20, 0x00000001, 'd', "GPIO 84 clear" },
755 
756 { "GRER0",    0x40E00030,  0, 0xffffffff, 'x', "GPIO Raising Edge Detect Enable Register 0 (4-13)" },
757 { "GRER0_0",  0x40E00030,  0, 0x00000001, 'd', "GPIO 0 raising edge detect enabled" },
758 { "GRER0_1",  0x40E00030,  1, 0x00000001, 'd', "GPIO 1 raising edge detect enabled" },
759 { "GRER0_2",  0x40E00030,  2, 0x00000001, 'd', "GPIO 2 raising edge detect enabled" },
760 { "GRER0_3",  0x40E00030,  3, 0x00000001, 'd', "GPIO 3 raising edge detect enabled" },
761 { "GRER0_4",  0x40E00030,  4, 0x00000001, 'd', "GPIO 4 raising edge detect enabled" },
762 { "GRER0_5",  0x40E00030,  5, 0x00000001, 'd', "GPIO 5 raising edge detect enabled" },
763 { "GRER0_6",  0x40E00030,  6, 0x00000001, 'd', "GPIO 6 raising edge detect enabled" },
764 { "GRER0_7",  0x40E00030,  7, 0x00000001, 'd', "GPIO 7 raising edge detect enabled" },
765 { "GRER0_8",  0x40E00030,  8, 0x00000001, 'd', "GPIO 8 raising edge detect enabled" },
766 { "GRER0_9",  0x40E00030,  9, 0x00000001, 'd', "GPIO 9 raising edge detect enabled" },
767 { "GRER0_10", 0x40E00030, 10, 0x00000001, 'd', "GPIO 10 raising edge detect enabled" },
768 { "GRER0_11", 0x40E00030, 11, 0x00000001, 'd', "GPIO 11 raising edge detect enabled" },
769 { "GRER0_12", 0x40E00030, 12, 0x00000001, 'd', "GPIO 12 raising edge detect enabled" },
770 { "GRER0_13", 0x40E00030, 13, 0x00000001, 'd', "GPIO 13 raising edge detect enabled" },
771 { "GRER0_14", 0x40E00030, 14, 0x00000001, 'd', "GPIO 14 raising edge detect enabled" },
772 { "GRER0_15", 0x40E00030, 15, 0x00000001, 'd', "GPIO 15 raising edge detect enabled" },
773 { "GRER0_16", 0x40E00030, 16, 0x00000001, 'd', "GPIO 16 raising edge detect enabled" },
774 { "GRER0_17", 0x40E00030, 17, 0x00000001, 'd', "GPIO 17 raising edge detect enabled" },
775 { "GRER0_18", 0x40E00030, 18, 0x00000001, 'd', "GPIO 18 raising edge detect enabled" },
776 { "GRER0_19", 0x40E00030, 19, 0x00000001, 'd', "GPIO 19 raising edge detect enabled" },
777 { "GRER0_20", 0x40E00030, 20, 0x00000001, 'd', "GPIO 20 raising edge detect enabled" },
778 { "GRER0_21", 0x40E00030, 21, 0x00000001, 'd', "GPIO 21 raising edge detect enabled" },
779 { "GRER0_22", 0x40E00030, 22, 0x00000001, 'd', "GPIO 22 raising edge detect enabled" },
780 { "GRER0_23", 0x40E00030, 23, 0x00000001, 'd', "GPIO 23 raising edge detect enabled" },
781 { "GRER0_24", 0x40E00030, 24, 0x00000001, 'd', "GPIO 24 raising edge detect enabled" },
782 { "GRER0_25", 0x40E00030, 25, 0x00000001, 'd', "GPIO 25 raising edge detect enabled" },
783 { "GRER0_26", 0x40E00030, 26, 0x00000001, 'd', "GPIO 26 raising edge detect enabled" },
784 { "GRER0_27", 0x40E00030, 27, 0x00000001, 'd', "GPIO 27 raising edge detect enabled" },
785 { "GRER0_28", 0x40E00030, 28, 0x00000001, 'd', "GPIO 28 raising edge detect enabled" },
786 { "GRER0_29", 0x40E00030, 29, 0x00000001, 'd', "GPIO 29 raising edge detect enabled" },
787 { "GRER0_30", 0x40E00030, 30, 0x00000001, 'd', "GPIO 30 raising edge detect enabled" },
788 { "GRER0_31", 0x40E00030, 31, 0x00000001, 'd', "GPIO 31 raising edge detect enabled" },
789 
790 { "GRER1",    0x40E00034,  0, 0xffffffff, 'x', "GPIO Raising Edge Detect Enable Register 1 (4-13)" },
791 { "GRER1_32", 0x40E00034,  0, 0x00000001, 'd', "GPIO 32 raising edge detect enabled" },
792 { "GRER1_33", 0x40E00034,  1, 0x00000001, 'd', "GPIO 33 raising edge detect enabled" },
793 { "GRER1_34", 0x40E00034,  2, 0x00000001, 'd', "GPIO 34 raising edge detect enabled" },
794 { "GRER1_35", 0x40E00034,  3, 0x00000001, 'd', "GPIO 35 raising edge detect enabled" },
795 { "GRER1_36", 0x40E00034,  4, 0x00000001, 'd', "GPIO 36 raising edge detect enabled" },
796 { "GRER1_37", 0x40E00034,  5, 0x00000001, 'd', "GPIO 37 raising edge detect enabled" },
797 { "GRER1_38", 0x40E00034,  6, 0x00000001, 'd', "GPIO 38 raising edge detect enabled" },
798 { "GRER1_39", 0x40E00034,  7, 0x00000001, 'd', "GPIO 39 raising edge detect enabled" },
799 { "GRER1_40", 0x40E00034,  8, 0x00000001, 'd', "GPIO 40 raising edge detect enabled" },
800 { "GRER1_41", 0x40E00034,  9, 0x00000001, 'd', "GPIO 41 raising edge detect enabled" },
801 { "GRER1_42", 0x40E00034, 10, 0x00000001, 'd', "GPIO 42 raising edge detect enabled" },
802 { "GRER1_43", 0x40E00034, 11, 0x00000001, 'd', "GPIO 43 raising edge detect enabled" },
803 { "GRER1_44", 0x40E00034, 12, 0x00000001, 'd', "GPIO 44 raising edge detect enabled" },
804 { "GRER1_45", 0x40E00034, 13, 0x00000001, 'd', "GPIO 45 raising edge detect enabled" },
805 { "GRER1_46", 0x40E00034, 14, 0x00000001, 'd', "GPIO 46 raising edge detect enabled" },
806 { "GRER1_47", 0x40E00034, 15, 0x00000001, 'd', "GPIO 47 raising edge detect enabled" },
807 { "GRER1_48", 0x40E00034, 16, 0x00000001, 'd', "GPIO 48 raising edge detect enabled" },
808 { "GRER1_49", 0x40E00034, 17, 0x00000001, 'd', "GPIO 49 raising edge detect enabled" },
809 { "GRER1_50", 0x40E00034, 18, 0x00000001, 'd', "GPIO 50 raising edge detect enabled" },
810 { "GRER1_51", 0x40E00034, 19, 0x00000001, 'd', "GPIO 51 raising edge detect enabled" },
811 { "GRER1_52", 0x40E00034, 20, 0x00000001, 'd', "GPIO 52 raising edge detect enabled" },
812 { "GRER1_53", 0x40E00034, 21, 0x00000001, 'd', "GPIO 53 raising edge detect enabled" },
813 { "GRER1_54", 0x40E00034, 22, 0x00000001, 'd', "GPIO 54 raising edge detect enabled" },
814 { "GRER1_55", 0x40E00034, 23, 0x00000001, 'd', "GPIO 55 raising edge detect enabled" },
815 { "GRER1_56", 0x40E00034, 24, 0x00000001, 'd', "GPIO 56 raising edge detect enabled" },
816 { "GRER1_57", 0x40E00034, 25, 0x00000001, 'd', "GPIO 57 raising edge detect enabled" },
817 { "GRER1_58", 0x40E00034, 26, 0x00000001, 'd', "GPIO 58 raising edge detect enabled" },
818 { "GRER1_59", 0x40E00034, 27, 0x00000001, 'd', "GPIO 59 raising edge detect enabled" },
819 { "GRER1_60", 0x40E00034, 28, 0x00000001, 'd', "GPIO 60 raising edge detect enabled" },
820 { "GRER1_61", 0x40E00034, 29, 0x00000001, 'd', "GPIO 61 raising edge detect enabled" },
821 { "GRER1_62", 0x40E00034, 30, 0x00000001, 'd', "GPIO 62 raising edge detect enabled" },
822 { "GRER1_63", 0x40E00034, 31, 0x00000001, 'd', "GPIO 63 raising edge detect enabled" },
823 
824 { "GRER2",    0x40E00038,  0, 0xffffffff, 'x', "GPIO Raising Edge Detect Enable Register 2 (4-13)" },
825 { "GRER2_64", 0x40E00038,  0, 0x00000001, 'd', "GPIO 64 raising edge detect enabled" },
826 { "GRER2_65", 0x40E00038,  1, 0x00000001, 'd', "GPIO 65 raising edge detect enabled" },
827 { "GRER2_66", 0x40E00038,  2, 0x00000001, 'd', "GPIO 66 raising edge detect enabled" },
828 { "GRER2_67", 0x40E00038,  3, 0x00000001, 'd', "GPIO 67 raising edge detect enabled" },
829 { "GRER2_68", 0x40E00038,  4, 0x00000001, 'd', "GPIO 68 raising edge detect enabled" },
830 { "GRER2_69", 0x40E00038,  5, 0x00000001, 'd', "GPIO 69 raising edge detect enabled" },
831 { "GRER2_70", 0x40E00038,  6, 0x00000001, 'd', "GPIO 70 raising edge detect enabled" },
832 { "GRER2_71", 0x40E00038,  7, 0x00000001, 'd', "GPIO 71 raising edge detect enabled" },
833 { "GRER2_72", 0x40E00038,  8, 0x00000001, 'd', "GPIO 72 raising edge detect enabled" },
834 { "GRER2_73", 0x40E00038,  9, 0x00000001, 'd', "GPIO 73 raising edge detect enabled" },
835 { "GRER2_74", 0x40E00038, 10, 0x00000001, 'd', "GPIO 74 raising edge detect enabled" },
836 { "GRER2_75", 0x40E00038, 11, 0x00000001, 'd', "GPIO 75 raising edge detect enabled" },
837 { "GRER2_76", 0x40E00038, 12, 0x00000001, 'd', "GPIO 76 raising edge detect enabled" },
838 { "GRER2_77", 0x40E00038, 13, 0x00000001, 'd', "GPIO 77 raising edge detect enabled" },
839 { "GRER2_78", 0x40E00038, 14, 0x00000001, 'd', "GPIO 78 raising edge detect enabled" },
840 { "GRER2_79", 0x40E00038, 15, 0x00000001, 'd', "GPIO 79 raising edge detect enabled" },
841 { "GRER2_80", 0x40E00038, 16, 0x00000001, 'd', "GPIO 80 raising edge detect enabled" },
842 { "GRER2_81", 0x40E00038, 17, 0x00000001, 'd', "GPIO 81 raising edge detect enabled" },
843 { "GRER2_82", 0x40E00038, 18, 0x00000001, 'd', "GPIO 82 raising edge detect enabled" },
844 { "GRER2_83", 0x40E00038, 19, 0x00000001, 'd', "GPIO 83 raising edge detect enabled" },
845 { "GRER2_84", 0x40E00038, 20, 0x00000001, 'd', "GPIO 84 raising edge detect enabled" },
846 
847 { "GFER0",    0x40E0003C,  0, 0xffffffff, 'x', "GPIO Falling Edge Detect Enable Register 0 (4-14)" },
848 { "GFER0_0",  0x40E0003C,  0, 0x00000001, 'd', "GPIO 0 falling edge detect enabled" },
849 { "GFER0_1",  0x40E0003C,  1, 0x00000001, 'd', "GPIO 1 falling edge detect enabled" },
850 { "GFER0_2",  0x40E0003C,  2, 0x00000001, 'd', "GPIO 2 falling edge detect enabled" },
851 { "GFER0_3",  0x40E0003C,  3, 0x00000001, 'd', "GPIO 3 falling edge detect enabled" },
852 { "GFER0_4",  0x40E0003C,  4, 0x00000001, 'd', "GPIO 4 falling edge detect enabled" },
853 { "GFER0_5",  0x40E0003C,  5, 0x00000001, 'd', "GPIO 5 falling edge detect enabled" },
854 { "GFER0_6",  0x40E0003C,  6, 0x00000001, 'd', "GPIO 6 falling edge detect enabled" },
855 { "GFER0_7",  0x40E0003C,  7, 0x00000001, 'd', "GPIO 7 falling edge detect enabled" },
856 { "GFER0_8",  0x40E0003C,  8, 0x00000001, 'd', "GPIO 8 falling edge detect enabled" },
857 { "GFER0_9",  0x40E0003C,  9, 0x00000001, 'd', "GPIO 9 falling edge detect enabled" },
858 { "GFER0_10", 0x40E0003C, 10, 0x00000001, 'd', "GPIO 10 falling edge detect enabled" },
859 { "GFER0_11", 0x40E0003C, 11, 0x00000001, 'd', "GPIO 11 falling edge detect enabled" },
860 { "GFER0_12", 0x40E0003C, 12, 0x00000001, 'd', "GPIO 12 falling edge detect enabled" },
861 { "GFER0_13", 0x40E0003C, 13, 0x00000001, 'd', "GPIO 13 falling edge detect enabled" },
862 { "GFER0_14", 0x40E0003C, 14, 0x00000001, 'd', "GPIO 14 falling edge detect enabled" },
863 { "GFER0_15", 0x40E0003C, 15, 0x00000001, 'd', "GPIO 15 falling edge detect enabled" },
864 { "GFER0_16", 0x40E0003C, 16, 0x00000001, 'd', "GPIO 16 falling edge detect enabled" },
865 { "GFER0_17", 0x40E0003C, 17, 0x00000001, 'd', "GPIO 17 falling edge detect enabled" },
866 { "GFER0_18", 0x40E0003C, 18, 0x00000001, 'd', "GPIO 18 falling edge detect enabled" },
867 { "GFER0_19", 0x40E0003C, 19, 0x00000001, 'd', "GPIO 19 falling edge detect enabled" },
868 { "GFER0_20", 0x40E0003C, 20, 0x00000001, 'd', "GPIO 20 falling edge detect enabled" },
869 { "GFER0_21", 0x40E0003C, 21, 0x00000001, 'd', "GPIO 21 falling edge detect enabled" },
870 { "GFER0_22", 0x40E0003C, 22, 0x00000001, 'd', "GPIO 22 falling edge detect enabled" },
871 { "GFER0_23", 0x40E0003C, 23, 0x00000001, 'd', "GPIO 23 falling edge detect enabled" },
872 { "GFER0_24", 0x40E0003C, 24, 0x00000001, 'd', "GPIO 24 falling edge detect enabled" },
873 { "GFER0_25", 0x40E0003C, 25, 0x00000001, 'd', "GPIO 25 falling edge detect enabled" },
874 { "GFER0_26", 0x40E0003C, 26, 0x00000001, 'd', "GPIO 26 falling edge detect enabled" },
875 { "GFER0_27", 0x40E0003C, 27, 0x00000001, 'd', "GPIO 27 falling edge detect enabled" },
876 { "GFER0_28", 0x40E0003C, 28, 0x00000001, 'd', "GPIO 28 falling edge detect enabled" },
877 { "GFER0_29", 0x40E0003C, 29, 0x00000001, 'd', "GPIO 29 falling edge detect enabled" },
878 { "GFER0_30", 0x40E0003C, 30, 0x00000001, 'd', "GPIO 30 falling edge detect enabled" },
879 { "GFER0_31", 0x40E0003C, 31, 0x00000001, 'd', "GPIO 31 falling edge detect enabled" },
880 
881 { "GFER1",    0x40E00040,  0, 0xffffffff, 'x', "GPIO Falling Edge Detect Enable Register 1 (4-14)" },
882 { "GFER1_32", 0x40E00040,  0, 0x00000001, 'd', "GPIO 32 falling edge detect enabled" },
883 { "GFER1_33", 0x40E00040,  1, 0x00000001, 'd', "GPIO 33 falling edge detect enabled" },
884 { "GFER1_34", 0x40E00040,  2, 0x00000001, 'd', "GPIO 34 falling edge detect enabled" },
885 { "GFER1_35", 0x40E00040,  3, 0x00000001, 'd', "GPIO 35 falling edge detect enabled" },
886 { "GFER1_36", 0x40E00040,  4, 0x00000001, 'd', "GPIO 36 falling edge detect enabled" },
887 { "GFER1_37", 0x40E00040,  5, 0x00000001, 'd', "GPIO 37 falling edge detect enabled" },
888 { "GFER1_38", 0x40E00040,  6, 0x00000001, 'd', "GPIO 38 falling edge detect enabled" },
889 { "GFER1_39", 0x40E00040,  7, 0x00000001, 'd', "GPIO 39 falling edge detect enabled" },
890 { "GFER1_40", 0x40E00040,  8, 0x00000001, 'd', "GPIO 40 falling edge detect enabled" },
891 { "GFER1_41", 0x40E00040,  9, 0x00000001, 'd', "GPIO 41 falling edge detect enabled" },
892 { "GFER1_42", 0x40E00040, 10, 0x00000001, 'd', "GPIO 42 falling edge detect enabled" },
893 { "GFER1_43", 0x40E00040, 11, 0x00000001, 'd', "GPIO 43 falling edge detect enabled" },
894 { "GFER1_44", 0x40E00040, 12, 0x00000001, 'd', "GPIO 44 falling edge detect enabled" },
895 { "GFER1_45", 0x40E00040, 13, 0x00000001, 'd', "GPIO 45 falling edge detect enabled" },
896 { "GFER1_46", 0x40E00040, 14, 0x00000001, 'd', "GPIO 46 falling edge detect enabled" },
897 { "GFER1_47", 0x40E00040, 15, 0x00000001, 'd', "GPIO 47 falling edge detect enabled" },
898 { "GFER1_48", 0x40E00040, 16, 0x00000001, 'd', "GPIO 48 falling edge detect enabled" },
899 { "GFER1_49", 0x40E00040, 17, 0x00000001, 'd', "GPIO 49 falling edge detect enabled" },
900 { "GFER1_50", 0x40E00040, 18, 0x00000001, 'd', "GPIO 50 falling edge detect enabled" },
901 { "GFER1_51", 0x40E00040, 19, 0x00000001, 'd', "GPIO 51 falling edge detect enabled" },
902 { "GFER1_52", 0x40E00040, 20, 0x00000001, 'd', "GPIO 52 falling edge detect enabled" },
903 { "GFER1_53", 0x40E00040, 21, 0x00000001, 'd', "GPIO 53 falling edge detect enabled" },
904 { "GFER1_54", 0x40E00040, 22, 0x00000001, 'd', "GPIO 54 falling edge detect enabled" },
905 { "GFER1_55", 0x40E00040, 23, 0x00000001, 'd', "GPIO 55 falling edge detect enabled" },
906 { "GFER1_56", 0x40E00040, 24, 0x00000001, 'd', "GPIO 56 falling edge detect enabled" },
907 { "GFER1_57", 0x40E00040, 25, 0x00000001, 'd', "GPIO 57 falling edge detect enabled" },
908 { "GFER1_58", 0x40E00040, 26, 0x00000001, 'd', "GPIO 58 falling edge detect enabled" },
909 { "GFER1_59", 0x40E00040, 27, 0x00000001, 'd', "GPIO 59 falling edge detect enabled" },
910 { "GFER1_60", 0x40E00040, 28, 0x00000001, 'd', "GPIO 60 falling edge detect enabled" },
911 { "GFER1_61", 0x40E00040, 29, 0x00000001, 'd', "GPIO 61 falling edge detect enabled" },
912 { "GFER1_62", 0x40E00040, 30, 0x00000001, 'd', "GPIO 62 falling edge detect enabled" },
913 { "GFER1_63", 0x40E00040, 31, 0x00000001, 'd', "GPIO 63 falling edge detect enabled" },
914 
915 { "GFER2",    0x40E00044,  0, 0xffffffff, 'x', "GPIO Falling Edge Detect Enable Register 2 (4-14)" },
916 { "GFER2_64", 0x40E00044,  0, 0x00000001, 'd', "GPIO 64 falling edge detect enabled" },
917 { "GFER2_65", 0x40E00044,  1, 0x00000001, 'd', "GPIO 65 falling edge detect enabled" },
918 { "GFER2_66", 0x40E00044,  2, 0x00000001, 'd', "GPIO 66 falling edge detect enabled" },
919 { "GFER2_67", 0x40E00044,  3, 0x00000001, 'd', "GPIO 67 falling edge detect enabled" },
920 { "GFER2_68", 0x40E00044,  4, 0x00000001, 'd', "GPIO 68 falling edge detect enabled" },
921 { "GFER2_69", 0x40E00044,  5, 0x00000001, 'd', "GPIO 69 falling edge detect enabled" },
922 { "GFER2_70", 0x40E00044,  6, 0x00000001, 'd', "GPIO 70 falling edge detect enabled" },
923 { "GFER2_71", 0x40E00044,  7, 0x00000001, 'd', "GPIO 71 falling edge detect enabled" },
924 { "GFER2_72", 0x40E00044,  8, 0x00000001, 'd', "GPIO 72 falling edge detect enabled" },
925 { "GFER2_73", 0x40E00044,  9, 0x00000001, 'd', "GPIO 73 falling edge detect enabled" },
926 { "GFER2_74", 0x40E00044, 10, 0x00000001, 'd', "GPIO 74 falling edge detect enabled" },
927 { "GFER2_75", 0x40E00044, 11, 0x00000001, 'd', "GPIO 75 falling edge detect enabled" },
928 { "GFER2_76", 0x40E00044, 12, 0x00000001, 'd', "GPIO 76 falling edge detect enabled" },
929 { "GFER2_77", 0x40E00044, 13, 0x00000001, 'd', "GPIO 77 falling edge detect enabled" },
930 { "GFER2_78", 0x40E00044, 14, 0x00000001, 'd', "GPIO 78 falling edge detect enabled" },
931 { "GFER2_79", 0x40E00044, 15, 0x00000001, 'd', "GPIO 79 falling edge detect enabled" },
932 { "GFER2_80", 0x40E00044, 16, 0x00000001, 'd', "GPIO 80 falling edge detect enabled" },
933 { "GFER2_81", 0x40E00044, 17, 0x00000001, 'd', "GPIO 81 falling edge detect enabled" },
934 { "GFER2_82", 0x40E00044, 18, 0x00000001, 'd', "GPIO 82 falling edge detect enabled" },
935 { "GFER2_83", 0x40E00044, 19, 0x00000001, 'd', "GPIO 83 falling edge detect enabled" },
936 { "GFER2_84", 0x40E00044, 20, 0x00000001, 'd', "GPIO 84 falling edge detect enabled" },
937 
938 { "GEDR0",    0x40E00048,  0, 0xffffffff, 'x', "GPIO Edge Detect Register 0 (4-15)" },
939 { "GEDR0_0",  0x40E00048,  0, 0x00000001, 'd', "GPIO 0 edge detected" },
940 { "GEDR0_1",  0x40E00048,  1, 0x00000001, 'd', "GPIO 1 edge detected" },
941 { "GEDR0_2",  0x40E00048,  2, 0x00000001, 'd', "GPIO 2 edge detected" },
942 { "GEDR0_3",  0x40E00048,  3, 0x00000001, 'd', "GPIO 3 edge detected" },
943 { "GEDR0_4",  0x40E00048,  4, 0x00000001, 'd', "GPIO 4 edge detected" },
944 { "GEDR0_5",  0x40E00048,  5, 0x00000001, 'd', "GPIO 5 edge detected" },
945 { "GEDR0_6",  0x40E00048,  6, 0x00000001, 'd', "GPIO 6 edge detected" },
946 { "GEDR0_7",  0x40E00048,  7, 0x00000001, 'd', "GPIO 7 edge detected" },
947 { "GEDR0_8",  0x40E00048,  8, 0x00000001, 'd', "GPIO 8 edge detected" },
948 { "GEDR0_9",  0x40E00048,  9, 0x00000001, 'd', "GPIO 9 edge detected" },
949 { "GEDR0_10", 0x40E00048, 10, 0x00000001, 'd', "GPIO 10 edge detected" },
950 { "GEDR0_11", 0x40E00048, 11, 0x00000001, 'd', "GPIO 11 edge detected" },
951 { "GEDR0_12", 0x40E00048, 12, 0x00000001, 'd', "GPIO 12 edge detected" },
952 { "GEDR0_13", 0x40E00048, 13, 0x00000001, 'd', "GPIO 13 edge detected" },
953 { "GEDR0_14", 0x40E00048, 14, 0x00000001, 'd', "GPIO 14 edge detected" },
954 { "GEDR0_15", 0x40E00048, 15, 0x00000001, 'd', "GPIO 15 edge detected" },
955 { "GEDR0_16", 0x40E00048, 16, 0x00000001, 'd', "GPIO 16 edge detected" },
956 { "GEDR0_17", 0x40E00048, 17, 0x00000001, 'd', "GPIO 17 edge detected" },
957 { "GEDR0_18", 0x40E00048, 18, 0x00000001, 'd', "GPIO 18 edge detected" },
958 { "GEDR0_19", 0x40E00048, 19, 0x00000001, 'd', "GPIO 19 edge detected" },
959 { "GEDR0_20", 0x40E00048, 20, 0x00000001, 'd', "GPIO 20 edge detected" },
960 { "GEDR0_21", 0x40E00048, 21, 0x00000001, 'd', "GPIO 21 edge detected" },
961 { "GEDR0_22", 0x40E00048, 22, 0x00000001, 'd', "GPIO 22 edge detected" },
962 { "GEDR0_23", 0x40E00048, 23, 0x00000001, 'd', "GPIO 23 edge detected" },
963 { "GEDR0_24", 0x40E00048, 24, 0x00000001, 'd', "GPIO 24 edge detected" },
964 { "GEDR0_25", 0x40E00048, 25, 0x00000001, 'd', "GPIO 25 edge detected" },
965 { "GEDR0_26", 0x40E00048, 26, 0x00000001, 'd', "GPIO 26 edge detected" },
966 { "GEDR0_27", 0x40E00048, 27, 0x00000001, 'd', "GPIO 27 edge detected" },
967 { "GEDR0_28", 0x40E00048, 28, 0x00000001, 'd', "GPIO 28 edge detected" },
968 { "GEDR0_29", 0x40E00048, 29, 0x00000001, 'd', "GPIO 29 edge detected" },
969 { "GEDR0_30", 0x40E00048, 30, 0x00000001, 'd', "GPIO 30 edge detected" },
970 { "GEDR0_31", 0x40E00048, 31, 0x00000001, 'd', "GPIO 31 edge detected" },
971 
972 { "GEDR1",    0x40E0004C,  0, 0xffffffff, 'x', "GPIO Edge Detect Register 1 (4-16)" },
973 { "GEDR1_32", 0x40E0004C,  0, 0x00000001, 'd', "GPIO 32 edge detected" },
974 { "GEDR1_33", 0x40E0004C,  1, 0x00000001, 'd', "GPIO 33 edge detected" },
975 { "GEDR1_34", 0x40E0004C,  2, 0x00000001, 'd', "GPIO 34 edge detected" },
976 { "GEDR1_35", 0x40E0004C,  3, 0x00000001, 'd', "GPIO 35 edge detected" },
977 { "GEDR1_36", 0x40E0004C,  4, 0x00000001, 'd', "GPIO 36 edge detected" },
978 { "GEDR1_37", 0x40E0004C,  5, 0x00000001, 'd', "GPIO 37 edge detected" },
979 { "GEDR1_38", 0x40E0004C,  6, 0x00000001, 'd', "GPIO 38 edge detected" },
980 { "GEDR1_39", 0x40E0004C,  7, 0x00000001, 'd', "GPIO 39 edge detected" },
981 { "GEDR1_40", 0x40E0004C,  8, 0x00000001, 'd', "GPIO 40 edge detected" },
982 { "GEDR1_41", 0x40E0004C,  9, 0x00000001, 'd', "GPIO 41 edge detected" },
983 { "GEDR1_42", 0x40E0004C, 10, 0x00000001, 'd', "GPIO 42 edge detected" },
984 { "GEDR1_43", 0x40E0004C, 11, 0x00000001, 'd', "GPIO 43 edge detected" },
985 { "GEDR1_44", 0x40E0004C, 12, 0x00000001, 'd', "GPIO 44 edge detected" },
986 { "GEDR1_45", 0x40E0004C, 13, 0x00000001, 'd', "GPIO 45 edge detected" },
987 { "GEDR1_46", 0x40E0004C, 14, 0x00000001, 'd', "GPIO 46 edge detected" },
988 { "GEDR1_47", 0x40E0004C, 15, 0x00000001, 'd', "GPIO 47 edge detected" },
989 { "GEDR1_48", 0x40E0004C, 16, 0x00000001, 'd', "GPIO 48 edge detected" },
990 { "GEDR1_49", 0x40E0004C, 17, 0x00000001, 'd', "GPIO 49 edge detected" },
991 { "GEDR1_50", 0x40E0004C, 18, 0x00000001, 'd', "GPIO 50 edge detected" },
992 { "GEDR1_51", 0x40E0004C, 19, 0x00000001, 'd', "GPIO 51 edge detected" },
993 { "GEDR1_52", 0x40E0004C, 20, 0x00000001, 'd', "GPIO 52 edge detected" },
994 { "GEDR1_53", 0x40E0004C, 21, 0x00000001, 'd', "GPIO 53 edge detected" },
995 { "GEDR1_54", 0x40E0004C, 22, 0x00000001, 'd', "GPIO 54 edge detected" },
996 { "GEDR1_55", 0x40E0004C, 23, 0x00000001, 'd', "GPIO 55 edge detected" },
997 { "GEDR1_56", 0x40E0004C, 24, 0x00000001, 'd', "GPIO 56 edge detected" },
998 { "GEDR1_57", 0x40E0004C, 25, 0x00000001, 'd', "GPIO 57 edge detected" },
999 { "GEDR1_58", 0x40E0004C, 26, 0x00000001, 'd', "GPIO 58 edge detected" },
1000 { "GEDR1_59", 0x40E0004C, 27, 0x00000001, 'd', "GPIO 59 edge detected" },
1001 { "GEDR1_60", 0x40E0004C, 28, 0x00000001, 'd', "GPIO 60 edge detected" },
1002 { "GEDR1_61", 0x40E0004C, 29, 0x00000001, 'd', "GPIO 61 edge detected" },
1003 { "GEDR1_62", 0x40E0004C, 30, 0x00000001, 'd', "GPIO 62 edge detected" },
1004 { "GEDR1_63", 0x40E0004C, 31, 0x00000001, 'd', "GPIO 63 edge detected" },
1005 
1006 { "GEDR2",    0x40E00050,  0, 0xffffffff, 'x', "GPIO Edge Detect Register 2 (4-16)" },
1007 { "GEDR2_64", 0x40E00050,  0, 0x00000001, 'd', "GPIO 64 edge detected" },
1008 { "GEDR2_65", 0x40E00050,  1, 0x00000001, 'd', "GPIO 65 edge detected" },
1009 { "GEDR2_66", 0x40E00050,  2, 0x00000001, 'd', "GPIO 66 edge detected" },
1010 { "GEDR2_67", 0x40E00050,  3, 0x00000001, 'd', "GPIO 67 edge detected" },
1011 { "GEDR2_68", 0x40E00050,  4, 0x00000001, 'd', "GPIO 68 edge detected" },
1012 { "GEDR2_69", 0x40E00050,  5, 0x00000001, 'd', "GPIO 69 edge detected" },
1013 { "GEDR2_70", 0x40E00050,  6, 0x00000001, 'd', "GPIO 70 edge detected" },
1014 { "GEDR2_71", 0x40E00050,  7, 0x00000001, 'd', "GPIO 71 edge detected" },
1015 { "GEDR2_72", 0x40E00050,  8, 0x00000001, 'd', "GPIO 72 edge detected" },
1016 { "GEDR2_73", 0x40E00050,  9, 0x00000001, 'd', "GPIO 73 edge detected" },
1017 { "GEDR2_74", 0x40E00050, 10, 0x00000001, 'd', "GPIO 74 edge detected" },
1018 { "GEDR2_75", 0x40E00050, 11, 0x00000001, 'd', "GPIO 75 edge detected" },
1019 { "GEDR2_76", 0x40E00050, 12, 0x00000001, 'd', "GPIO 76 edge detected" },
1020 { "GEDR2_77", 0x40E00050, 13, 0x00000001, 'd', "GPIO 77 edge detected" },
1021 { "GEDR2_78", 0x40E00050, 14, 0x00000001, 'd', "GPIO 78 edge detected" },
1022 { "GEDR2_79", 0x40E00050, 15, 0x00000001, 'd', "GPIO 79 edge detected" },
1023 { "GEDR2_80", 0x40E00050, 16, 0x00000001, 'd', "GPIO 80 edge detected" },
1024 { "GEDR2_81", 0x40E00050, 17, 0x00000001, 'd', "GPIO 81 edge detected" },
1025 { "GEDR2_82", 0x40E00050, 18, 0x00000001, 'd', "GPIO 82 edge detected" },
1026 { "GEDR2_83", 0x40E00050, 19, 0x00000001, 'd', "GPIO 83 edge detected" },
1027 { "GEDR2_84", 0x40E00050, 20, 0x00000001, 'd', "GPIO 84 edge detected" },
1028 
1029 { "GAFR0L",    0x40E00054,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 0 Lower (4-17)" },
1030 { "GAFR0L_0",  0x40E00054,  0, 0x00000003, 'x', "GPIO 0 alternate function select" },
1031 { "GAFR0L_1",  0x40E00054,  2, 0x00000003, 'x', "GPIO 1 alternate function select" },
1032 { "GAFR0L_2",  0x40E00054,  4, 0x00000003, 'x', "GPIO 2 alternate function select" },
1033 { "GAFR0L_3",  0x40E00054,  6, 0x00000003, 'x', "GPIO 3 alternate function select" },
1034 { "GAFR0L_4",  0x40E00054,  8, 0x00000003, 'x', "GPIO 4 alternate function select" },
1035 { "GAFR0L_5",  0x40E00054, 10, 0x00000003, 'x', "GPIO 5 alternate function select" },
1036 { "GAFR0L_6",  0x40E00054, 12, 0x00000003, 'x', "GPIO 6 alternate function select" },
1037 { "GAFR0L_7",  0x40E00054, 14, 0x00000003, 'x', "GPIO 7 alternate function select" },
1038 { "GAFR0L_8",  0x40E00054, 16, 0x00000003, 'x', "GPIO 8 alternate function select" },
1039 { "GAFR0L_9",  0x40E00054, 18, 0x00000003, 'x', "GPIO 9 alternate function select" },
1040 { "GAFR0L_10", 0x40E00054, 20, 0x00000003, 'x', "GPIO 10 alternate function select" },
1041 { "GAFR0L_11", 0x40E00054, 22, 0x00000003, 'x', "GPIO 11 alternate function select" },
1042 { "GAFR0L_12", 0x40E00054, 24, 0x00000003, 'x', "GPIO 12 alternate function select" },
1043 { "GAFR0L_13", 0x40E00054, 26, 0x00000003, 'x', "GPIO 13 alternate function select" },
1044 { "GAFR0L_14", 0x40E00054, 28, 0x00000003, 'x', "GPIO 14 alternate function select" },
1045 { "GAFR0L_15", 0x40E00054, 30, 0x00000003, 'x', "GPIO 15 alternate function select" },
1046 
1047 { "GAFR0U",    0x40E00058,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 0 Upper (4-18)" },
1048 { "GAFR0U_16", 0x40E00058,  0, 0x00000003, 'x', "GPIO 16 alternate function select" },
1049 { "GAFR0U_17", 0x40E00058,  2, 0x00000003, 'x', "GPIO 17 alternate function select" },
1050 { "GAFR0U_18", 0x40E00058,  4, 0x00000003, 'x', "GPIO 18 alternate function select" },
1051 { "GAFR0U_19", 0x40E00058,  6, 0x00000003, 'x', "GPIO 19 alternate function select" },
1052 { "GAFR0U_20", 0x40E00058,  8, 0x00000003, 'x', "GPIO 20 alternate function select" },
1053 { "GAFR0U_21", 0x40E00058, 10, 0x00000003, 'x', "GPIO 21 alternate function select" },
1054 { "GAFR0U_22", 0x40E00058, 12, 0x00000003, 'x', "GPIO 22 alternate function select" },
1055 { "GAFR0U_23", 0x40E00058, 14, 0x00000003, 'x', "GPIO 23 alternate function select" },
1056 { "GAFR0U_24", 0x40E00058, 16, 0x00000003, 'x', "GPIO 24 alternate function select" },
1057 { "GAFR0U_25", 0x40E00058, 18, 0x00000003, 'x', "GPIO 25 alternate function select" },
1058 { "GAFR0U_26", 0x40E00058, 20, 0x00000003, 'x', "GPIO 26 alternate function select" },
1059 { "GAFR0U_27", 0x40E00058, 22, 0x00000003, 'x', "GPIO 27 alternate function select" },
1060 { "GAFR0U_28", 0x40E00058, 24, 0x00000003, 'x', "GPIO 28 alternate function select" },
1061 { "GAFR0U_29", 0x40E00058, 26, 0x00000003, 'x', "GPIO 29 alternate function select" },
1062 { "GAFR0U_30", 0x40E00058, 28, 0x00000003, 'x', "GPIO 30 alternate function select" },
1063 { "GAFR0U_31", 0x40E00058, 30, 0x00000003, 'x', "GPIO 31 alternate function select" },
1064 
1065 { "GAFR1L",    0x40E0005C,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 1 Lower (4-18)" },
1066 { "GAFR1L_32", 0x40E0005C,  0, 0x00000003, 'x', "GPIO 32 alternate function select" },
1067 { "GAFR1L_33", 0x40E0005C,  2, 0x00000003, 'x', "GPIO 33 alternate function select" },
1068 { "GAFR1L_34", 0x40E0005C,  4, 0x00000003, 'x', "GPIO 34 alternate function select" },
1069 { "GAFR1L_35", 0x40E0005C,  6, 0x00000003, 'x', "GPIO 35 alternate function select" },
1070 { "GAFR1L_36", 0x40E0005C,  8, 0x00000003, 'x', "GPIO 36 alternate function select" },
1071 { "GAFR1L_37", 0x40E0005C, 10, 0x00000003, 'x', "GPIO 37 alternate function select" },
1072 { "GAFR1L_38", 0x40E0005C, 12, 0x00000003, 'x', "GPIO 38 alternate function select" },
1073 { "GAFR1L_39", 0x40E0005C, 14, 0x00000003, 'x', "GPIO 39 alternate function select" },
1074 { "GAFR1L_40", 0x40E0005C, 16, 0x00000003, 'x', "GPIO 40 alternate function select" },
1075 { "GAFR1L_41", 0x40E0005C, 18, 0x00000003, 'x', "GPIO 41 alternate function select" },
1076 { "GAFR1L_42", 0x40E0005C, 20, 0x00000003, 'x', "GPIO 42 alternate function select" },
1077 { "GAFR1L_43", 0x40E0005C, 22, 0x00000003, 'x', "GPIO 43 alternate function select" },
1078 { "GAFR1L_44", 0x40E0005C, 24, 0x00000003, 'x', "GPIO 44 alternate function select" },
1079 { "GAFR1L_45", 0x40E0005C, 26, 0x00000003, 'x', "GPIO 45 alternate function select" },
1080 { "GAFR1L_46", 0x40E0005C, 28, 0x00000003, 'x', "GPIO 46 alternate function select" },
1081 { "GAFR1L_47", 0x40E0005C, 30, 0x00000003, 'x', "GPIO 47 alternate function select" },
1082 
1083 { "GAFR1U",    0x40E00060,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 1 Upper (4-19)" },
1084 { "GAFR1U_48", 0x40E00060,  0, 0x00000003, 'x', "GPIO 48 alternate function select" },
1085 { "GAFR1U_49", 0x40E00060,  2, 0x00000003, 'x', "GPIO 49 alternate function select" },
1086 { "GAFR1U_50", 0x40E00060,  4, 0x00000003, 'x', "GPIO 50 alternate function select" },
1087 { "GAFR1U_51", 0x40E00060,  6, 0x00000003, 'x', "GPIO 51 alternate function select" },
1088 { "GAFR1U_52", 0x40E00060,  8, 0x00000003, 'x', "GPIO 52 alternate function select" },
1089 { "GAFR1U_53", 0x40E00060, 10, 0x00000003, 'x', "GPIO 53 alternate function select" },
1090 { "GAFR1U_54", 0x40E00060, 12, 0x00000003, 'x', "GPIO 54 alternate function select" },
1091 { "GAFR1U_55", 0x40E00060, 14, 0x00000003, 'x', "GPIO 55 alternate function select" },
1092 { "GAFR1U_56", 0x40E00060, 16, 0x00000003, 'x', "GPIO 56 alternate function select" },
1093 { "GAFR1U_57", 0x40E00060, 18, 0x00000003, 'x', "GPIO 57 alternate function select" },
1094 { "GAFR1U_58", 0x40E00060, 20, 0x00000003, 'x', "GPIO 58 alternate function select" },
1095 { "GAFR1U_59", 0x40E00060, 22, 0x00000003, 'x', "GPIO 59 alternate function select" },
1096 { "GAFR1U_60", 0x40E00060, 24, 0x00000003, 'x', "GPIO 60 alternate function select" },
1097 { "GAFR1U_61", 0x40E00060, 26, 0x00000003, 'x', "GPIO 61 alternate function select" },
1098 { "GAFR1U_62", 0x40E00060, 28, 0x00000003, 'x', "GPIO 62 alternate function select" },
1099 { "GAFR1U_63", 0x40E00060, 30, 0x00000003, 'x', "GPIO 63 alternate function select" },
1100 
1101 { "GAFR2L",    0x40E00064,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 2 Lower (4-19)" },
1102 { "GAFR2L_64", 0x40E00064,  0, 0x00000003, 'x', "GPIO 64 alternate function select" },
1103 { "GAFR2L_65", 0x40E00064,  2, 0x00000003, 'x', "GPIO 65 alternate function select" },
1104 { "GAFR2L_66", 0x40E00064,  4, 0x00000003, 'x', "GPIO 66 alternate function select" },
1105 { "GAFR2L_67", 0x40E00064,  6, 0x00000003, 'x', "GPIO 67 alternate function select" },
1106 { "GAFR2L_68", 0x40E00064,  8, 0x00000003, 'x', "GPIO 68 alternate function select" },
1107 { "GAFR2L_69", 0x40E00064, 10, 0x00000003, 'x', "GPIO 69 alternate function select" },
1108 { "GAFR2L_70", 0x40E00064, 12, 0x00000003, 'x', "GPIO 70 alternate function select" },
1109 { "GAFR2L_71", 0x40E00064, 14, 0x00000003, 'x', "GPIO 71 alternate function select" },
1110 { "GAFR2L_72", 0x40E00064, 16, 0x00000003, 'x', "GPIO 72 alternate function select" },
1111 { "GAFR2L_73", 0x40E00064, 18, 0x00000003, 'x', "GPIO 73 alternate function select" },
1112 { "GAFR2L_74", 0x40E00064, 20, 0x00000003, 'x', "GPIO 74 alternate function select" },
1113 { "GAFR2L_75", 0x40E00064, 22, 0x00000003, 'x', "GPIO 75 alternate function select" },
1114 { "GAFR2L_76", 0x40E00064, 24, 0x00000003, 'x', "GPIO 76 alternate function select" },
1115 { "GAFR2L_77", 0x40E00064, 26, 0x00000003, 'x', "GPIO 77 alternate function select" },
1116 { "GAFR2L_78", 0x40E00064, 28, 0x00000003, 'x', "GPIO 78 alternate function select" },
1117 { "GAFR2L_79", 0x40E00064, 30, 0x00000003, 'x', "GPIO 79 alternate function select" },
1118 
1119 { "GAFR2U",    0x40E00068,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 2 Upper (4-19)" },
1120 { "GAFR2U_80", 0x40E00068,  0, 0x00000003, 'x', "GPIO 80 alternate function select" },
1121 { "GAFR2U_81", 0x40E00068,  2, 0x00000003, 'x', "GPIO 81 alternate function select" },
1122 { "GAFR2U_82", 0x40E00068,  4, 0x00000003, 'x', "GPIO 82 alternate function select" },
1123 { "GAFR2U_83", 0x40E00068,  6, 0x00000003, 'x', "GPIO 83 alternate function select" },
1124 { "GAFR2U_84", 0x40E00068,  8, 0x00000003, 'x', "GPIO 84 alternate function select" },
1125 
1126 { "ICMR",      0x40D00004,  0, 0xffffffff, 'x', "Interrupt Controller Mask Register (4-22)" },
1127 { "ICMR_IM7",  0x40D00004,  7, 0x00000001, 'x', "Pending IRQ 7 (HWUART) unmasked?" },
1128 { "ICMR_IM8",  0x40D00004,  8, 0x00000001, 'x', "Pending IRQ 8 (GPIO0) unmasked" },
1129 { "ICMR_IM9",  0x40D00004,  9, 0x00000001, 'x', "Pending IRQ 9 (GPIO1) unmasked" },
1130 { "ICMR_IM10", 0x40D00004, 10, 0x00000001, 'x', "Pending IRQ 10 (GPIO2_80) unmasked" },
1131 { "ICMR_IM11", 0x40D00004, 11, 0x00000001, 'x', "Pending IRQ 11 (USB) unmasked" },
1132 { "ICMR_IM12", 0x40D00004, 12, 0x00000001, 'x', "Pending IRQ 12 (PMU) unmasked" },
1133 { "ICMR_IM13", 0x40D00004, 13, 0x00000001, 'x', "Pending IRQ 13 (I2S) unmasked" },
1134 { "ICMR_IM14", 0x40D00004, 14, 0x00000001, 'x', "Pending IRQ 14 (AC97) unmasked" },
1135 { "ICMR_IM17", 0x40D00004, 17, 0x00000001, 'x', "Pending IRQ 17 (LCD) unmasked" },
1136 { "ICMR_IM18", 0x40D00004, 18, 0x00000001, 'x', "Pending IRQ 18 (I2C) unmasked" },
1137 { "ICMR_IM19", 0x40D00004, 19, 0x00000001, 'x', "Pending IRQ 19 (ICP) unmasked" },
1138 { "ICMR_IM20", 0x40D00004, 20, 0x00000001, 'x', "Pending IRQ 20 (STUART) unmasked" },
1139 { "ICMR_IM21", 0x40D00004, 21, 0x00000001, 'x', "Pending IRQ 21 (BTUART) unmasked" },
1140 { "ICMR_IM22", 0x40D00004, 22, 0x00000001, 'x', "Pending IRQ 22 (FFUART) unmasked" },
1141 { "ICMR_IM23", 0x40D00004, 23, 0x00000001, 'x', "Pending IRQ 23 (MMC) unmasked" },
1142 { "ICMR_IM24", 0x40D00004, 24, 0x00000001, 'x', "Pending IRQ 24 (SSP) unmasked" },
1143 { "ICMR_IM25", 0x40D00004, 25, 0x00000001, 'x', "Pending IRQ 25 (DMA) unmasked" },
1144 { "ICMR_IM26", 0x40D00004, 26, 0x00000001, 'x', "Pending IRQ 26 (OSMR0) unmasked" },
1145 { "ICMR_IM27", 0x40D00004, 27, 0x00000001, 'x', "Pending IRQ 27 (OSMR1) unmasked" },
1146 { "ICMR_IM28", 0x40D00004, 28, 0x00000001, 'x', "Pending IRQ 28 (OSMR2) unmasked" },
1147 { "ICMR_IM29", 0x40D00004, 29, 0x00000001, 'x', "Pending IRQ 29 (OSMR3) unmasked" },
1148 { "ICMR_IM30", 0x40D00004, 30, 0x00000001, 'x', "Pending IRQ 30 (RTCCLK) unmasked" },
1149 { "ICMR_IM31", 0x40D00004, 31, 0x00000001, 'x', "Pending IRQ 31 (RTCALM) unmasked" },
1150 
1151 { "ICLR",      0x40D00008,  0, 0xffffffff, 'x', "Interrupt Controller Level Register (4-23)" },
1152 { "ICLR_IL7",  0x40D00008,  7, 0x00000001, 'x', "IRQ 8 (HWUART) generates FIQ?" },
1153 { "ICLR_IL8",  0x40D00008,  8, 0x00000001, 'x', "IRQ 8 (GPIO0) generates FIQ" },
1154 { "ICLR_IL9",  0x40D00008,  9, 0x00000001, 'x', "IRQ 9 (GPIO1) generates FIQ" },
1155 { "ICLR_IL10", 0x40D00008, 10, 0x00000001, 'x', "IRQ 10 (GPIO2_80) generates FIQ" },
1156 { "ICLR_IL11", 0x40D00008, 11, 0x00000001, 'x', "IRQ 11 (USB) generates FIQ" },
1157 { "ICLR_IL12", 0x40D00008, 12, 0x00000001, 'x', "IRQ 12 (PMU) generates FIQ" },
1158 { "ICLR_IL13", 0x40D00008, 13, 0x00000001, 'x', "IRQ 13 (I2S) generates FIQ" },
1159 { "ICLR_IL14", 0x40D00008, 14, 0x00000001, 'x', "IRQ 14 (AC97) generates FIQ" },
1160 { "ICLR_IL17", 0x40D00008, 17, 0x00000001, 'x', "IRQ 17 (LCD) generates FIQ" },
1161 { "ICLR_IL18", 0x40D00008, 18, 0x00000001, 'x', "IRQ 18 (I2C) generates FIQ" },
1162 { "ICLR_IL19", 0x40D00008, 19, 0x00000001, 'x', "IRQ 19 (ICP) generates FIQ" },
1163 { "ICLR_IL20", 0x40D00008, 20, 0x00000001, 'x', "IRQ 10 (STUART) generates FIQ" },
1164 { "ICLR_IL21", 0x40D00008, 21, 0x00000001, 'x', "IRQ 21 (BTUART) generates FIQ" },
1165 { "ICLR_IL22", 0x40D00008, 22, 0x00000001, 'x', "IRQ 22 (FFUART) generates FIQ" },
1166 { "ICLR_IL23", 0x40D00008, 23, 0x00000001, 'x', "IRQ 23 (MMC) generates FIQ" },
1167 { "ICLR_IL24", 0x40D00008, 24, 0x00000001, 'x', "IRQ 24 (SSP) generates FIQ" },
1168 { "ICLR_IL25", 0x40D00008, 25, 0x00000001, 'x', "IRQ 25 (DMA) generates FIQ" },
1169 { "ICLR_IL26", 0x40D00008, 26, 0x00000001, 'x', "IRQ 26 (OSMR0) generates FIQ" },
1170 { "ICLR_IL27", 0x40D00008, 27, 0x00000001, 'x', "IRQ 27 (OSMR1) generates FIQ" },
1171 { "ICLR_IL28", 0x40D00008, 28, 0x00000001, 'x', "IRQ 28 (OSMR2) generates FIQ" },
1172 { "ICLR_IL29", 0x40D00008, 29, 0x00000001, 'x', "IRQ 29 (OSMR3) generates FIQ" },
1173 { "ICLR_IL30", 0x40D00008, 30, 0x00000001, 'x', "IRQ 30 (RTCCLK) generates FIQ" },
1174 { "ICLR_IL31", 0x40D00008, 31, 0x00000001, 'x', "IRQ 31 (RTCALM) generates FIQ" },
1175 
1176 { "ICCR",      0x40D00014,  0, 0xffffffff, 'x', "Interrupt Controller Control Register (4-23)" },
1177 { "ICCR_DIM",  0x40D00014,  8, 0x00000001, 'x', "ONLY enabled and unmasked IRQ bring CPU from idle to run" },
1178 
1179 { "ICIP",      0x40D00000,  0, 0xffffffff, 'x', "Interrupt Controller IRQ Pending Register (4-24)" },
1180 
1181 { "ICFP",      0x40D0000C,  0, 0xffffffff, 'x', "Interrupt Controller FIQ Pending Register (4-24)" },
1182 
1183 { "ICPR",      0x40D00010,  0, 0xffffffff, 'x', "Interrupt Controller Pending Register (4-25)" },
1184 { "ICPR_IS7",  0x40D00010,  7, 0x00000001, 'x', "IRQ 7 (HWUART) pending" },
1185 { "ICPR_IS8",  0x40D00010,  8, 0x00000001, 'x', "IRQ 8 (GPIO0) pending" },
1186 { "ICPR_IS9",  0x40D00010,  9, 0x00000001, 'x', "IRQ 9 (GPIO1) pending" },
1187 { "ICPR_IS10", 0x40D00010, 10, 0x00000001, 'x', "IRQ 10 (GPIO2_80) pending" },
1188 { "ICPR_IS11", 0x40D00010, 11, 0x00000001, 'x', "IRQ 11 (USB) pending" },
1189 { "ICPR_IS12", 0x40D00010, 12, 0x00000001, 'x', "IRQ 12 (PMU) pending" },
1190 { "ICPR_IS13", 0x40D00010, 13, 0x00000001, 'x', "IRQ 13 (I2S) pending" },
1191 { "ICPR_IS14", 0x40D00010, 14, 0x00000001, 'x', "IRQ 14 (AC97) pending" },
1192 { "ICPR_IS17", 0x40D00010, 17, 0x00000001, 'x', "IRQ 17 (LCD) pending" },
1193 { "ICPR_IS18", 0x40D00010, 18, 0x00000001, 'x', "IRQ 18 (I2C) pending" },
1194 { "ICPR_IS19", 0x40D00010, 19, 0x00000001, 'x', "IRQ 19 (ICP) pending" },
1195 { "ICPR_IS20", 0x40D00010, 20, 0x00000001, 'x', "IRQ 10 (STUART) pending" },
1196 { "ICPR_IS21", 0x40D00010, 21, 0x00000001, 'x', "IRQ 21 (BTUART) pending" },
1197 { "ICPR_IS22", 0x40D00010, 22, 0x00000001, 'x', "IRQ 22 (FFUART) pending" },
1198 { "ICPR_IS23", 0x40D00010, 23, 0x00000001, 'x', "IRQ 23 (MMC) pending" },
1199 { "ICPR_IS24", 0x40D00010, 24, 0x00000001, 'x', "IRQ 24 (SSP) pending" },
1200 { "ICPR_IS25", 0x40D00010, 25, 0x00000001, 'x', "IRQ 25 (DMA) pending" },
1201 { "ICPR_IS26", 0x40D00010, 26, 0x00000001, 'x', "IRQ 26 (OSMR0) pending" },
1202 { "ICPR_IS27", 0x40D00010, 27, 0x00000001, 'x', "IRQ 27 (OSMR1) pending" },
1203 { "ICPR_IS28", 0x40D00010, 28, 0x00000001, 'x', "IRQ 28 (OSMR2) pending" },
1204 { "ICPR_IS29", 0x40D00010, 29, 0x00000001, 'x', "IRQ 29 (OSMR3) pending" },
1205 { "ICPR_IS30", 0x40D00010, 30, 0x00000001, 'x', "IRQ 30 (RTCCLK) pending" },
1206 { "ICPR_IS31", 0x40D00010, 31, 0x00000001, 'x', "IRQ 31 (RTCALM) pending" },
1207 
1208 { "RTTR",        0x4090000C,  0, 0xffffffff, 'x', "RTC Trim Register (4-30)" },
1209 { "RTTR_CK_DIV", 0x4090000C,  0, 0x0000ffff, 'x', "RTC Clock Divider Count" },
1210 { "RTTR_DEL",    0x4090000C, 16, 0x000003ff, 'x', "RTC Trim delete Count" },
1211 { "RTTR_LCK",    0x4090000C, 31, 0x00000001, 'x', "RTC Locking for RTTR" },
1212 
1213 { "RTAR",        0x40900010,  0, 0xffffffff, 'x', "RTC Alarm Register (4-30)" },
1214 { "RTAR_RTMV",   0x40900010,  0, 0xffffffff, 'x', "RTC Target Match Value" },
1215 
1216 { "RCNR",        0x40900000,  0, 0xffffffff, 'x', "RTC Counter Register (4-31)" },
1217 { "RCNR_RCV",    0x40900000,  0, 0xffffffff, 'x', "RTC Count Value" },
1218 
1219 { "RTSR",        0x40900008,  0, 0xffffffff, 'x', "RTC Status Register (4-32)" },
1220 { "RTSR_AL",     0x40900008,  0, 0x00000001, 'x', "RTC Alarm Interrupt detected" },
1221 { "RTSR_HZ",     0x40900008,  1, 0x00000001, 'x', "RTC Hz Interrupt detected" },
1222 { "RTSR_ALE",    0x40900008,  2, 0x00000001, 'x', "RTC Alarm Interrupt Enable" },
1223 { "RTSR_HZE",    0x40900008,  3, 0x00000001, 'x', "RTC Hz Interrupt Enable" },
1224 
1225 { "OSMR0",       0x40A00000,  0, 0xffffffff, 'x', "OS Timer Match Register 0 (4-36)" },
1226 { "OSMR1",       0x40A00004,  0, 0xffffffff, 'x', "OS Timer Match Register 1 (4-36)" },
1227 { "OSMR2",       0x40A00008,  0, 0xffffffff, 'x', "OS Timer Match Register 2 (4-36)" },
1228 { "OSMR3",       0x40A0000C,  0, 0xffffffff, 'x', "OS Timer Match Register 3 (4-36)" },
1229 
1230 { "OIER",        0x40A0001C,  0, 0xffffffff, 'x', "OS Timer Interrupt Enable Register (4-36)" },
1231 { "OIER_E0",     0x40A0001C,  0, 0x00000001, 'x', "OS Interrupt for OSMR0 enabled" },
1232 { "OIER_E1",     0x40A0001C,  1, 0x00000001, 'x', "OS Interrupt for OSMR1 enabled" },
1233 { "OIER_E2",     0x40A0001C,  2, 0x00000001, 'x', "OS Interrupt for OSMR2 enabled" },
1234 { "OIER_E3",     0x40A0001C,  3, 0x00000001, 'x', "OS Interrupt for OSMR3 enabled" },
1235 
1236 { "OWER",        0x40A00018,  0, 0xffffffff, 'x', "OS Timer Watchdog Match Enable Register (4-37)" },
1237 { "OWER_WME",    0x40A00018,  0, 0x00000001, 'x', "OSMR3 match causes a reset" },
1238 
1239 { "OSCR",        0x40A00010,  0, 0xffffffff, 'x', "OS Timer Count Register (4-37)" },
1240 { "OSCR_OSCV",   0x40A00010,  0, 0xffffffff, 'x', "OS Timer Count Value" },
1241 
1242 { "OSSR",        0x40A00014,  0, 0xffffffff, 'x', "OS Timer Status Register (4-38)" },
1243 { "OSSR_M0",     0x40A00014,  0, 0x00000001, 'x', "OS OSMR0 matched OSCR0" },
1244 { "OSSR_M1",     0x40A00014,  1, 0x00000001, 'x', "OS OSMR1 matched OSCR1" },
1245 { "OSSR_M2",     0x40A00014,  2, 0x00000001, 'x', "OS OSMR2 matched OSCR2" },
1246 { "OSSR_M3",     0x40A00014,  3, 0x00000001, 'x', "OS OSMR3 matched OSCR3" },
1247 
1248 { "PWMCTL0",             0x40B00000,  0, 0xffffffff, 'x', "PWM Control Register 0 (4-41)" },
1249 { "PWMCTL0_PRESCALE",    0x40B00000,  0, 0x0000003f, 'd', "PWM0 Prescale Divisor" },
1250 { "PWMCTL0_SD",          0x40B00000,  5, 0x00000001, 'x', "PWM0 abrupt shutdown" },
1251 
1252 { "PWMDUTY0",            0x40B00004,  0, 0xffffffff, 'x', "PWM Duty Cycle Register 0 (4-42)" },
1253 { "PWMDUTY0_DCYCLE",     0x40B00004,  0, 0x000003ff, 'd', "PWM0 Duty Cycle" },
1254 { "PWMDUTY0_FDCYCLE",    0x40B00004, 10, 0x00000001, 'x', "PWM_OUT0 is set high and does not toggle" },
1255 
1256 { "PWMPERVAL0",          0x40B00008,  0, 0xffffffff, 'x', "PWM Period Control Register 0 (4-43)" },
1257 { "PWMPERVAL0_PV",       0x40B00008,  0, 0x000003ff, 'd', "PWM0 Period Cycle Length" },
1258 
1259 { "PWMCTL1",             0x40C00000,  0, 0xffffffff, 'x', "PWM Control Register 1 (4-41)" },
1260 { "PWMCTL1_PRESCALE",    0x40C00000,  0, 0x0000003f, 'd', "PWM1 Prescale Divisor" },
1261 { "PWMCTL1_SD",          0x40C00000,  5, 0x00000001, 'x', "PWM1 abrupt shutdown" },
1262 
1263 { "PWMDUTY1",            0x40C00004,  0, 0xffffffff, 'x', "PWM Duty Cycle Register 1 (4-42)" },
1264 { "PWMDUTY1_DCYCLE",     0x40C00004,  0, 0x000003ff, 'd', "PWM1 Duty Cycle" },
1265 { "PWMDUTY1_FDCYCLE",    0x40C00004, 10, 0x00000001, 'x', "PWM_OUT1 is set high and does not toggle" },
1266 
1267 { "PWMPERVAL1",          0x40C00008,  0, 0xffffffff, 'x', "PWM Period Control Register 1 (4-43)" },
1268 { "PWMPERVAL1_PV",       0x40C00008,  0, 0x000003ff, 'd', "PWM1 Period Cycle Length" },
1269 
1270 
1271 { "LCCR0",     0x44000000,  0, 0xffffffff, 'x', "LCD Controller Control Register 0 (7-23)" },
1272 { "LCCR0_ENB", 0x44000000,  0, 0x00000001, 'd', "LCD controller enable" },
1273 { "LCCR0_CMS", 0x44000000,  1, 0x00000001, 'd', "LCD monochrome operation enable" },
1274 { "LCCR0_SDS", 0x44000000,  2, 0x00000001, 'd', "LCD dual panel display enable" },
1275 { "LCCR0_LDM", 0x44000000,  3, 0x00000001, 'd', "LCD disable done IRQ disable" },
1276 { "LCCR0_SFM", 0x44000000,  4, 0x00000001, 'd', "LCD start of frame IRQ disable" },
1277 { "LCCR0_IUM", 0x44000000,  5, 0x00000001, 'd', "LCD fifo underrun error IRQ disable" },
1278 { "LCCR0_EFM", 0x44000000,  6, 0x00000001, 'd', "LCD end of frame IRQ disable" },
1279 { "LCCR0_PAS", 0x44000000,  7, 0x00000001, 'd', "LCD active display enable" },
1280 { "LCCR0_DPD", 0x44000000,  9, 0x00000001, 'd', "LCD send 8 pixel on L_DD[7:0] at each clock" },
1281 { "LCCR0_DIS", 0x44000000, 10, 0x00000001, 'd', "LCD controller disable" },
1282 { "LCCR0_QDM", 0x44000000, 11, 0x00000001, 'd', "LCD quick disable IRQ disable" },
1283 { "LCCR0_PDD", 0x44000000, 12, 0x000000FF, 'd', "LCD palette DMA request delay" },
1284 { "LCCR0_BM",  0x44000000, 20, 0x00000001, 'd', "LCD branch start IRQ disable" },
1285 { "LCCR0_OUM", 0x44000000, 21, 0x00000001, 'd', "LCD fifo underrun IRQ disable" },
1286 
1287 { "LCCR1",     0x44000004,  0, 0xffffffff, 'x', "LCD Controller Control Register 1 (7-26)" },
1288 { "LCCR1_PPL", 0x44000004,  0, 0x000003ff, 'd', "LCD pixels per line (+1)" },
1289 { "LCCR1_HSW", 0x44000004, 10, 0x0000003f, 'd', "LCD horizontal sync pulse width (+1)" },
1290 { "LCCR1_ELW", 0x44000004, 16, 0x000000ff, 'd', "LCD end of line pixel clock wait count (+1)" },
1291 { "LCCR1_BLW", 0x44000004, 24, 0x000000ff, 'd', "LCD beginning of line pixel clock wait count (+1)" },
1292 
1293 { "LCCR2",     0x44000008,  0, 0xffffffff, 'x', "LCD Controller Control Register 2 (7-28)" },
1294 { "LCCR2_LPP", 0x44000008,  0, 0x000003ff, 'd', "LCD lines per panel (+1)" },
1295 { "LCCR2_VSW", 0x44000008, 10, 0x0000003f, 'd', "LCD vertical sync pulse width (+1)" },
1296 { "LCCR2_EFW", 0x44000008, 16, 0x000000ff, 'd', "LCD end of frame line clock wait count (+1)" },
1297 { "LCCR2_BFW", 0x44000008, 24, 0x000000ff, 'd', "LCD beginning of frame line clock wait count (+1)" },
1298 
1299 { "LCCR3",     0x4400000C,  0, 0xffffffff, 'x', "LCD Controller Control Register 3 (7-31)" },
1300 { "LCCR3_PCD", 0x4400000C,  0, 0x000000ff, 'd', "LCD pixel clock divisor (+1)" },
1301 { "LCCR3_ACB", 0x4400000C,  8, 0x000000ff, 'd', "LCD AC bias pin frequency (+1)" },
1302 { "LCCR3_API", 0x4400000C, 16, 0x0000000f, 'd', "LCD AC bias pin transitions per interrupt" },
1303 { "LCCR3_VSP", 0x4400000C, 20, 0x00000001, 'd', "LCD L_FCLK vertical sync polarity active low" },
1304 { "LCCR3_HSP", 0x4400000C, 21, 0x00000001, 'd', "LCD L_LCLK horizontal sync polarity active low" },
1305 { "LCCR3_PCP", 0x4400000C, 22, 0x00000001, 'd', "LCD data sampled on falling edge of L_PCLK" },
1306 { "LCCR3_OEP", 0x4400000C, 23, 0x00000001, 'd', "LCD L_BIAS output enable active low" },
1307 { "LCCR3_BPP", 0x4400000C, 24, 0x00000007, '<', "LCD bits per pixel" },
1308 { "LCCR3_DPC", 0x4400000C, 27, 0x00000007, 'd', "LCD double pixel clock rate at L_PCLK" },
1309 
1310 
1311 { "FBR0",      0x44000020,  0, 0xffffffff, 'x', "FBR0" },
1312 { "FBR1",      0x44000020,  0, 0xffffffff, 'x', "FBR1" },
1313 { "LCSR",      0x44000038,  0, 0xffffffff, 'x', "LCD Controller Status Register (7-40)" },
1314 { "LIIDR",     0x4400003C,  0, 0xffffffff, 'x', "LCD Controller Interrupt ID Register (7-41)" },
1315 // TODO
1316 
1317 { "TRGBBR",    0x44000040,  0, 0xffffffff, 'x', "TMED RBG Seed Register (7-42)" },
1318 { "TRGBBR_TRS",0x44000040,  0, 0x000000ff, 'x', "Red Seed" },
1319 { "TRGBBR_TGS",0x44000040,  8, 0x000000ff, 'x', "Green Seed" },
1320 { "TRGBBR_TBS",0x44000040, 16, 0x000000ff, 'x', "Blue Seed" },
1321 
1322 { "TCR",       0x44000044,  0, 0xffffffff, 'x', "TMED Control Register (7-44)" },
1323 { "TCR_COAM",  0x44000044,  0, 0x00000001, 'x', "Color Offset Adjuster Matrix" },
1324 { "TCR_FNAM",  0x44000044,  1, 0x00000001, 'x', "Frame Number Adjuster Matrix" },
1325 { "TCR_COAE",  0x44000044,  2, 0x00000001, 'x', "Color Offset Adjuster Enable" },
1326 { "TCR_FNAME", 0x44000044,  3, 0x00000001, 'x', "Frame Number Adjuster Enable" },
1327 { "TCR_TVBS",  0x44000044,  4, 0x0000000f, 'd', "Vertical Beat Suppression" },
1328 { "TCR_THBS",  0x44000044,  8, 0x0000000f, 'd', "Horizontal Beat Suppression" },
1329 { "TCR_TED",   0x44000044, 14, 0x00000001, 'x', "Energy Distribution Matrix Select" },
1330 
1331 { "FDADR0",    0x44000200,  0, 0xffffffff, 'x', "FDADR0" },
1332 { "FSADR0",    0x44000204,  0, 0xffffffff, 'x', "FSADR0" },
1333 { "FIDR0",     0x44000208,  0, 0xffffffff, 'x', "FODR0" },
1334 { "LDCMD0",    0x4400020C,  0, 0xffffffff, 'x', "LDCMD0" },
1335 { "FDADR1",    0x44000210,  0, 0xffffffff, 'x', "FDADR1" },
1336 { "FSADR1",    0x44000214,  0, 0xffffffff, 'x', "FSADR1" },
1337 { "FIDR1",     0x44000218,  0, 0xffffffff, 'x', "FIDR1" },
1338 { "LDCMD1",    0x4400021C,  0, 0xffffffff, 'x', "LDCMD1" },
1339 // TODO
1340 
1341 
1342 
1343 
1344 { "MDCNFG",         0x48000000, 0, 0xffffffff, 'x', "SDRAM Configuration Register (6-9)" },
1345 { "MDCNFG_DE0",     0x48000000, 0, 0x00000001, 'd', "SDRAM enable for partition 0" },
1346 { "MDCNFG_DE1",     0x48000000, 1, 0x00000001, 'd', "SDRAM enable for partition 1" },
1347 { "MDCNFG_DWID0",   0x48000000, 2, 0x00000001, 'd', "SDRAM data width (0=32, 1=16)" },
1348 { "MDCNFG_DCAC0",   0x48000000, 3, 0x00000003, 'd', "Column address bits for partition pair 0/1" },
1349 { "MDCNFG_DRAC0",   0x48000000, 5, 0x00000003, 'd', "Row address bits for partition pair 0/1" },
1350 { "MDCNFG_DNB0",    0x48000000, 7, 0x00000001, 'd', "Banks in partition pair 0/1 (0=2, 1=4)" },
1351 { "MDCNFG_DTC0",    0x48000000, 8, 0x00000003, 'd', "Timing Category for partition pair 0/1" },
1352 { "MDCNFG_DADDR0",  0x48000000,10, 0x00000001, 'd', "Use alternate addressing for partition pair 0/1" },
1353 { "MDCNFG_DLATCH0", 0x48000000,11, 0x00000001, 'd', "Return data latching scheme for partition pair 0/1" },
1354 { "MDCNFG_DSA11110",0x48000000,12, 0x00000001, 'd', "use SA1111 address muxing for partition pair 0/1" },
1355 { "MDCNFG_DE2",     0x48000000,16, 0x00000001, 'd', "SDRAM enable for partition 2" },
1356 { "MDCNFG_DE3",     0x48000000,17, 0x00000001, 'd', "SDRAM enable for partition 3" },
1357 { "MDCNFG_DWID2",   0x48000000,18, 0x00000001, 'd', "SDRAM data width (0=32, 1=16)" },
1358 { "MDCNFG_DCAC2",   0x48000000,19, 0x00000003, 'd', "Column address bits for partition pair 2/3" },
1359 { "MDCNFG_DRAC2",   0x48000000,21, 0x00000003, 'd', "Row address bits for partition pair 2/3" },
1360 { "MDCNFG_DNB2",    0x48000000,23, 0x00000001, 'd', "Banks in partition pair 2/3 (0=2, 1=4)" },
1361 { "MDCNFG_DTC2",    0x48000000,24, 0x00000003, 'd', "Timing Category for partition pair 2/3" },
1362 { "MDCNFG_DADDR2",  0x48000000,26, 0x00000001, 'd', "Use alternate addressing for partition pair 2/3" },
1363 { "MDCNFG_DLATCH2", 0x48000000,27, 0x00000001, 'd', "Return data latching scheme for partition pair 2/3" },
1364 { "MDCNFG_DSA11112",0x48000000,28, 0x00000001, 'd', "use SA1111 address muxing for partition pair 2/3" },
1365 
1366 { "MDREFR",         0x48000004, 0, 0xffffffff, 'x', "SDRAM Refresh Configuration Register (6-15)" },
1367 { "MDREFR_DRI",     0x48000004, 0, 0x00000fff, 'x', "SDRAM Refresh intervall, all paritions" },
1368 { "MDREFR_E0PIN",   0x48000004,12, 0x00000001, 'x', "SDRAM Clock Enable Pin 0 Level" },
1369 { "MDREFR_K0RUN",   0x48000004,13, 0x00000001, 'x', "SDRAM Clock Run Pin 0" },
1370 { "MDREFR_K0DB2",   0x48000004,14, 0x00000001, 'x', "SDRAM Clock Pin 0 Divide/2" },
1371 { "MDREFR_E1PIN",   0x48000004,15, 0x00000001, 'x', "SDRAM Clock Enable Pin 1 Level" },
1372 { "MDREFR_K1RUN",   0x48000004,16, 0x00000001, 'x', "SDRAM Clock Run Pin 1" },
1373 { "MDREFR_K1DB2",   0x48000004,17, 0x00000001, 'x', "SDRAM Clock Pin 1 Divide/2" },
1374 { "MDREFR_K2RUN",   0x48000004,18, 0x00000001, 'x', "SDRAM Clock Run Pin 2" },
1375 { "MDREFR_K2DB2",   0x48000004,19, 0x00000001, 'x', "SDRAM Clock Pin 2 Divide/2" },
1376 { "MDREFR_APD",     0x48000004,20, 0x00000001, 'x', "SDRAM Auto Power Down enable" },
1377 { "MDREFR_SLFRSH",  0x48000004,22, 0x00000001, 'x', "SDRAM Self-Refresh" },
1378 { "MDREFR_K0FREE",  0x48000004,23, 0x00000001, 'x', "SDRAM Free Running Control for SDCLK0" },
1379 { "MDREFR_K1FREE",  0x48000004,24, 0x00000001, 'x', "SDRAM Free Running Control for SDCLK1" },
1380 { "MDREFR_K2FREE",  0x48000004,25, 0x00000001, 'x', "SDRAM Free Running Control for SDCLK2" },
1381 
1382 { "MSC0",           0x48000008, 0, 0xffffffff, 'x', "Asynchronous Static Memory Control Register 0 (6-45)" },
1383 { "MSC0_RT0",       0x48000008, 0, 0x00000007, 'd', "nCS[0] ROM Type" },
1384 { "MSC0_RBW0",      0x48000008, 3, 0x00000001, 'd', "nCS[0] ROM Bus Width (1=16bit)" },
1385 { "MSC0_RDF0",      0x48000008, 4, 0x0000000f, 'd', "nCS[0] ROM Delay First Access" },
1386 { "MSC0_RDN0",      0x48000008, 8, 0x0000000f, 'd', "nCS[0] ROM Delay Next Access" },
1387 { "MSC0_RRR0",      0x48000008,12, 0x00000007, 'd', "nCS[0] ROM/SRAM Recovery Time" },
1388 { "MSC0_RBUFF0",    0x48000008,15, 0x00000001, 'd', "nCS[0] Return Buffer Behavior (1=streaming)" },
1389 { "MSC0_RT1",       0x48000008,16, 0x00000007, 'd', "nCS[1] ROM Type" },
1390 { "MSC0_RBW1",      0x48000008,19, 0x00000001, 'd', "nCS[1] ROM Bus Width (1=16bit)" },
1391 { "MSC0_RDF1",      0x48000008,20, 0x0000000f, 'd', "nCS[1] ROM Delay First Access" },
1392 { "MSC0_RDN1",      0x48000008,24, 0x0000000f, 'd', "nCS[1] ROM Delay Next Access" },
1393 { "MSC0_RRR1",      0x48000008,28, 0x00000007, 'd', "nCS[1] ROM/SRAM Recovery Time" },
1394 { "MSC0_RBUFF1",    0x48000008,31, 0x00000001, 'd', "nCS[1] Return Buffer Behavior (1=streaming)" },
1395 
1396 { "MSC1",           0x4800000C, 0, 0xffffffff, 'x', "Asynchronous Static Memory Control Register 1 (6-45)" },
1397 { "MSC1_RT2",       0x4800000C, 0, 0x00000007, 'd', "nCS[2] ROM Type" },
1398 { "MSC1_RBW2",      0x4800000C, 3, 0x00000001, 'd', "nCS[2] ROM Bus Width (1=16bit)" },
1399 { "MSC1_RDF2",      0x4800000C, 4, 0x0000000f, 'd', "nCS[2] ROM Delay First Access" },
1400 { "MSC1_RDN2",      0x4800000C, 8, 0x0000000f, 'd', "nCS[2] ROM Delay Next Access" },
1401 { "MSC1_RRR2",      0x4800000C,12, 0x00000007, 'd', "nCS[2] ROM/SRAM Recovery Time" },
1402 { "MSC1_RBUFF2",    0x4800000C,15, 0x00000001, 'd', "nCS[2] Return Buffer Behavior (1=streaming)" },
1403 { "MSC1_RT3",       0x4800000C,16, 0x00000007, 'd', "nCS[3] ROM Type" },
1404 { "MSC1_RBW3",      0x4800000C,19, 0x00000001, 'd', "nCS[3] ROM Bus Width (1=16bit)" },
1405 { "MSC1_RDF3",      0x4800000C,20, 0x0000000f, 'd', "nCS[3] ROM Delay First Access" },
1406 { "MSC1_RDN3",      0x4800000C,24, 0x0000000f, 'd', "nCS[3] ROM Delay Next Access" },
1407 { "MSC1_RRR3",      0x4800000C,28, 0x00000007, 'd', "nCS[3] ROM/SRAM Recovery Time" },
1408 { "MSC1_RBUFF3",    0x4800000C,31, 0x00000001, 'd', "nCS[3] Return Buffer Behavior (1=streaming)" },
1409 
1410 { "MSC2",           0x48000010, 0, 0xffffffff, 'x', "Asynchronous Static Memory Control Register 2 (6-45)" },
1411 { "MSC2_RT4",       0x48000010, 0, 0x00000007, 'd', "nCS[4] ROM Type" },
1412 { "MSC2_RBW4",      0x48000010, 3, 0x00000001, 'd', "nCS[4] ROM Bus Width (1=16bit)" },
1413 { "MSC2_RDF4",      0x48000010, 4, 0x0000000f, 'd', "nCS[4] ROM Delay First Access" },
1414 { "MSC2_RDN4",      0x48000010, 8, 0x0000000f, 'd', "nCS[4] ROM Delay Next Access" },
1415 { "MSC2_RRR4",      0x48000010,12, 0x00000007, 'd', "nCS[4] ROM/SRAM Recovery Time" },
1416 { "MSC2_RBUFF4",    0x48000010,15, 0x00000001, 'd', "nCS[4] Return Buffer Behavior (1=streaming)" },
1417 { "MSC2_RT5",       0x48000010,16, 0x00000007, 'd', "nCS[5] ROM Type" },
1418 { "MSC2_RBW5",      0x48000010,19, 0x00000001, 'd', "nCS[5] ROM Bus Width (1=16bit)" },
1419 { "MSC2_RDF5",      0x48000010,20, 0x0000000f, 'd', "nCS[5] ROM Delay First Access" },
1420 { "MSC2_RDN5",      0x48000010,24, 0x0000000f, 'd', "nCS[5] ROM Delay Next Access" },
1421 { "MSC2_RRR5",      0x48000010,28, 0x00000007, 'd', "nCS[5] ROM/SRAM Recovery Time" },
1422 { "MSC2_RBUFF5",    0x48000010,31, 0x00000001, 'd', "nCS[5] Return Buffer Behavior (1=streaming)" },
1423 
1424 { "MECR",           0x48000014, 0, 0xffffffff, 'x', "Expansion Memory Configuration Register (6-61)" },
1425 { "MECR_NOS",       0x48000014, 0, 0x00000001, 'x', "Number of Sockets (1=2 Sockets)" },
1426 { "MECR_CIT",       0x48000014, 1, 0x00000001, 'x', "Card inserted" },
1427 
1428 { "SXCNFG",         0x4800001C, 0, 0xffffffff, 'x', "Synchronous Static Memory Configuration Register (6-33)" },
1429 { "SXCNFG_SXEN0",   0x4800001C, 0, 0x00000001, 'x', "Partition 0 enabled as SX memory" },
1430 { "SXCNFG_SXEN1",   0x4800001C, 1, 0x00000001, 'x', "Partition 1 enabled as SX memory" },
1431 { "SXCNFG_SXCL0",   0x4800001C, 2, 0x00000007, 'x', "Partition 0/1 CAS Latency" },
1432 { "SXCNFG_SXRL0",   0x4800001C, 5, 0x00000007, 'x', "Partition 0/1 RAS Latency" },
1433 { "SXCNFG_SXRA0",   0x4800001C, 8, 0x00000003, 'x', "Partition 0/1 row address bit count" },
1434 { "SXCNFG_SXCA0",   0x4800001C,10, 0x00000003, 'x', "Partition 0/1 column address bit count" },
1435 { "SXCNFG_SXTP0",   0x4800001C,12, 0x00000003, 'x', "Partition 0/1 memory type" },
1436 { "SXCNFG_SXLATCH0",0x4800001C,14, 0x00000001, 'x', "Partition 0/1 return data with return clock" },
1437 { "SXCNFG_SXEN2",   0x4800001C,16, 0x00000001, 'x', "Partition 2 enabled as SX memory" },
1438 { "SXCNFG_SXEN3",   0x4800001C,17, 0x00000001, 'x', "Partition 3 enabled as SX memory" },
1439 { "SXCNFG_SXCL2",   0x4800001C,18, 0x00000007, 'x', "Partition 2/3 CAS Latency" },
1440 { "SXCNFG_SXRL2",   0x4800001C,21, 0x00000007, 'x', "Partition 2/3 RAS Latency" },
1441 { "SXCNFG_SXRA2",   0x4800001C,24, 0x00000003, 'x', "Partition 2/3 row address bit count" },
1442 { "SXCNFG_SXCA2",   0x4800001C,26, 0x00000003, 'x', "Partition 2/3 column address bit count" },
1443 { "SXCNFG_SXTP2",   0x4800001C,28, 0x00000003, 'x', "Partition 2/3 memory type" },
1444 { "SXCNFG_SXLATCH2",0x4800001C,30, 0x00000001, 'x', "Partition 2/3 return data with return clock" },
1445 
1446 { "SXMRS",          0x48000024, 0, 0xffffffff, 'x', "MRS value to be written to SX Memory (6-38)" },
1447 
1448 { "MCMEM0",         0x48000028, 0, 0xffffffff, 'x', "MEM Control for PCMCIA Socket 0 (6-58)" },
1449 { "MCMEM0_SET",     0x48000028, 0, 0x0000007f, 'd', "Address set time" },
1450 { "MCMEM0_ASST",    0x48000028, 7, 0x0000001f, 'd', "Command assertion time" },
1451 { "MCMEM0_HOLD",    0x48000028,14, 0x0000003f, 'd', "Address hold time" },
1452 
1453 { "MCMEM1",         0x4800002C, 0, 0xffffffff, 'x', "MEM Control for PCMCIA Socket 1 (6-58)" },
1454 { "MCMEM1_SET",     0x4800002C, 0, 0x0000007f, 'd', "Address set time" },
1455 { "MCMEM1_ASST",    0x4800002C, 7, 0x0000001f, 'd', "Command assertion time" },
1456 { "MCMEM1_HOLD",    0x4800002C,14, 0x0000003f, 'd', "Address hold time" },
1457 
1458 { "MCATT0",         0x48000030, 0, 0xffffffff, 'x', "ATT Control for PCMCIA Socket 0 (6-59)" },
1459 { "MCATT0_SET",     0x48000030, 0, 0x0000007f, 'd', "Address set time" },
1460 { "MCATT0_ASST",    0x48000030, 7, 0x0000001f, 'd', "Command assertion time" },
1461 { "MCATT0_HOLD",    0x48000030,14, 0x0000003f, 'd', "Address hold time" },
1462 
1463 { "MCATT1",         0x48000034, 0, 0xffffffff, 'x', "ATT Control for PCMCIA Socket 1 (6-59)" },
1464 { "MCATT1_SET",     0x48000034, 0, 0x0000007f, 'd', "Address set time" },
1465 { "MCATT1_ASST",    0x48000034, 7, 0x0000001f, 'd', "Command assertion time" },
1466 { "MCATT1_HOLD",    0x48000034,14, 0x0000003f, 'd', "Address hold time" },
1467 
1468 { "MCIO0",          0x48000038, 0, 0xffffffff, 'x', "I/O Control for PCMCIA Socket 0 (6-59)" },
1469 { "MCIO0_SET",      0x48000038, 0, 0x0000007f, 'd', "Address set time" },
1470 { "MCIO0_ASST",     0x48000038, 7, 0x0000001f, 'd', "Command assertion time" },
1471 { "MCIO0_HOLD",     0x48000038,14, 0x0000003f, 'd', "Address hold time" },
1472 
1473 { "MCIO1",          0x4800003C, 0, 0xffffffff, 'x', "I/O Control for PCMCIA Socket 1 (6-59)" },
1474 { "MCIO1_SET",      0x4800003C, 0, 0x0000007f, 'd', "Address set time" },
1475 { "MCIO1_ASST",     0x4800003C, 7, 0x0000001f, 'd', "Command assertion time" },
1476 { "MCIO1_HOLD",     0x4800003C,14, 0x0000003f, 'd', "Address hold time" },
1477 
1478 { "MDMRS",          0x48000040, 0, 0xffffffff, 'x', "SDRAM Mode Register Set Configuration Register (6-12)" },
1479 { "MDMRS_MDBL0",    0x48000040, 0, 0x00000007, 'x', "SDRAM Partition 0/1 burst length" },
1480 { "MDMRS_MDADD0",   0x48000040, 3, 0x00000001, 'x', "SDRAM Partition 0/1 burst type" },
1481 { "MDMRS_MDCL0",    0x48000040, 4, 0x00000007, 'x', "SDRAM Partition 0/1 CAS latency" },
1482 { "MDMRS_MDMRS0",   0x48000040, 7, 0x000000ff, 'x', "MRS value to be written to SDRAM Partition 0/1" },
1483 { "MDMRS_MDBL2",    0x48000040,16, 0x00000007, 'x', "SDRAM Partition 2/3 burst length" },
1484 { "MDMRS_MDADD2",   0x48000040,19, 0x00000001, 'x', "SDRAM Partition 2/3 burst type" },
1485 { "MDMRS_MDCL2",    0x48000040,20, 0x00000007, 'x', "SDRAM Partition 2/3 CAS latency" },
1486 { "MDMRS_MDMRS2",   0x48000040,23, 0x000000ff, 'x', "MRS value to be written to SDRAM Partition 2/3" },
1487 
1488 { "BOOTDEF",        0x48000044, 0, 0xffffffff, 'x', "Boot Time Defaults (6-73)" },
1489 { "BOOTDEF_BOOTSEL",0x48000044, 0, 0x00000007, 'x', "Boot Configuration at BOOT_SEL pins" },
1490 { "BOOTDEF_PKGTYPE",0x48000044, 3, 0x00000001, 'x', "Processor type, 1 for PXA250" },
1491 
1492 { "MDMRSLP",        0x48000058, 0, 0xffffffff, 'x', "Low-Power SDRAM Mode Register Set Configuration Register (6-14)" },
1493 // TODO
1494 
1495 
1496 
1497 { "MMC_STRPCL",			0x41100000, 0, 0xffffffff, 'x', "MMC Start/Stop Clock (15-23)" },
1498 
1499 { "MMC_STAT",			0x41100004, 0, 0xffffffff, 'x', "MMC Status Register (15-24)" },
1500 { "MMC_STAT_READ_TIME_OUT",	0x41100004, 0, 0x00000001, 'x', "Read Time Out" },
1501 { "MMC_STAT_TIME_OUT_RESP",	0x41100004, 1, 0x00000001, 'x', "Time Out Response" },
1502 { "MMC_STAT_CRC_WRITE_ERROR",	0x41100004, 2, 0x00000001, 'x', "CRC Write Error" },
1503 { "MMC_STAT_CRC_READ_ERR",	0x41100004, 3, 0x00000001, 'x', "CRC Read Error" },
1504 { "MMC_STAT_SPI_READ_ERR_TKN",	0x41100004, 4, 0x00000001, 'x', "SPI Read Error Token" },
1505 { "MMC_STAT_RES_CRC_ERR",	0x41100004, 5, 0x00000001, 'x', "Response CRC Error" },
1506 { "MMC_STAT_XMIT_FIFO_EMPTY",	0x41100004, 6, 0x00000001, 'x', "Transmit FIFO Empty" },
1507 { "MMC_STAT_RECV_FIFO_EMPTY",	0x41100004, 7, 0x00000001, 'x', "Receive FIFO Empty" },
1508 { "MMC_STAT_CLK_EN",		0x41100004, 8, 0x00000001, 'x', "Clock Enabled" },
1509 { "MMC_STAT_DATA_TRAN_DONE",	0x41100004,11, 0x00000001, 'x', "Data Transmission Done" },
1510 { "MMC_STAT_PRG_DONE",		0x41100004,12, 0x00000001, 'x', "Program Done" },
1511 { "MMC_STAT_END_CMD_RES",	0x41100004,13, 0x00000001, 'x', "End Command Response" },
1512 
1513 { "MMC_CLKRT",			0x41100008, 0, 0xffffffff, 'x', "MMC Clock Read Timeout Register (15-26)" },
1514 { "MMC_CLK_RATE",		0x41100008, 0, 0x00000007, 'x', "Read Time Out bitmask" },
1515 
1516 { "MMC_SPI",			0x4110000c, 0, 0xffffffff, 'x', "MMC SPI mode (15-27)" },
1517 { "MMC_SPI_EN",			0x4110000c, 0, 0x00000001, 'x', "SPI mode enabled" },
1518 { "MMC_SPI_CRC_ON",		0x4110000c, 1, 0x00000001, 'x', "CRC generation enabled" },
1519 { "MMC_SPI_CS_EN",		0x4110000c, 2, 0x00000001, 'x', "SPI chip select enabled" },
1520 { "MMC_SPI_CS_ADDRESS",		0x4110000c, 3, 0x00000001, 'x', "CS0 enabled" },
1521 
1522 { "MMC_CMDAT",			0x41100010, 0, 0xffffffff, 'x', "MMC Command Data (15-28)" },
1523 { "MMC_CMDAT_RF",		0x41100010, 0, 0x00000003, 'x', "response format" },
1524 { "MMC_CMDAT_DATA_EN",		0x41100010, 2, 0x00000001, 'x', "current cmd includes data transfer" },
1525 { "MMC_CMDAT_WRITE",		0x41100010, 3, 0x00000001, 'x', "data transfer is a write" },
1526 { "MMC_CMDAT_STREAM",		0x41100010, 4, 0x00000001, 'x', "data transfer is in stream mode" },
1527 { "MMC_CMDAT_BUSY",		0x41100010, 5, 0x00000001, 'x', "busy signal is expected after data transfer" },
1528 { "MMC_CMDAT_INIT",		0x41100010, 6, 0x00000001, 'x', "precede cmd with 80 clocks" },
1529 { "MMC_CMDAT_DMA_EN",		0x41100010, 7, 0x00000001, 'x', "enable DMA mode" },
1530 
1531 { "MMC_RESTO",			0x41100014, 0, 0xffffffff, 'x', "MMC Response Time Out (15-29)" },
1532 { "MMC_RESTO_TO",		0x41100014, 0, 0x0000007f, 'd', "clocks before a response time out" },
1533 
1534 { "MMC_RDTO",			0x41100018, 0, 0xffffffff, 'x', "MMC Read Time Out (15-29)" },
1535 { "MMC_RDTO_TO",		0x41100018, 0, 0x0000ffff, 'd', "time until read time out" },
1536 
1537 { "MMC_BLKLEN",			0x4110001C, 0, 0xffffffff, 'x', "MMC Block Len Register (15-30)" },
1538 { "MMC_BLKLEN_LEN",		0x4110001C, 0, 0x000003ff, 'd', "Number of bytes in the block" },
1539 
1540 { "MMC_NOB",			0x41100020, 0, 0xffffffff, 'x', "MMC Block Number Register (15-30)" },
1541 { "MMC_NOB_N",			0x41100020, 0, 0x0000ffff, 'd', "number of blocks" },
1542 
1543 { "MMC_PRTBUF",			0x41100024, 0, 0xffffffff, 'x', "MMC Partial Buffer Register (15-31)" },
1544 { "MMC_PRTBUF_FULL",		0x41100024, 0, 0x00000001, 'x', "Buffer is partially full" },
1545 
1546 { "MMC_IMASK",			0x41100028, 0, 0xffffffff, 'x', "MMC Interrupt Mask Register (15-31)" },
1547 { "MMC_IMASK_DATATRAN",		0x41100028, 0, 0x00000001, 'x', "Data Transfer Done masked" },
1548 { "MMC_IMASK_PRGDONE",		0x41100028, 1, 0x00000001, 'x', "Programming Done masked" },
1549 { "MMC_IMASK_ENDCMD",		0x41100028, 2, 0x00000001, 'x', "End Command Response masked" },
1550 { "MMC_IMASK_STOPCMD",		0x41100028, 3, 0x00000001, 'x', "Ready for Stop Transaction Command masked" },
1551 { "MMC_IMASK_CLOCKOFF",		0x41100028, 4, 0x00000001, 'x', "Clock Is Off masked" },
1552 { "MMC_IMASK_RXFIFO",		0x41100028, 5, 0x00000001, 'x', "Receive FIFO Read Request masked" },
1553 { "MMC_IMASK_TXFIFO",		0x41100028, 6, 0x00000001, 'x', "Transmit FIFO Write Request masked" },
1554 
1555 { "MMC_IREG",			0x4110002c, 0, 0xffffffff, 'x', "MMC Interrupt Register (15-33)" },
1556 { "MMC_IREG_DATATRAN",		0x4110002c, 0, 0x00000001, 'x', "Data Transfer Done or Read TimeOut occured" },
1557 { "MMC_IREG_PRGDONE",		0x4110002c, 1, 0x00000001, 'x', "Card has finished programming" },
1558 { "MMC_IREG_ENDCMD",		0x4110002c, 2, 0x00000001, 'x', "MMC has received response or Response TimeOut" },
1559 { "MMC_IREG_STOPCMD",		0x4110002c, 3, 0x00000001, 'x', "MMC is ready for the Stop Transaction Command" },
1560 { "MMC_IREG_CLOCKOFF",		0x4110002c, 4, 0x00000001, 'x', "MMC clock has been turned off" },
1561 { "MMC_IREG_RXFIFO",		0x4110002c, 5, 0x00000001, 'x', "Request for data read from receive FIFO" },
1562 { "MMC_IREG_TXFIFO",		0x4110002c, 6, 0x00000001, 'x', "Request to data write to transmit FIFO" },
1563 
1564 { "MMC_CMD",			0x41100030, 0, 0xffffffff, 'x', "MMC Command Register (15-34)" },
1565 { "MMC_CMD_INDEX",		0x41100030, 0, 0x0000003f, 'x', "command index" },
1566 
1567 { "MMC_ARGH",			0x41100034, 0, 0xffffffff, 'x', "MMC Higher Argument Register (15-36)" },
1568 { "MMC_ARGH_ARG",		0x41100034, 0, 0x0000ffff, 'x', "upper 16 bits of command argument" },
1569 
1570 { "MMC_ARGL",			0x41100038, 0, 0xffffffff, 'x', "MMC Lower Argument Register (15-36)" },
1571 { "MMC_ARGL_ARG",		0x41100038, 0, 0x0000ffff, 'x', "upper 16 bits of command argument" },
1572 
1573 
1574 #if defined(CONFIG_ARCH_PXA_IDP) || defined(CONFIG_ARCH_RAMSES)
1575 // CS5+0x03C00000  CPLD		0x14000000
1576 // CS1             Alt-Flash	0x04000000
1577 // CS0             Flash	0x00000000
1578 
1579 { "CPLD_PWR",			0x17C00004, 0, 0x000000ff, 'x', "CPLD_PERIPH_PWR" },
1580 { "CPLD_PWR_CORE",		0x17C00004, 0, 0x00000001, 'd', "Variable core enable - latch value in first" },
1581 #ifdef CONFIG_ARCH_PXA_IDP
1582 { "CPLD_PWR_MQ",		0x17C00004, 2, 0x00000001, 'd', "MQ1132 power switch" },
1583 #else
1584 { "CPLD_PWR_SL811HS",		0x17C00004, 2, 0x00000001, 'd', "SL811HS power switch" },
1585 #endif
1586 { "CPLD_PWR_PER",		0x17C00004, 3, 0x00000001, 'd', "peripheral power enable" },
1587 { "CPLD_PWR_RST",		0x17C00004, 4, 0x00000001, 'd', "peripheral reset" },
1588 
1589 { "CPLD_LED",			0x17C00008, 0, 0x000000ff, 'x', "CPLD_LED_CONTROL" },
1590 { "CPLD_LED_CIR",		0x17C00008, 0, 0x00000001, 'd', "CIR" },
1591 { "CPLD_LED_HB",		0x17C00008, 5, 0x00000001, 'd', "red LED (0=on)" },
1592 { "CPLD_LED_BUSY",		0x17C00008, 6, 0x00000001, 'd', "green LED (0=on)" },
1593 { "CPLD_LED_FLASH",		0x17C00008, 7, 0x00000001, 'd', "red LED flash enable" },
1594 
1595 { "CPLD_KBD_COL_HIGH",		0x17C0000C, 0, 0x000000ff, 'x', "CPLD" },
1596 
1597 { "CPLD_KBD_COL_LOW",		0x17C00010, 0, 0x000000ff, 'x', "CPLD" },
1598 
1599 { "CPLD_PCCARD_EN",		0x17C00014, 0, 0x000000ff, 'x', "CPLD PC-Card Enable" },
1600 { "CPLD_PCC0_ENABLE",		0x17C00014, 0, 0x00000001, 'd', "PC-Card 0 enable" },
1601 { "CPLD_PCC1_ENABLE",		0x17C00014, 1, 0x00000001, 'd', "PC-Card 1 enable" },
1602 { "CPLD_PCC0_RESET",		0x17C00014, 6, 0x00000001, 'd', "PC-Card 0 reset" },
1603 { "CPLD_PCC1_RESET",		0x17C00014, 7, 0x00000001, 'd', "PC-Card 1 reset" },
1604 
1605 /*
1606 { "CPLD_GPIOH_DIR",		0x17C00018, 0, 0xffffffff, 'x', "CPLD" },
1607 { "CPLD_GPIOH_VALUE",		0x17C0001C, 0, 0xffffffff, 'x', "CPLD" },
1608 { "CPLD_GPIOL_DIR",		0x17C00020, 0, 0xffffffff, 'x', "CPLD" },
1609 { "CPLD_GPIOL_VALUE",		0x17C00024, 0, 0xffffffff, 'x', "CPLD" },
1610 
1611       WHEN "00110" =>
1612         data(7) <= l3_data_out;         -- L3 IIS control bus - direction of data bit
1613         data(6) <= '0';
1614         data(5) <= '0';
1615         data(4) <= '0';
1616         data(3) <= '0';
1617         data(2) <= '0';
1618         data(1) <= gpslow_out(1);       -- direction of pld_gpio_09
1619         data(0) <= gpslow_out(0);       -- direction of pld_gpio_08
1620 
1621       WHEN "00111" =>                   -- gpio on async bus
1622         data(7) <= l3_data_io;          -- L3 IIS control bus - always reads pin
1623         data(6) <= l3_clk;              -- L3 IIS control bus - read back clock
1624         data(5) <= l3_mode;             -- L3 IIS control bus - read back mode
1625         data(4) <= '0';
1626         data(3) <= '0';
1627         data(2) <= '0';
1628         data(1) <= gpslow_io(1);        -- gpio on async bus
1629         data(0) <= gpslow_io(0);        -- gpio on async bus
1630 
1631       WHEN "01000" =>
1632         data <= gp_out;                 -- direction of pld_gpio_07 through 00
1633 
1634       WHEN "01001" =>                   -- gpio on high speed bus
1635         data <= gp_io;
1636 */
1637 
1638 { "CPLD_PCCARD_PWR",		0x17C00028, 0, 0x000000ff, 'x', "CPLD PC-Card Power" },
1639 { "CPLD_PCC0_PWR0",		0x17C00028, 0, 0x00000001, 'd', "PC-Card 0 Pwr 0" },
1640 { "CPLD_PCC0_PWR1",		0x17C00028, 1, 0x00000001, 'd', "PC-Card 0 Pwr 1" },
1641 { "CPLD_PCC0_PWR2",		0x17C00028, 2, 0x00000001, 'd', "PC-Card 0 Pwr 2" },
1642 { "CPLD_PCC0_PWR3",		0x17C00028, 3, 0x00000001, 'd', "PC-Card 0 Pwr 3" },
1643 { "CPLD_PCC1_PWR0",		0x17C00028, 4, 0x00000001, 'd', "PC-Card 1 Pwr 0" },
1644 { "CPLD_PCC1_PWR1",		0x17C00028, 5, 0x00000001, 'd', "PC-Card 1 Pwr 1" },
1645 { "CPLD_PCC1_PWR2",		0x17C00028, 6, 0x00000001, 'd', "PC-Card 1 Pwr 2" },
1646 { "CPLD_PCC1_PWR3",		0x17C00028, 7, 0x00000001, 'd', "PC-Card 1 Pwr 3" },
1647 
1648 { "CPLD_MISC",			0x17C0002C, 0, 0x000000ff, 'x', "CPLD_MISC_CTRL" },
1649 { "CPLD_MISC_SER1EN",		0x17C0002C, 0, 0x00000001, 'd', "RS-232 on FF UART enable" },
1650 { "CPLD_MISC_SER2EN",		0x17C0002C, 1, 0x00000001, 'd', "RS-232 on BT UART enable" },
1651 { "CPLD_MISC_SER3EN",		0x17C0002C, 2, 0x00000001, 'd', "RS-232 on ST UART enable" },
1652 { "CPLD_MISC_IRDAFIR",		0x17C0002C, 3, 0x00000001, 'd', "IrDA FIR enable" },
1653 { "CPLD_MISC_IRDAMD0",		0x17C0002C, 4, 0x00000001, 'd', "IrDA mode 0" },
1654 { "CPLD_MISC_IRDAMD1",		0x17C0002C, 5, 0x00000001, 'd', "IrDA mode 1" },
1655 #ifdef CONFIG_ARCH_PXA_IDP
1656 { "CPLD_MISC_I2SPWR",		0x17C0002C, 7, 0x00000001, 'd', "UDA1341 power switch" },
1657 #endif
1658 
1659 { "CPLD_LCD",			0x17C00030, 0, 0x000000ff, 'x', "CPLD LCD Control", },
1660 #ifdef CONFIG_ARCH_PXA_IDP
1661 { "CPLD_LCD_PWR",		0x17C00030, 0, 0x00000001, 'd', "LCD Power" },
1662 { "CPLD_LCD_BACKLIGHT",		0x17C00030, 1, 0x00000001, 'd', "LCD Backlight" },
1663 { "CPLD_LCD_VLCD",		0x17C00030, 2, 0x00000001, 'd', "LCD VLCD" },
1664 #else
1665 { "CPLD_LCD_VCC",		0x17C00030, 0, 0x00000001, 'd', "LCD VCC" },
1666 { "CPLD_LCD_DISPOFF",		0x17C00030, 2, 0x00000001, 'd', "LCD nDISPOFF" },
1667 #endif
1668 
1669 { "CPLD_FLASH",			0x17C00034, 0, 0x000000ff, 'x', "CPLD Flash Control" },
1670 { "CPLD_FLASH_WE",		0x17C00034, 0, 0x00000001, 'd', "CPLD StrataFlash Write Enable" },
1671 #ifdef CONFIG_ARCH_PXA_IDP
1672 { "CPLD_FLASH_MWE",		0x17C00034, 1, 0x00000001, 'd', "CPLD MPlus Write Enable" },
1673 { "CPLD_FLASH_MOE",		0x17C00034, 2, 0x00000001, 'd', "CPLD MPlus Output Enable" },
1674 
1675 { "CPLD_CS",			0x17C00038, 0, 0x000000ff, 'x', "CPLD Chip Select Register" },
1676 { "CPLD_CS_CS0EN",		0x17C00038, 0, 0x00000001, 'd', "CPLD Chip Select 0 Enable" },
1677 { "CPLD_CS_CS1EN",		0x17C00038, 1, 0x00000001, 'd', "CPLD Chip Select 1 Enable" },
1678 { "CPLD_CS_CS2EN",		0x17C00038, 2, 0x00000001, 'd', "CPLD Chip Select 2 Enable" },
1679 { "CPLD_CS_CS3EN",		0x17C00038, 3, 0x00000001, 'd', "CPLD Chip Select 3 Enable" },
1680 { "CPLD_CS_CS4EN",		0x17C00038, 4, 0x00000001, 'd', "CPLD Chip Select 4 Enable" },
1681 //{ "CPLD_CS_CS5EN",		0x17C00038, 4, 0x00000001, 'd', "CPLD Chip Select 5 Enable" },
1682 #endif
1683 
1684 { "CPLD_KB_ROW",		0x17C00050, 0, 0x000000ff, 'x', "CPLD" },
1685 
1686 { "CPLD_PCCARD0_STATUS",	0x17C00054, 0, 0x000000ff, 'x', "CPLD PC-Card 0 Status" },
1687 { "CPLD_PCC0_VS1",              0x17C00054, 0, 0x00000001, 'd', "PC-Card 0 VS1" },
1688 { "CPLD_PCC0_VS2",              0x17C00054, 1, 0x00000001, 'd', "PC-Card 0 VS2" },
1689 { "CPLD_PCC0_BVD1",             0x17C00054, 2, 0x00000001, 'd', "PC-Card 0 BVD1" },
1690 { "CPLD_PCC0_BVD2",             0x17C00054, 3, 0x00000001, 'd', "PC-Card 0 BVD2" },
1691 { "CPLD_PCC0_INPACK",           0x17C00054, 4, 0x00000001, 'd', "PC-Card 0 INPACK" },
1692 { "CPLD_PCC0_IRQ",              0x17C00054, 5, 0x00000001, 'd', "PC-Card 0 IRQ" },
1693 { "CPLD_PCC0_STRESET",          0x17C00054, 6, 0x00000001, 'd', "PC-Card 0 RESET" },
1694 { "CPLD_PCC0_WRPROT",           0x17C00054, 7, 0x00000001, 'd', "PC-Card 0 WRPROT" },
1695 
1696 { "CPLD_PCCARD1_STATUS",	0x17C00058, 0, 0x000000ff, 'x', "CPLD PC-Card 1 Status" },
1697 { "CPLD_PCC1_VS1",              0x17C00058, 0, 0x00000001, 'd', "PC-Card 1 VS1" },
1698 { "CPLD_PCC1_VS2",              0x17C00058, 1, 0x00000001, 'd', "PC-Card 1 VS2" },
1699 { "CPLD_PCC1_BVD1",             0x17C00058, 2, 0x00000001, 'd', "PC-Card 1 BVD1" },
1700 { "CPLD_PCC1_BVD2",             0x17C00058, 3, 0x00000001, 'd', "PC-Card 1 BVD2" },
1701 { "CPLD_PCC1_INPACK",           0x17C00058, 4, 0x00000001, 'd', "PC-Card 1 INPACK" },
1702 { "CPLD_PCC1_IRQ",              0x17C00058, 5, 0x00000001, 'd', "PC-Card 1 IRQ" },
1703 { "CPLD_PCC1_STRESET",          0x17C00058, 6, 0x00000001, 'd', "PC-Card 1 RESET" },
1704 { "CPLD_PCC1_WRPROT",           0x17C00058, 7, 0x00000001, 'd', "PC-Card 1 WRPROT" },
1705 
1706 { "CPLD_MISC_STATUS",		0x17C0005C, 0, 0x000000ff, 'x', "CPLD Misc Status" },
1707 { "CPLD_MISC_USB_D_CON",        0x17C0005C, 0, 0x00000001, 'd', "Charge status" },
1708 { "CPLD_MISC_WALL_IN",          0x17C0005C, 1, 0x00000001, 'd', "Charge status" },
1709 { "CPLD_MISC_CHG_STS",          0x17C0005C, 2, 0x00000001, 'd', "Charge status" },
1710 { "CPLD_MISC_MMC_WPROT",        0x17C0005C, 7, 0x00000001, 'd', "MMC write protect" },
1711 
1712 { "CPLD_VER_YEAR",		0x17C00060, 0, 0x000000ff, 'x', "CPLD Year" },
1713 { "CPLD_VER_MONTH",		0x17C00064, 0, 0x000000ff, 'x', "CPLD Month" },
1714 { "CPLD_VER_DAY",		0x17C00068, 0, 0x000000ff, 'x', "CPLD Day" },
1715 { "CPLD_VER_REV",		0x17C0006C, 0, 0x000000ff, 'x', "CPLD Revision" },
1716 
1717 { "CPLD_VSTAT",			0x17C0007C, 0, 0x000000ff, 'x', "CPLD Voltage Status" },
1718 #ifdef CONFIG_ARCH_PXA_IDP
1719 { "CPLD_BSTAT_V3GOOD",		0x17C0007C, 0, 0x00000001, 'x', "v3good" },
1720 #endif
1721 { "CPLD_BSTAT_BWE",		0x17C0007C, 1, 0x00000001, 'x', "bwe" },
1722 
1723 #endif
1724 
1725 #if defined(CONFIG_ARCH_RAMSES)
1726 { "UARTA_RHR",			0x0C002E00, 0, 0xffffffff, 'x', "UART A RHR/THR" },
1727 { "UARTA_IER",			0x0C002E04, 0, 0xffffffff, 'x', "UART A IER" },
1728 { "UARTA_FCR",			0x0C002E08, 0, 0xffffffff, 'x', "UART A FCR/IIR" },
1729 { "UARTA_LCR",			0x0C002E0C, 0, 0xffffffff, 'x', "UART A LCR" },
1730 { "UARTA_MCR",			0x0C002E10, 0, 0xffffffff, 'x', "UART A MCR" },
1731 { "UARTA_LSR",			0x0C002E14, 0, 0xffffffff, 'x', "UART A LSR" },
1732 { "UARTA_MSR",			0x0C002E18, 0, 0xffffffff, 'x', "UART A MSR" },
1733 { "UARTA_SPR",			0x0C002E1C, 0, 0xffffffff, 'x', "UART A SPR" },
1734 
1735 { "UARTB_RHR",			0x0C002D00, 0, 0xffffffff, 'x', "UART B RHR/THR" },
1736 { "UARTB_IER",			0x0C002D04, 0, 0xffffffff, 'x', "UART B IER" },
1737 { "UARTB_FCR",			0x0C002D08, 0, 0xffffffff, 'x', "UART B FCR/IIR" },
1738 { "UARTB_LCR",			0x0C002D0C, 0, 0xffffffff, 'x', "UART B LCR" },
1739 { "UARTB_MCR",			0x0C002D10, 0, 0xffffffff, 'x', "UART B MCR" },
1740 { "UARTB_LSR",			0x0C002D14, 0, 0xffffffff, 'x', "UART B LSR" },
1741 { "UARTB_MSR",			0x0C002D18, 0, 0xffffffff, 'x', "UART B MSR" },
1742 { "UARTB_SPR",			0x0C002D1C, 0, 0xffffffff, 'x', "UART B SPR" },
1743 
1744 { "UARTD_RHR",			0x0C002B00, 0, 0xffffffff, 'x', "UART C RHR/THR" },
1745 { "UARTD_IER",			0x0C002B04, 0, 0xffffffff, 'x', "UART C IER" },
1746 { "UARTD_FCR",			0x0C002B08, 0, 0xffffffff, 'x', "UART C FCR/IIR" },
1747 { "UARTD_LCR",			0x0C002B0C, 0, 0xffffffff, 'x', "UART C LCR" },
1748 { "UARTD_MCR",			0x0C002B10, 0, 0xffffffff, 'x', "UART C MCR" },
1749 { "UARTD_LSR",			0x0C002B14, 0, 0xffffffff, 'x', "UART C LSR" },
1750 { "UARTD_MSR",			0x0C002B18, 0, 0xffffffff, 'x', "UART C MSR" },
1751 { "UARTD_SPR",			0x0C002B1C, 0, 0xffffffff, 'x', "UART C SPR" },
1752 
1753 { "UARTD_RHR",			0x0C002700, 0, 0xffffffff, 'x', "UART D RHR/THR" },
1754 { "UARTD_IER",			0x0C002704, 0, 0xffffffff, 'x', "UART D IER" },
1755 { "UARTD_FCR",			0x0C002708, 0, 0xffffffff, 'x', "UART D FCR/IIR" },
1756 { "UARTD_LCR",			0x0C00270C, 0, 0xffffffff, 'x', "UART D LCR" },
1757 { "UARTD_MCR",			0x0C002710, 0, 0xffffffff, 'x', "UART D MCR" },
1758 { "UARTD_LSR",			0x0C002714, 0, 0xffffffff, 'x', "UART D LSR" },
1759 { "UARTD_MSR",			0x0C002718, 0, 0xffffffff, 'x', "UART D MSR" },
1760 { "UARTD_SPR",			0x0C00271C, 0, 0xffffffff, 'x', "UART D SPR" },
1761 
1762 #endif
1763 
1764 };
1765 
1766 
1767 
1768 #define MAP_SIZE 4096
1769 #define MAP_MASK ( MAP_SIZE - 1 )
1770 
getmem(u32 addr)1771 static int getmem(u32 addr)
1772 {
1773    void *map, *regaddr;
1774    u32 val;
1775 
1776    //printf("getmem(0x%08x)\n", addr);
1777 
1778    if (fd == -1) {
1779       fd = open("/dev/mem", O_RDWR | O_SYNC);
1780       if (fd<0) {
1781           perror("open(\"/dev/mem\")");
1782           exit(1);
1783       }
1784    }
1785 
1786    map = mmap(0,
1787               MAP_SIZE,
1788               PROT_READ | PROT_WRITE,
1789               MAP_SHARED,
1790               fd,
1791               addr & ~MAP_MASK
1792              );
1793    if (map == (void*)-1 ) {
1794        perror("mmap()");
1795        exit(1);
1796    }
1797 
1798    regaddr = map + (addr & MAP_MASK);
1799 
1800    val = *(u32*) regaddr;
1801    munmap(0,MAP_SIZE);
1802 
1803    return val;
1804 }
1805 
putmem(u32 addr,u32 val)1806 static void putmem(u32 addr, u32 val)
1807 {
1808    void *map, *regaddr;
1809    static int fd = -1;
1810 
1811    //printf("putmem(0x%08x, 0x%08x)\n", addr, val);
1812 
1813    if (fd == -1) {
1814       fd = open("/dev/mem", O_RDWR | O_SYNC);
1815       if (fd<0) {
1816           perror("open(\"/dev/mem\")");
1817           exit(1);
1818       }
1819    }
1820 
1821    map = mmap(0,
1822               MAP_SIZE,
1823               PROT_READ | PROT_WRITE,
1824               MAP_SHARED,
1825               fd,
1826               addr & ~MAP_MASK
1827              );
1828    if (map == (void*)-1 ) {
1829        perror("mmap()");
1830        exit(1);
1831    }
1832 
1833    regaddr = map + (addr & MAP_MASK);
1834 
1835    *(u32*) regaddr = val;
1836    munmap(0,MAP_SIZE);
1837 }
1838 
1839 static u32 lastaddr = 0;
1840 static u32 newaddr = 1;
1841 static u32 data = 0;
1842 static u32 shiftdata;
1843 
1844 
dumpentry(int i)1845 static void dumpentry(int i)
1846 {
1847    int j;
1848 
1849    if (regs[i].addr != lastaddr) newaddr = 1;
1850    if (newaddr) {
1851        newaddr = 0;
1852        lastaddr = regs[i].addr;
1853        data = getmem(lastaddr);
1854        printf("\n%s\n", regs[i].desc);
1855        printf("%-24s 0x%08x  ", regs[i].name, data);
1856        shiftdata = data;
1857        for (j=32; j>0; j--) {
1858            printf("%c", shiftdata & 0x80000000 ? '1' : '0');
1859            shiftdata = shiftdata << 1;
1860            if (j==9 || j==17 || j==25) printf(" ");
1861        }
1862 
1863        printf("\n");
1864    }
1865 
1866    if (regs[i].shift != 0  ||  regs[i].mask != 0xffffffff) {
1867        shiftdata = (data >> regs[i].shift) & regs[i].mask;
1868        printf("%-25s  ", regs[i].name);
1869        switch (regs[i].type) {
1870           case 'x': printf("%8x", shiftdata);
1871                     break;
1872           case '<': printf("%8u", 1 << shiftdata);
1873                     break;
1874           default:
1875                     printf("%8u", shiftdata);
1876        }
1877        printf("  %s\n", regs[i].desc);
1878    }
1879 }
1880 
1881 
dumpall(void)1882 static void dumpall(void)
1883 {
1884    int i;
1885    int n=sizeof(regs)/sizeof(struct reg_info);
1886 
1887    for (i=0; i<n; i++) {
1888       dumpentry(i);
1889    }
1890 }
1891 
1892 
dumpmatching(char * name)1893 static void dumpmatching(char *name)
1894 {
1895    int i;
1896    int n=sizeof(regs)/sizeof(struct reg_info);
1897 
1898 
1899    for (i=0; i<n; i++) {
1900       if (strstr(regs[i].name, name))
1901          dumpentry(i);
1902    }
1903 }
1904 
1905 
setreg(char * name,u32 val)1906 static void setreg(char *name, u32 val)
1907 {
1908    int i;
1909    u32 mem;
1910    int found=0;
1911    int count=0;
1912    int n=sizeof(regs)/sizeof(struct reg_info);
1913 
1914 
1915    for (i=0; i<n; i++) {
1916       if (strcmp(regs[i].name, name)==0) {
1917          found = i;
1918          //printf("Matched %s with %s, count=%d\n", regs[i].name, name, count);
1919          count++;
1920       }
1921    }
1922    if (count!=1) {
1923       printf("No or more than one matching register found\n");
1924       exit(1);
1925    }
1926 
1927    mem = getmem(regs[found].addr);
1928    //printf("Old contents: 0x%08x\n", mem);
1929    mem &= ~(regs[found].mask << regs[found].shift);
1930    //printf("Unmasked contents: 0x%08x\n", mem);
1931    val &= regs[found].mask;
1932    //printf("mask: 0x%08x\n", regs[found].mask);
1933    //printf("masked val: 0x%08x\n", val);
1934    mem |= val << regs[found].shift;
1935    //printf("Embedded value: 0x%08x\n", mem);
1936    putmem(regs[found].addr, mem);
1937 }
1938 
1939 
main(int argc,char * argv[])1940 int main(int argc, char *argv[])
1941 {
1942     char *p;
1943     u32 val;
1944 
1945     if (argc == 1) {
1946        dumpall();
1947        return 0;
1948     }
1949 
1950     // Uppercase first argument
1951     if (argc >= 2) {
1952         p = argv[1];
1953         while (*p) {
1954            *p = toupper(*p);
1955            p++;
1956         }
1957     }
1958 
1959     if (argc == 2) {
1960        dumpmatching(argv[1]);
1961        return 0;
1962     }
1963 
1964     if (argc == 3) {
1965 	sscanf(argv[2],"%i",&val);
1966 	setreg(argv[1], val);
1967 	return 0;
1968     }
1969 
1970     printf("Usage: %s                - to dump all known registers\n"
1971            "       %s <name>         - to dump named register\n"
1972            "       %s <name> <value> - to set named register\n",
1973            argv[0], argv[0], argv[0]);
1974     return 1;
1975 }
1976