1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
|
/* MN10300 On-board I/O port module registers
*
* Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
* Written by David Howells (dhowells@redhat.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public Licence
* as published by the Free Software Foundation; either version
* 2 of the Licence, or (at your option) any later version.
*/
#ifndef _ASM_PIO_REGS_H
#define _ASM_PIO_REGS_H
#include <asm/cpu-regs.h>
#include <asm/intctl-regs.h>
#ifdef __KERNEL__
/* I/O port 0 */
#define P0MD __SYSREG(0xdb000000, u16) /* mode reg */
#define P0MD_0 0x0003 /* mask */
#define P0MD_0_IN 0x0000 /* input mode */
#define P0MD_0_OUT 0x0001 /* output mode */
#define P0MD_0_TM0IO 0x0002 /* timer 0 I/O mode */
#define P0MD_0_EYECLK 0x0003 /* test signal output (clock) */
#define P0MD_1 0x000c
#define P0MD_1_IN 0x0000
#define P0MD_1_OUT 0x0004
#define P0MD_1_TM1IO 0x0008 /* timer 1 I/O mode */
#define P0MD_1_EYED 0x000c /* test signal output (data) */
#define P0MD_2 0x0030
#define P0MD_2_IN 0x0000
#define P0MD_2_OUT 0x0010
#define P0MD_2_TM2IO 0x0020 /* timer 2 I/O mode */
#define P0MD_3 0x00c0
#define P0MD_3_IN 0x0000
#define P0MD_3_OUT 0x0040
#define P0MD_3_TM3IO 0x0080 /* timer 3 I/O mode */
#define P0MD_4 0x0300
#define P0MD_4_IN 0x0000
#define P0MD_4_OUT 0x0100
#define P0MD_4_TM4IO 0x0200 /* timer 4 I/O mode */
#define P0MD_4_XCTS 0x0300 /* XCTS input for serial port 2 */
#define P0MD_5 0x0c00
#define P0MD_5_IN 0x0000
#define P0MD_5_OUT 0x0400
#define P0MD_5_TM5IO 0x0800 /* timer 5 I/O mode */
#define P0MD_6 0x3000
#define P0MD_6_IN 0x0000
#define P0MD_6_OUT 0x1000
#define P0MD_6_TM6IOA 0x2000 /* timer 6 I/O mode A */
#define P0MD_7 0xc000
#define P0MD_7_IN 0x0000
#define P0MD_7_OUT 0x4000
#define P0MD_7_TM6IOB 0x8000 /* timer 6 I/O mode B */
#define P0IN __SYSREG(0xdb000004, u8) /* in reg */
#define P0OUT __SYSREG(0xdb000008, u8) /* out reg */
#define P0TMIO __SYSREG(0xdb00000c, u8) /* TM pin I/O control reg */
#define P0TMIO_TM0_IN 0x00
#define P0TMIO_TM0_OUT 0x01
#define P0TMIO_TM1_IN 0x00
#define P0TMIO_TM1_OUT 0x02
#define P0TMIO_TM2_IN 0x00
#define P0TMIO_TM2_OUT 0x04
#define P0TMIO_TM3_IN 0x00
#define P0TMIO_TM3_OUT 0x08
#define P0TMIO_TM4_IN 0x00
#define P0TMIO_TM4_OUT 0x10
#define P0TMIO_TM5_IN 0x00
#define P0TMIO_TM5_OUT 0x20
#define P0TMIO_TM6A_IN 0x00
#define P0TMIO_TM6A_OUT 0x40
#define P0TMIO_TM6B_IN 0x00
#define P0TMIO_TM6B_OUT 0x80
/* I/O port 1 */
#define P1MD __SYSREG(0xdb000100, u16) /* mode reg */
#define P1MD_0 0x0003 /* mask */
#define P1MD_0_IN 0x0000 /* input mode */
#define P1MD_0_OUT 0x0001 /* output mode */
#define P1MD_0_TM7IO 0x0002 /* timer 7 I/O mode */
#define P1MD_0_ADTRG 0x0003 /* A/D converter trigger mode */
#define P1MD_1 0x000c
#define P1MD_1_IN 0x0000
#define P1MD_1_OUT 0x0004
#define P1MD_1_TM8IO 0x0008 /* timer 8 I/O mode */
#define P1MD_1_XDMR0 0x000c /* DMA request input 0 mode */
#define P1MD_2 0x0030
#define P1MD_2_IN 0x0000
#define P1MD_2_OUT 0x0010
#define P1MD_2_TM9IO 0x0020 /* timer 9 I/O mode */
#define P1MD_2_XDMR1 0x0030 /* DMA request input 1 mode */
#define P1MD_3 0x00c0
#define P1MD_3_IN 0x0000
#define P1MD_3_OUT 0x0040
#define P1MD_3_TM10IO 0x0080 /* timer 10 I/O mode */
#define P1MD_3_FRQS0 0x00c0 /* CPU clock multiplier setting input 0 mode */
#define P1MD_4 0x0300
#define P1MD_4_IN 0x0000
#define P1MD_4_OUT 0x0100
#define P1MD_4_TM11IO 0x0200 /* timer 11 I/O mode */
#define P1MD_4_FRQS1 0x0300 /* CPU clock multiplier setting input 1 mode */
#define P1IN __SYSREG(0xdb000104, u8) /* in reg */
#define P1OUT __SYSREG(0xdb000108, u8) /* out reg */
#define P1TMIO __SYSREG(0xdb00010c, u8) /* TM pin I/O control reg */
#define P1TMIO_TM11_IN 0x00
#define P1TMIO_TM11_OUT 0x01
#define P1TMIO_TM10_IN 0x00
#define P1TMIO_TM10_OUT 0x02
#define P1TMIO_TM9_IN 0x00
#define P1TMIO_TM9_OUT 0x04
#define P1TMIO_TM8_IN 0x00
#define P1TMIO_TM8_OUT 0x08
#define P1TMIO_TM7_IN 0x00
#define P1TMIO_TM7_OUT 0x10
/* I/O port 2 */
#define P2MD __SYSREG(0xdb000200, u16) /* mode reg */
#define P2MD_0 0x0003 /* mask */
#define P2MD_0_IN 0x0000 /* input mode */
#define P2MD_0_OUT 0x0001 /* output mode */
#define P2MD_0_BOOTBW 0x0003 /* boot bus width selector mode */
#define P2MD_1 0x000c
#define P2MD_1_IN 0x0000
#define P2MD_1_OUT 0x0004
#define P2MD_1_BOOTSEL 0x000c /* boot device selector mode */
#define P2MD_2 0x0030
#define P2MD_2_IN 0x0000
#define P2MD_2_OUT 0x0010
#define P2MD_3 0x00c0
#define P2MD_3_IN 0x0000
#define P2MD_3_OUT 0x0040
#define P2MD_3_CKIO 0x00c0 /* mode */
#define P2MD_4 0x0300
#define P2MD_4_IN 0x0000
#define P2MD_4_OUT 0x0100
#define P2MD_4_CMOD 0x0300 /* mode */
#define P2IN __SYSREG(0xdb000204, u8) /* in reg */
#define P2OUT __SYSREG(0xdb000208, u8) /* out reg */
#define P2TMIO __SYSREG(0xdb00020c, u8) /* TM pin I/O control reg */
/* I/O port 3 */
#define P3MD __SYSREG(0xdb000300, u16) /* mode reg */
#define P3MD_0 0x0003 /* mask */
#define P3MD_0_IN 0x0000 /* input mode */
#define P3MD_0_OUT 0x0001 /* output mode */
#define P3MD_0_AFRXD 0x0002 /* AFR interface mode */
#define P3MD_1 0x000c
#define P3MD_1_IN 0x0000
#define P3MD_1_OUT 0x0004
#define P3MD_1_AFTXD 0x0008 /* AFR interface mode */
#define P3MD_2 0x0030
#define P3MD_2_IN 0x0000
#define P3MD_2_OUT 0x0010
#define P3MD_2_AFSCLK 0x0020 /* AFR interface mode */
#define P3MD_3 0x00c0
#define P3MD_3_IN 0x0000
#define P3MD_3_OUT 0x0040
#define P3MD_3_AFFS 0x0080 /* AFR interface mode */
#define P3MD_4 0x0300
#define P3MD_4_IN 0x0000
#define P3MD_4_OUT 0x0100
#define P3MD_4_AFEHC 0x0200 /* AFR interface mode */
#define P3IN __SYSREG(0xdb000304, u8) /* in reg */
#define P3OUT __SYSREG(0xdb000308, u8) /* out reg */
/* I/O port 4 */
#define P4MD __SYSREG(0xdb000400, u16) /* mode reg */
#define P4MD_0 0x0003 /* mask */
#define P4MD_0_IN 0x0000 /* input mode */
#define P4MD_0_OUT 0x0001 /* output mode */
#define P4MD_0_SCL0 0x0002 /* I2C/serial mode */
#define P4MD_1 0x000c
#define P4MD_1_IN 0x0000
#define P4MD_1_OUT 0x0004
#define P4MD_1_SDA0 0x0008
#define P4MD_2 0x0030
#define P4MD_2_IN 0x0000
#define P4MD_2_OUT 0x0010
#define P4MD_2_SCL1 0x0020
#define P4MD_3 0x00c0
#define P4MD_3_IN 0x0000
#define P4MD_3_OUT 0x0040
#define P4MD_3_SDA1 0x0080
#define P4MD_4 0x0300
#define P4MD_4_IN 0x0000
#define P4MD_4_OUT 0x0100
#define P4MD_4_SBO0 0x0200
#define P4MD_5 0x0c00
#define P4MD_5_IN 0x0000
#define P4MD_5_OUT 0x0400
#define P4MD_5_SBO1 0x0800
#define P4MD_6 0x3000
#define P4MD_6_IN 0x0000
#define P4MD_6_OUT 0x1000
#define P4MD_6_SBT0 0x2000
#define P4MD_7 0xc000
#define P4MD_7_IN 0x0000
#define P4MD_7_OUT 0x4000
#define P4MD_7_SBT1 0x8000
#define P4IN __SYSREG(0xdb000404, u8) /* in reg */
#define P4OUT __SYSREG(0xdb000408, u8) /* out reg */
/* I/O port 5 */
#define P5MD __SYSREG(0xdb000500, u16) /* mode reg */
#define P5MD_0 0x0003 /* mask */
#define P5MD_0_IN 0x0000 /* input mode */
#define P5MD_0_OUT 0x0001 /* output mode */
#define P5MD_0_IRTXD 0x0002 /* IrDA mode */
#define P5MD_0_SOUT 0x0004 /* serial mode */
#define P5MD_1 0x000c
#define P5MD_1_IN 0x0000
#define P5MD_1_OUT 0x0004
#define P5MD_1_IRRXDS 0x0008 /* IrDA mode */
#define P5MD_1_SIN 0x000c /* serial mode */
#define P5MD_2 0x0030
#define P5MD_2_IN 0x0000
#define P5MD_2_OUT 0x0010
#define P5MD_2_IRRXDF 0x0020 /* IrDA mode */
#define P5IN __SYSREG(0xdb000504, u8) /* in reg */
#define P5OUT __SYSREG(0xdb000508, u8) /* out reg */
#endif /* __KERNEL__ */
#endif /* _ASM_PIO_REGS_H */
|