[ARM] 3178/1: S3C2400 - adds GPIO registers definitions to regs-gpio.h

Patch from Lucas Correia Villa Real

This patch adds definitions to GPIO registers for the S3C2400 into
include/asm-arm/arch-s3c2410/regs-gpio.h.

Signed-off-by: Lucas Correia Villa Real <lucasvr@gobolinux.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Lucas Correia Villa Real and committed by
Russell King
192cdc58 79a558ff

+227 -12
+227 -12
include/asm-arm/arch-s3c2410/regs-gpio.h
··· 21 21 * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA 22 22 * 28-Mar-2005 LCVR Fixed definition of GPB10 23 23 * 26-Oct-2005 BJD Added generic configuration types 24 + * 27-Nov-2005 LCVR Added definitions to S3C2400 registers 24 25 */ 25 26 26 27 ··· 55 54 56 55 #define S3C2410_GPIOREG(x) ((x) + S3C24XX_VA_GPIO) 57 56 58 - /* port A - 22bits, zero in bit X makes pin X output 57 + /* port A - S3C2410: 22bits, zero in bit X makes pin X output 58 + * S3C2400: 18bits, zero in bit X makes pin X output 59 59 * 1 makes port special function, this is default 60 60 */ 61 61 #define S3C2410_GPACON S3C2410_GPIOREG(0x00) 62 62 #define S3C2410_GPADAT S3C2410_GPIOREG(0x04) 63 + 64 + #define S3C2400_GPACON S3C2410_GPIOREG(0x00) 65 + #define S3C2400_GPADAT S3C2410_GPIOREG(0x04) 63 66 64 67 #define S3C2410_GPA0 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 0) 65 68 #define S3C2410_GPA0_OUT (0<<0) ··· 108 103 #define S3C2410_GPA10 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 10) 109 104 #define S3C2410_GPA10_OUT (0<<10) 110 105 #define S3C2410_GPA10_ADDR25 (1<<10) 106 + #define S3C2400_GPA10_SCKE (1<<10) 111 107 112 108 #define S3C2410_GPA11 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 11) 113 109 #define S3C2410_GPA11_OUT (0<<11) 114 110 #define S3C2410_GPA11_ADDR26 (1<<11) 111 + #define S3C2400_GPA11_nCAS0 (1<<11) 115 112 116 113 #define S3C2410_GPA12 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 12) 117 114 #define S3C2410_GPA12_OUT (0<<12) 118 115 #define S3C2410_GPA12_nGCS1 (1<<12) 116 + #define S3C2400_GPA12_nCAS1 (1<<12) 119 117 120 118 #define S3C2410_GPA13 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 13) 121 119 #define S3C2410_GPA13_OUT (0<<13) 122 120 #define S3C2410_GPA13_nGCS2 (1<<13) 121 + #define S3C2400_GPA13_nGCS1 (1<<13) 123 122 124 123 #define S3C2410_GPA14 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 14) 125 124 #define S3C2410_GPA14_OUT (0<<14) 126 125 #define S3C2410_GPA14_nGCS3 (1<<14) 126 + #define S3C2400_GPA14_nGCS2 (1<<14) 127 127 128 128 #define S3C2410_GPA15 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 15) 129 129 #define S3C2410_GPA15_OUT (0<<15) 130 130 #define S3C2410_GPA15_nGCS4 (1<<15) 131 + #define S3C2400_GPA15_nGCS3 (1<<15) 131 132 132 133 #define S3C2410_GPA16 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 16) 133 134 #define S3C2410_GPA16_OUT (0<<16) 134 135 #define S3C2410_GPA16_nGCS5 (1<<16) 136 + #define S3C2400_GPA16_nGCS4 (1<<16) 135 137 136 138 #define S3C2410_GPA17 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 17) 137 139 #define S3C2410_GPA17_OUT (0<<17) 138 140 #define S3C2410_GPA17_CLE (1<<17) 141 + #define S3C2400_GPA17_nGCS5 (1<<17) 139 142 140 143 #define S3C2410_GPA18 S3C2410_GPIONO(S3C2410_GPIO_BANKA, 18) 141 144 #define S3C2410_GPA18_OUT (0<<18) ··· 165 152 #define S3C2410_GPA22_OUT (0<<22) 166 153 #define S3C2410_GPA22_nFCE (1<<22) 167 154 168 - /* 0x08 and 0x0c are reserved */ 155 + /* 0x08 and 0x0c are reserved on S3C2410 */ 169 156 170 - /* GPB is 10 IO pins, each configured by 2 bits each in GPBCON. 157 + /* S3C2410: 158 + * GPB is 10 IO pins, each configured by 2 bits each in GPBCON. 171 159 * 00 = input, 01 = output, 10=special function, 11=reserved 160 + 161 + * S3C2400: 162 + * GPB is 16 IO pins, each configured by 2 bits each in GPBCON. 163 + * 00 = input, 01 = output, 10=data, 11=special function 164 + 172 165 * bit 0,1 = pin 0, 2,3= pin 1... 173 166 * 174 167 * CPBUP = pull up resistor control, 1=disabled, 0=enabled ··· 184 165 #define S3C2410_GPBDAT S3C2410_GPIOREG(0x14) 185 166 #define S3C2410_GPBUP S3C2410_GPIOREG(0x18) 186 167 168 + #define S3C2400_GPBCON S3C2410_GPIOREG(0x08) 169 + #define S3C2400_GPBDAT S3C2410_GPIOREG(0x0C) 170 + #define S3C2400_GPBUP S3C2410_GPIOREG(0x10) 171 + 187 172 /* no i/o pin in port b can have value 3! */ 188 173 189 174 #define S3C2410_GPB0 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 0) 190 175 #define S3C2410_GPB0_INP (0x00 << 0) 191 176 #define S3C2410_GPB0_OUTP (0x01 << 0) 192 177 #define S3C2410_GPB0_TOUT0 (0x02 << 0) 178 + #define S3C2400_GPB0_DATA16 (0x02 << 0) 193 179 194 180 #define S3C2410_GPB1 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 1) 195 181 #define S3C2410_GPB1_INP (0x00 << 2) 196 182 #define S3C2410_GPB1_OUTP (0x01 << 2) 197 183 #define S3C2410_GPB1_TOUT1 (0x02 << 2) 184 + #define S3C2400_GPB1_DATA17 (0x02 << 2) 198 185 199 186 #define S3C2410_GPB2 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 2) 200 187 #define S3C2410_GPB2_INP (0x00 << 4) 201 188 #define S3C2410_GPB2_OUTP (0x01 << 4) 202 189 #define S3C2410_GPB2_TOUT2 (0x02 << 4) 190 + #define S3C2400_GPB2_DATA18 (0x02 << 4) 191 + #define S3C2400_GPB2_TCLK1 (0x03 << 4) 203 192 204 193 #define S3C2410_GPB3 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 3) 205 194 #define S3C2410_GPB3_INP (0x00 << 6) 206 195 #define S3C2410_GPB3_OUTP (0x01 << 6) 207 196 #define S3C2410_GPB3_TOUT3 (0x02 << 6) 197 + #define S3C2400_GPB3_DATA19 (0x02 << 6) 198 + #define S3C2400_GPB3_TXD1 (0x03 << 6) 208 199 209 200 #define S3C2410_GPB4 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 4) 210 201 #define S3C2410_GPB4_INP (0x00 << 8) 211 202 #define S3C2410_GPB4_OUTP (0x01 << 8) 212 203 #define S3C2410_GPB4_TCLK0 (0x02 << 8) 204 + #define S3C2400_GPB4_DATA20 (0x02 << 8) 213 205 #define S3C2410_GPB4_MASK (0x03 << 8) 206 + #define S3C2400_GPB4_RXD1 (0x03 << 8) 207 + #define S3C2400_GPB4_MASK (0x03 << 8) 214 208 215 209 #define S3C2410_GPB5 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 5) 216 210 #define S3C2410_GPB5_INP (0x00 << 10) 217 211 #define S3C2410_GPB5_OUTP (0x01 << 10) 218 212 #define S3C2410_GPB5_nXBACK (0x02 << 10) 213 + #define S3C2400_GPB5_DATA21 (0x02 << 10) 214 + #define S3C2400_GPB5_nCTS1 (0x03 << 10) 219 215 220 216 #define S3C2410_GPB6 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 6) 221 217 #define S3C2410_GPB6_INP (0x00 << 12) 222 218 #define S3C2410_GPB6_OUTP (0x01 << 12) 223 219 #define S3C2410_GPB6_nXBREQ (0x02 << 12) 220 + #define S3C2400_GPB6_DATA22 (0x02 << 12) 221 + #define S3C2400_GPB6_nRTS1 (0x03 << 12) 224 222 225 223 #define S3C2410_GPB7 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 7) 226 224 #define S3C2410_GPB7_INP (0x00 << 14) 227 225 #define S3C2410_GPB7_OUTP (0x01 << 14) 228 226 #define S3C2410_GPB7_nXDACK1 (0x02 << 14) 227 + #define S3C2400_GPB7_DATA23 (0x02 << 14) 229 228 230 229 #define S3C2410_GPB8 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 8) 231 230 #define S3C2410_GPB8_INP (0x00 << 16) 232 231 #define S3C2410_GPB8_OUTP (0x01 << 16) 233 232 #define S3C2410_GPB8_nXDREQ1 (0x02 << 16) 233 + #define S3C2400_GPB8_DATA24 (0x02 << 16) 234 234 235 235 #define S3C2410_GPB9 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 9) 236 236 #define S3C2410_GPB9_INP (0x00 << 18) 237 237 #define S3C2410_GPB9_OUTP (0x01 << 18) 238 238 #define S3C2410_GPB9_nXDACK0 (0x02 << 18) 239 + #define S3C2400_GPB9_DATA25 (0x02 << 18) 240 + #define S3C2400_GPB9_I2SSDI (0x03 << 18) 239 241 240 242 #define S3C2410_GPB10 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 10) 241 243 #define S3C2410_GPB10_INP (0x00 << 20) 242 244 #define S3C2410_GPB10_OUTP (0x01 << 20) 243 245 #define S3C2410_GPB10_nXDRE0 (0x02 << 20) 246 + #define S3C2400_GPB10_DATA26 (0x02 << 20) 247 + #define S3C2400_GPB10_nSS (0x03 << 20) 248 + 249 + #define S3C2400_GPB11 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 11) 250 + #define S3C2400_GPB11_INP (0x00 << 22) 251 + #define S3C2400_GPB11_OUTP (0x01 << 22) 252 + #define S3C2400_GPB11_DATA27 (0x02 << 22) 253 + 254 + #define S3C2400_GPB12 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 12) 255 + #define S3C2400_GPB12_INP (0x00 << 24) 256 + #define S3C2400_GPB12_OUTP (0x01 << 24) 257 + #define S3C2400_GPB12_DATA28 (0x02 << 24) 258 + 259 + #define S3C2400_GPB13 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 13) 260 + #define S3C2400_GPB13_INP (0x00 << 26) 261 + #define S3C2400_GPB13_OUTP (0x01 << 26) 262 + #define S3C2400_GPB13_DATA29 (0x02 << 26) 263 + 264 + #define S3C2400_GPB14 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 14) 265 + #define S3C2400_GPB14_INP (0x00 << 28) 266 + #define S3C2400_GPB14_OUTP (0x01 << 28) 267 + #define S3C2400_GPB14_DATA30 (0x02 << 28) 268 + 269 + #define S3C2400_GPB15 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 15) 270 + #define S3C2400_GPB15_INP (0x00 << 30) 271 + #define S3C2400_GPB15_OUTP (0x01 << 30) 272 + #define S3C2400_GPB15_DATA31 (0x02 << 30) 273 + 274 + #define S3C2410_GPB_PUPDIS(x) (1<<(x)) 244 275 245 276 /* Port C consits of 16 GPIO/Special function 246 277 * ··· 302 233 #define S3C2410_GPCDAT S3C2410_GPIOREG(0x24) 303 234 #define S3C2410_GPCUP S3C2410_GPIOREG(0x28) 304 235 236 + #define S3C2400_GPCCON S3C2410_GPIOREG(0x14) 237 + #define S3C2400_GPCDAT S3C2410_GPIOREG(0x18) 238 + #define S3C2400_GPCUP S3C2410_GPIOREG(0x1C) 239 + 305 240 #define S3C2410_GPC0 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 0) 306 241 #define S3C2410_GPC0_INP (0x00 << 0) 307 242 #define S3C2410_GPC0_OUTP (0x01 << 0) 308 243 #define S3C2410_GPC0_LEND (0x02 << 0) 244 + #define S3C2400_GPC0_VD0 (0x02 << 0) 309 245 310 246 #define S3C2410_GPC1 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 1) 311 247 #define S3C2410_GPC1_INP (0x00 << 2) 312 248 #define S3C2410_GPC1_OUTP (0x01 << 2) 313 249 #define S3C2410_GPC1_VCLK (0x02 << 2) 250 + #define S3C2400_GPC1_VD1 (0x02 << 2) 314 251 315 252 #define S3C2410_GPC2 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 2) 316 253 #define S3C2410_GPC2_INP (0x00 << 4) 317 254 #define S3C2410_GPC2_OUTP (0x01 << 4) 318 255 #define S3C2410_GPC2_VLINE (0x02 << 4) 256 + #define S3C2400_GPC2_VD2 (0x02 << 4) 319 257 320 258 #define S3C2410_GPC3 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 3) 321 259 #define S3C2410_GPC3_INP (0x00 << 6) 322 260 #define S3C2410_GPC3_OUTP (0x01 << 6) 323 261 #define S3C2410_GPC3_VFRAME (0x02 << 6) 262 + #define S3C2400_GPC3_VD3 (0x02 << 6) 324 263 325 264 #define S3C2410_GPC4 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 4) 326 265 #define S3C2410_GPC4_INP (0x00 << 8) 327 266 #define S3C2410_GPC4_OUTP (0x01 << 8) 328 267 #define S3C2410_GPC4_VM (0x02 << 8) 268 + #define S3C2400_GPC4_VD4 (0x02 << 8) 329 269 330 270 #define S3C2410_GPC5 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 5) 331 271 #define S3C2410_GPC5_INP (0x00 << 10) 332 272 #define S3C2410_GPC5_OUTP (0x01 << 10) 333 273 #define S3C2410_GPC5_LCDVF0 (0x02 << 10) 274 + #define S3C2400_GPC5_VD5 (0x02 << 10) 334 275 335 276 #define S3C2410_GPC6 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 6) 336 277 #define S3C2410_GPC6_INP (0x00 << 12) 337 278 #define S3C2410_GPC6_OUTP (0x01 << 12) 338 279 #define S3C2410_GPC6_LCDVF1 (0x02 << 12) 280 + #define S3C2400_GPC6_VD6 (0x02 << 12) 339 281 340 282 #define S3C2410_GPC7 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 7) 341 283 #define S3C2410_GPC7_INP (0x00 << 14) 342 284 #define S3C2410_GPC7_OUTP (0x01 << 14) 343 285 #define S3C2410_GPC7_LCDVF2 (0x02 << 14) 286 + #define S3C2400_GPC7_VD7 (0x02 << 14) 344 287 345 288 #define S3C2410_GPC8 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 8) 346 289 #define S3C2410_GPC8_INP (0x00 << 16) 347 290 #define S3C2410_GPC8_OUTP (0x01 << 16) 348 291 #define S3C2410_GPC8_VD0 (0x02 << 16) 292 + #define S3C2400_GPC8_VD8 (0x02 << 16) 349 293 350 294 #define S3C2410_GPC9 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 9) 351 295 #define S3C2410_GPC9_INP (0x00 << 18) 352 296 #define S3C2410_GPC9_OUTP (0x01 << 18) 353 297 #define S3C2410_GPC9_VD1 (0x02 << 18) 298 + #define S3C2400_GPC9_VD9 (0x02 << 18) 354 299 355 300 #define S3C2410_GPC10 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 10) 356 301 #define S3C2410_GPC10_INP (0x00 << 20) 357 302 #define S3C2410_GPC10_OUTP (0x01 << 20) 358 303 #define S3C2410_GPC10_VD2 (0x02 << 20) 304 + #define S3C2400_GPC10_VD10 (0x02 << 20) 359 305 360 306 #define S3C2410_GPC11 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 11) 361 307 #define S3C2410_GPC11_INP (0x00 << 22) 362 308 #define S3C2410_GPC11_OUTP (0x01 << 22) 363 309 #define S3C2410_GPC11_VD3 (0x02 << 22) 310 + #define S3C2400_GPC11_VD11 (0x02 << 22) 364 311 365 312 #define S3C2410_GPC12 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 12) 366 313 #define S3C2410_GPC12_INP (0x00 << 24) 367 314 #define S3C2410_GPC12_OUTP (0x01 << 24) 368 315 #define S3C2410_GPC12_VD4 (0x02 << 24) 316 + #define S3C2400_GPC12_VD12 (0x02 << 24) 369 317 370 318 #define S3C2410_GPC13 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 13) 371 319 #define S3C2410_GPC13_INP (0x00 << 26) 372 320 #define S3C2410_GPC13_OUTP (0x01 << 26) 373 321 #define S3C2410_GPC13_VD5 (0x02 << 26) 322 + #define S3C2400_GPC13_VD13 (0x02 << 26) 374 323 375 324 #define S3C2410_GPC14 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 14) 376 325 #define S3C2410_GPC14_INP (0x00 << 28) 377 326 #define S3C2410_GPC14_OUTP (0x01 << 28) 378 327 #define S3C2410_GPC14_VD6 (0x02 << 28) 328 + #define S3C2400_GPC14_VD14 (0x02 << 28) 379 329 380 330 #define S3C2410_GPC15 S3C2410_GPIONO(S3C2410_GPIO_BANKC, 15) 381 331 #define S3C2410_GPC15_INP (0x00 << 30) 382 332 #define S3C2410_GPC15_OUTP (0x01 << 30) 383 333 #define S3C2410_GPC15_VD7 (0x02 << 30) 334 + #define S3C2400_GPC15_VD15 (0x02 << 30) 384 335 385 - /* Port D consists of 16 GPIO/Special function 336 + #define S3C2410_GPC_PUPDIS(x) (1<<(x)) 337 + 338 + /* 339 + * S3C2410: Port D consists of 16 GPIO/Special function 386 340 * 387 341 * almost identical setup to port b, but the special functions are mostly 388 342 * to do with the video system's data. 343 + * 344 + * S3C2400: Port D consists of 11 GPIO/Special function 345 + * 346 + * almost identical setup to port c 389 347 */ 390 348 391 349 #define S3C2410_GPDCON S3C2410_GPIOREG(0x30) 392 350 #define S3C2410_GPDDAT S3C2410_GPIOREG(0x34) 393 351 #define S3C2410_GPDUP S3C2410_GPIOREG(0x38) 394 352 353 + #define S3C2400_GPDCON S3C2410_GPIOREG(0x20) 354 + #define S3C2400_GPDDAT S3C2410_GPIOREG(0x24) 355 + #define S3C2400_GPDUP S3C2410_GPIOREG(0x28) 356 + 395 357 #define S3C2410_GPD0 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 0) 396 358 #define S3C2410_GPD0_INP (0x00 << 0) 397 359 #define S3C2410_GPD0_OUTP (0x01 << 0) 398 360 #define S3C2410_GPD0_VD8 (0x02 << 0) 361 + #define S3C2400_GPD0_VFRAME (0x02 << 0) 399 362 400 363 #define S3C2410_GPD1 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 1) 401 364 #define S3C2410_GPD1_INP (0x00 << 2) 402 365 #define S3C2410_GPD1_OUTP (0x01 << 2) 403 366 #define S3C2410_GPD1_VD9 (0x02 << 2) 367 + #define S3C2400_GPD1_VM (0x02 << 2) 404 368 405 369 #define S3C2410_GPD2 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 2) 406 370 #define S3C2410_GPD2_INP (0x00 << 4) 407 371 #define S3C2410_GPD2_OUTP (0x01 << 4) 408 372 #define S3C2410_GPD2_VD10 (0x02 << 4) 373 + #define S3C2400_GPD2_VLINE (0x02 << 4) 409 374 410 375 #define S3C2410_GPD3 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 3) 411 376 #define S3C2410_GPD3_INP (0x00 << 6) 412 377 #define S3C2410_GPD3_OUTP (0x01 << 6) 413 378 #define S3C2410_GPD3_VD11 (0x02 << 6) 379 + #define S3C2400_GPD3_VCLK (0x02 << 6) 414 380 415 381 #define S3C2410_GPD4 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 4) 416 382 #define S3C2410_GPD4_INP (0x00 << 8) 417 383 #define S3C2410_GPD4_OUTP (0x01 << 8) 418 384 #define S3C2410_GPD4_VD12 (0x02 << 8) 385 + #define S3C2400_GPD4_LEND (0x02 << 8) 419 386 420 387 #define S3C2410_GPD5 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 5) 421 388 #define S3C2410_GPD5_INP (0x00 << 10) 422 389 #define S3C2410_GPD5_OUTP (0x01 << 10) 423 390 #define S3C2410_GPD5_VD13 (0x02 << 10) 391 + #define S3C2400_GPD5_TOUT0 (0x02 << 10) 424 392 425 393 #define S3C2410_GPD6 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 6) 426 394 #define S3C2410_GPD6_INP (0x00 << 12) 427 395 #define S3C2410_GPD6_OUTP (0x01 << 12) 428 396 #define S3C2410_GPD6_VD14 (0x02 << 12) 397 + #define S3C2400_GPD6_TOUT1 (0x02 << 12) 429 398 430 399 #define S3C2410_GPD7 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 7) 431 400 #define S3C2410_GPD7_INP (0x00 << 14) 432 401 #define S3C2410_GPD7_OUTP (0x01 << 14) 433 402 #define S3C2410_GPD7_VD15 (0x02 << 14) 403 + #define S3C2400_GPD7_TOUT2 (0x02 << 14) 434 404 435 405 #define S3C2410_GPD8 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 8) 436 406 #define S3C2410_GPD8_INP (0x00 << 16) 437 407 #define S3C2410_GPD8_OUTP (0x01 << 16) 438 408 #define S3C2410_GPD8_VD16 (0x02 << 16) 409 + #define S3C2400_GPD8_TOUT3 (0x02 << 16) 439 410 440 411 #define S3C2410_GPD9 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 9) 441 412 #define S3C2410_GPD9_INP (0x00 << 18) 442 413 #define S3C2410_GPD9_OUTP (0x01 << 18) 443 414 #define S3C2410_GPD9_VD17 (0x02 << 18) 415 + #define S3C2400_GPD9_TCLK0 (0x02 << 18) 416 + #define S3C2410_GPD9_MASK (0x03 << 18) 444 417 445 418 #define S3C2410_GPD10 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 10) 446 419 #define S3C2410_GPD10_INP (0x00 << 20) 447 420 #define S3C2410_GPD10_OUTP (0x01 << 20) 448 421 #define S3C2410_GPD10_VD18 (0x02 << 20) 422 + #define S3C2400_GPD10_nWAIT (0x02 << 20) 449 423 450 424 #define S3C2410_GPD11 S3C2410_GPIONO(S3C2410_GPIO_BANKD, 11) 451 425 #define S3C2410_GPD11_INP (0x00 << 22) ··· 515 403 #define S3C2410_GPD15_OUTP (0x01 << 30) 516 404 #define S3C2410_GPD15_VD23 (0x02 << 30) 517 405 518 - /* Port E consists of 16 GPIO/Special function 406 + #define S3C2410_GPD_PUPDIS(x) (1<<(x)) 407 + 408 + /* S3C2410: 409 + * Port E consists of 16 GPIO/Special function 519 410 * 520 411 * again, the same as port B, but dealing with I2S, SDI, and 521 412 * more miscellaneous functions 413 + * 414 + * S3C2400: 415 + * Port E consists of 12 GPIO/Special function 416 + * 417 + * GPIO / interrupt inputs 522 418 */ 523 419 524 420 #define S3C2410_GPECON S3C2410_GPIOREG(0x40) 525 421 #define S3C2410_GPEDAT S3C2410_GPIOREG(0x44) 526 422 #define S3C2410_GPEUP S3C2410_GPIOREG(0x48) 527 423 424 + #define S3C2400_GPECON S3C2410_GPIOREG(0x2C) 425 + #define S3C2400_GPEDAT S3C2410_GPIOREG(0x30) 426 + #define S3C2400_GPEUP S3C2410_GPIOREG(0x34) 427 + 528 428 #define S3C2410_GPE0 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 0) 529 429 #define S3C2410_GPE0_INP (0x00 << 0) 530 430 #define S3C2410_GPE0_OUTP (0x01 << 0) 531 431 #define S3C2410_GPE0_I2SLRCK (0x02 << 0) 432 + #define S3C2400_GPE0_EINT0 (0x02 << 0) 532 433 #define S3C2410_GPE0_MASK (0x03 << 0) 533 434 534 435 #define S3C2410_GPE1 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 1) 535 436 #define S3C2410_GPE1_INP (0x00 << 2) 536 437 #define S3C2410_GPE1_OUTP (0x01 << 2) 537 438 #define S3C2410_GPE1_I2SSCLK (0x02 << 2) 439 + #define S3C2400_GPE1_EINT1 (0x02 << 2) 440 + #define S3C2400_GPE1_nSS (0x03 << 2) 538 441 #define S3C2410_GPE1_MASK (0x03 << 2) 539 442 540 443 #define S3C2410_GPE2 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 2) 541 444 #define S3C2410_GPE2_INP (0x00 << 4) 542 445 #define S3C2410_GPE2_OUTP (0x01 << 4) 543 446 #define S3C2410_GPE2_CDCLK (0x02 << 4) 447 + #define S3C2400_GPE2_EINT2 (0x02 << 4) 448 + #define S3C2400_GPE2_I2SSDI (0x03 << 4) 544 449 545 450 #define S3C2410_GPE3 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 3) 546 451 #define S3C2410_GPE3_INP (0x00 << 6) 547 452 #define S3C2410_GPE3_OUTP (0x01 << 6) 548 453 #define S3C2410_GPE3_I2SSDI (0x02 << 6) 454 + #define S3C2400_GPE3_EINT3 (0x02 << 6) 455 + #define S3C2400_GPE3_nCTS1 (0x03 << 6) 549 456 #define S3C2410_GPE3_nSS0 (0x03 << 6) 550 457 #define S3C2410_GPE3_MASK (0x03 << 6) 551 458 ··· 572 441 #define S3C2410_GPE4_INP (0x00 << 8) 573 442 #define S3C2410_GPE4_OUTP (0x01 << 8) 574 443 #define S3C2410_GPE4_I2SSDO (0x02 << 8) 444 + #define S3C2400_GPE4_EINT4 (0x02 << 8) 445 + #define S3C2400_GPE4_nRTS1 (0x03 << 8) 575 446 #define S3C2410_GPE4_I2SSDI (0x03 << 8) 576 447 #define S3C2410_GPE4_MASK (0x03 << 8) 577 448 ··· 581 448 #define S3C2410_GPE5_INP (0x00 << 10) 582 449 #define S3C2410_GPE5_OUTP (0x01 << 10) 583 450 #define S3C2410_GPE5_SDCLK (0x02 << 10) 451 + #define S3C2400_GPE5_EINT5 (0x02 << 10) 452 + #define S3C2400_GPE5_TCLK1 (0x03 << 10) 584 453 585 454 #define S3C2410_GPE6 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 6) 586 455 #define S3C2410_GPE6_INP (0x00 << 12) 587 456 #define S3C2410_GPE6_OUTP (0x01 << 12) 588 457 #define S3C2410_GPE6_SDCMD (0x02 << 12) 458 + #define S3C2400_GPE6_EINT6 (0x02 << 12) 589 459 590 460 #define S3C2410_GPE7 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 7) 591 461 #define S3C2410_GPE7_INP (0x00 << 14) 592 462 #define S3C2410_GPE7_OUTP (0x01 << 14) 593 463 #define S3C2410_GPE7_SDDAT0 (0x02 << 14) 464 + #define S3C2400_GPE7_EINT7 (0x02 << 14) 594 465 595 466 #define S3C2410_GPE8 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 8) 596 467 #define S3C2410_GPE8_INP (0x00 << 16) 597 468 #define S3C2410_GPE8_OUTP (0x01 << 16) 598 469 #define S3C2410_GPE8_SDDAT1 (0x02 << 16) 470 + #define S3C2400_GPE8_nXDACK0 (0x02 << 16) 599 471 600 472 #define S3C2410_GPE9 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 9) 601 473 #define S3C2410_GPE9_INP (0x00 << 18) 602 474 #define S3C2410_GPE9_OUTP (0x01 << 18) 603 475 #define S3C2410_GPE9_SDDAT2 (0x02 << 18) 476 + #define S3C2400_GPE9_nXDACK1 (0x02 << 18) 477 + #define S3C2400_GPE9_nXBACK (0x03 << 18) 604 478 605 479 #define S3C2410_GPE10 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 10) 606 480 #define S3C2410_GPE10_INP (0x00 << 20) 607 481 #define S3C2410_GPE10_OUTP (0x01 << 20) 608 482 #define S3C2410_GPE10_SDDAT3 (0x02 << 20) 483 + #define S3C2400_GPE10_nXDREQ0 (0x02 << 20) 609 484 610 485 #define S3C2410_GPE11 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 11) 611 486 #define S3C2410_GPE11_INP (0x00 << 22) 612 487 #define S3C2410_GPE11_OUTP (0x01 << 22) 613 488 #define S3C2410_GPE11_SPIMISO0 (0x02 << 22) 489 + #define S3C2400_GPE11_nXDREQ1 (0x02 << 22) 490 + #define S3C2400_GPE11_nXBREQ (0x03 << 22) 614 491 615 492 #define S3C2410_GPE12 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 12) 616 493 #define S3C2410_GPE12_INP (0x00 << 24) ··· 652 509 653 510 #define S3C2410_GPE_PUPDIS(x) (1<<(x)) 654 511 655 - /* Port F consists of 8 GPIO/Special function 512 + /* S3C2410: 513 + * Port F consists of 8 GPIO/Special function 656 514 * 657 515 * GPIO / interrupt inputs 658 516 * ··· 661 517 * 00 = 0 input, 1 output, 2 interrupt (EINT0..7), 3 undefined 662 518 * 663 519 * pull up works like all other ports. 520 + * 521 + * S3C2400: 522 + * Port F consists of 7 GPIO/Special function 523 + * 524 + * GPIO/serial/misc pins 664 525 */ 665 526 666 527 #define S3C2410_GPFCON S3C2410_GPIOREG(0x50) 667 528 #define S3C2410_GPFDAT S3C2410_GPIOREG(0x54) 668 529 #define S3C2410_GPFUP S3C2410_GPIOREG(0x58) 669 530 531 + #define S3C2400_GPFCON S3C2410_GPIOREG(0x38) 532 + #define S3C2400_GPFDAT S3C2410_GPIOREG(0x3C) 533 + #define S3C2400_GPFUP S3C2410_GPIOREG(0x40) 534 + 670 535 #define S3C2410_GPF0 S3C2410_GPIONO(S3C2410_GPIO_BANKF, 0) 671 536 #define S3C2410_GPF0_INP (0x00 << 0) 672 537 #define S3C2410_GPF0_OUTP (0x01 << 0) 673 538 #define S3C2410_GPF0_EINT0 (0x02 << 0) 539 + #define S3C2400_GPF0_RXD0 (0x02 << 0) 674 540 675 541 #define S3C2410_GPF1 S3C2410_GPIONO(S3C2410_GPIO_BANKF, 1) 676 542 #define S3C2410_GPF1_INP (0x00 << 2) 677 543 #define S3C2410_GPF1_OUTP (0x01 << 2) 678 544 #define S3C2410_GPF1_EINT1 (0x02 << 2) 545 + #define S3C2400_GPF1_RXD1 (0x02 << 2) 546 + #define S3C2400_GPF1_IICSDA (0x03 << 2) 679 547 680 548 #define S3C2410_GPF2 S3C2410_GPIONO(S3C2410_GPIO_BANKF, 2) 681 549 #define S3C2410_GPF2_INP (0x00 << 4) 682 550 #define S3C2410_GPF2_OUTP (0x01 << 4) 683 551 #define S3C2410_GPF2_EINT2 (0x02 << 4) 552 + #define S3C2400_GPF2_TXD0 (0x02 << 4) 684 553 685 554 #define S3C2410_GPF3 S3C2410_GPIONO(S3C2410_GPIO_BANKF, 3) 686 555 #define S3C2410_GPF3_INP (0x00 << 6) 687 556 #define S3C2410_GPF3_OUTP (0x01 << 6) 688 557 #define S3C2410_GPF3_EINT3 (0x02 << 6) 558 + #define S3C2400_GPF3_TXD1 (0x02 << 6) 559 + #define S3C2400_GPF3_IICSCL (0x03 << 6) 689 560 690 561 #define S3C2410_GPF4 S3C2410_GPIONO(S3C2410_GPIO_BANKF, 4) 691 562 #define S3C2410_GPF4_INP (0x00 << 8) 692 563 #define S3C2410_GPF4_OUTP (0x01 << 8) 693 564 #define S3C2410_GPF4_EINT4 (0x02 << 8) 565 + #define S3C2400_GPF4_nRTS0 (0x02 << 8) 566 + #define S3C2400_GPF4_nXBACK (0x03 << 8) 694 567 695 568 #define S3C2410_GPF5 S3C2410_GPIONO(S3C2410_GPIO_BANKF, 5) 696 569 #define S3C2410_GPF5_INP (0x00 << 10) 697 570 #define S3C2410_GPF5_OUTP (0x01 << 10) 698 571 #define S3C2410_GPF5_EINT5 (0x02 << 10) 572 + #define S3C2400_GPF5_nCTS0 (0x02 << 10) 573 + #define S3C2400_GPF5_nXBREQ (0x03 << 10) 699 574 700 575 #define S3C2410_GPF6 S3C2410_GPIONO(S3C2410_GPIO_BANKF, 6) 701 576 #define S3C2410_GPF6_INP (0x00 << 12) 702 577 #define S3C2410_GPF6_OUTP (0x01 << 12) 703 578 #define S3C2410_GPF6_EINT6 (0x02 << 12) 579 + #define S3C2400_GPF6_CLKOUT (0x02 << 12) 704 580 705 581 #define S3C2410_GPF7 S3C2410_GPIONO(S3C2410_GPIO_BANKF, 7) 706 582 #define S3C2410_GPF7_INP (0x00 << 14) 707 583 #define S3C2410_GPF7_OUTP (0x01 << 14) 708 584 #define S3C2410_GPF7_EINT7 (0x02 << 14) 709 585 710 - /* Port G consists of 8 GPIO/IRQ/Special function 586 + #define S3C2410_GPF_PUPDIS(x) (1<<(x)) 587 + 588 + /* S3C2410: 589 + * Port G consists of 8 GPIO/IRQ/Special function 711 590 * 712 591 * GPGCON has 2 bits for each of the input pins on port F 713 592 * 00 = 0 input, 1 output, 2 interrupt (EINT0..7), 3 special func 714 593 * 715 594 * pull up works like all other ports. 595 + * 596 + * S3C2400: 597 + * Port G consists of 10 GPIO/Special function 716 598 */ 717 599 718 600 #define S3C2410_GPGCON S3C2410_GPIOREG(0x60) 719 601 #define S3C2410_GPGDAT S3C2410_GPIOREG(0x64) 720 602 #define S3C2410_GPGUP S3C2410_GPIOREG(0x68) 721 603 604 + #define S3C2400_GPGCON S3C2410_GPIOREG(0x44) 605 + #define S3C2400_GPGDAT S3C2410_GPIOREG(0x48) 606 + #define S3C2400_GPGUP S3C2410_GPIOREG(0x4C) 607 + 722 608 #define S3C2410_GPG0 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 0) 723 609 #define S3C2410_GPG0_INP (0x00 << 0) 724 610 #define S3C2410_GPG0_OUTP (0x01 << 0) 725 611 #define S3C2410_GPG0_EINT8 (0x02 << 0) 612 + #define S3C2400_GPG0_I2SLRCK (0x02 << 0) 726 613 727 614 #define S3C2410_GPG1 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 1) 728 615 #define S3C2410_GPG1_INP (0x00 << 2) 729 616 #define S3C2410_GPG1_OUTP (0x01 << 2) 730 617 #define S3C2410_GPG1_EINT9 (0x02 << 2) 618 + #define S3C2400_GPG1_I2SSCLK (0x02 << 2) 731 619 732 620 #define S3C2410_GPG2 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 2) 733 621 #define S3C2410_GPG2_INP (0x00 << 4) 734 622 #define S3C2410_GPG2_OUTP (0x01 << 4) 735 623 #define S3C2410_GPG2_EINT10 (0x02 << 4) 624 + #define S3C2400_GPG2_CDCLK (0x02 << 4) 736 625 737 626 #define S3C2410_GPG3 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 3) 738 627 #define S3C2410_GPG3_INP (0x00 << 6) 739 628 #define S3C2410_GPG3_OUTP (0x01 << 6) 740 629 #define S3C2410_GPG3_EINT11 (0x02 << 6) 630 + #define S3C2400_GPG3_I2SSDO (0x02 << 6) 631 + #define S3C2400_GPG3_I2SSDI (0x03 << 6) 741 632 742 633 #define S3C2410_GPG4 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 4) 743 634 #define S3C2410_GPG4_INP (0x00 << 8) 744 635 #define S3C2410_GPG4_OUTP (0x01 << 8) 745 636 #define S3C2410_GPG4_EINT12 (0x02 << 8) 637 + #define S3C2400_GPG4_MMCCLK (0x02 << 8) 638 + #define S3C2400_GPG4_I2SSDI (0x03 << 8) 746 639 #define S3C2410_GPG4_LCDPWREN (0x03 << 8) 747 640 748 641 #define S3C2410_GPG5 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 5) 749 642 #define S3C2410_GPG5_INP (0x00 << 10) 750 643 #define S3C2410_GPG5_OUTP (0x01 << 10) 751 644 #define S3C2410_GPG5_EINT13 (0x02 << 10) 645 + #define S3C2400_GPG5_MMCCMD (0x02 << 10) 646 + #define S3C2400_GPG5_IICSDA (0x03 << 10) 752 647 #define S3C2410_GPG5_SPIMISO1 (0x03 << 10) 753 648 754 649 #define S3C2410_GPG6 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 6) 755 650 #define S3C2410_GPG6_INP (0x00 << 12) 756 651 #define S3C2410_GPG6_OUTP (0x01 << 12) 757 652 #define S3C2410_GPG6_EINT14 (0x02 << 12) 653 + #define S3C2400_GPG6_MMCDAT (0x02 << 12) 654 + #define S3C2400_GPG6_IICSCL (0x03 << 12) 758 655 #define S3C2410_GPG6_SPIMOSI1 (0x03 << 12) 759 656 760 657 #define S3C2410_GPG7 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 7) ··· 803 618 #define S3C2410_GPG7_OUTP (0x01 << 14) 804 619 #define S3C2410_GPG7_EINT15 (0x02 << 14) 805 620 #define S3C2410_GPG7_SPICLK1 (0x03 << 14) 621 + #define S3C2400_GPG7_SPIMISO (0x02 << 14) 622 + #define S3C2400_GPG7_IICSDA (0x03 << 14) 806 623 807 624 #define S3C2410_GPG8 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 8) 808 625 #define S3C2410_GPG8_INP (0x00 << 16) 809 626 #define S3C2410_GPG8_OUTP (0x01 << 16) 810 627 #define S3C2410_GPG8_EINT16 (0x02 << 16) 628 + #define S3C2400_GPG8_SPIMOSI (0x02 << 16) 629 + #define S3C2400_GPG8_IICSCL (0x03 << 16) 811 630 812 631 #define S3C2410_GPG9 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 9) 813 632 #define S3C2410_GPG9_INP (0x00 << 18) 814 633 #define S3C2410_GPG9_OUTP (0x01 << 18) 815 634 #define S3C2410_GPG9_EINT17 (0x02 << 18) 635 + #define S3C2400_GPG9_SPICLK (0x02 << 18) 636 + #define S3C2400_GPG9_MMCCLK (0x03 << 18) 816 637 817 638 #define S3C2410_GPG10 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 10) 818 639 #define S3C2410_GPG10_INP (0x00 << 20) ··· 928 737 #define S3C2410_GPH10_CLKOUT1 (0x02 << 20) 929 738 930 739 /* miscellaneous control */ 931 - 740 + #define S3C2400_MISCCR S3C2410_GPIOREG(0x54) 932 741 #define S3C2410_MISCCR S3C2410_GPIOREG(0x80) 933 742 #define S3C2410_DCLKCON S3C2410_GPIOREG(0x84) 934 743 935 744 /* see clock.h for dclk definitions */ 936 745 937 746 /* pullup control on databus */ 938 - #define S3C2410_MISCCR_SPUCR_HEN (0) 747 + #define S3C2410_MISCCR_SPUCR_HEN (0<<0) 939 748 #define S3C2410_MISCCR_SPUCR_HDIS (1<<0) 940 - #define S3C2410_MISCCR_SPUCR_LEN (0) 749 + #define S3C2410_MISCCR_SPUCR_LEN (0<<1) 941 750 #define S3C2410_MISCCR_SPUCR_LDIS (1<<1) 942 751 943 - #define S3C2410_MISCCR_USBDEV (0) 752 + #define S3C2400_MISCCR_SPUCR_LEN (0<<0) 753 + #define S3C2400_MISCCR_SPUCR_LDIS (1<<0) 754 + #define S3C2400_MISCCR_SPUCR_HEN (0<<1) 755 + #define S3C2400_MISCCR_SPUCR_HDIS (1<<1) 756 + 757 + #define S3C2400_MISCCR_HZ_STOPEN (0<<2) 758 + #define S3C2400_MISCCR_HZ_STOPPREV (1<<2) 759 + 760 + #define S3C2410_MISCCR_USBDEV (0<<3) 944 761 #define S3C2410_MISCCR_USBHOST (1<<3) 945 762 946 763 #define S3C2410_MISCCR_CLK0_MPLL (0<<4) ··· 984 785 * 985 786 * Samsung datasheet p9-25 986 787 */ 987 - 788 + #define S3C2400_EXTINT0 S3C2410_GPIOREG(0x58) 988 789 #define S3C2410_EXTINT0 S3C2410_GPIOREG(0x88) 989 790 #define S3C2410_EXTINT1 S3C2410_GPIOREG(0x8C) 990 791 #define S3C2410_EXTINT2 S3C2410_GPIOREG(0x90) ··· 1031 832 #define S3C2410_GSTATUS2_WTRESET (1<<2) 1032 833 #define S3C2410_GSTATUS2_OFFRESET (1<<1) 1033 834 #define S3C2410_GSTATUS2_PONRESET (1<<0) 835 + 836 + /* open drain control register */ 837 + #define S3C2400_OPENCR S3C2410_GPIOREG(0x50) 838 + 839 + #define S3C2400_OPENCR_OPC_RXD1DIS (0<<0) 840 + #define S3C2400_OPENCR_OPC_RXD1EN (1<<0) 841 + #define S3C2400_OPENCR_OPC_TXD1DIS (0<<1) 842 + #define S3C2400_OPENCR_OPC_TXD1EN (1<<1) 843 + #define S3C2400_OPENCR_OPC_CMDDIS (0<<2) 844 + #define S3C2400_OPENCR_OPC_CMDEN (1<<2) 845 + #define S3C2400_OPENCR_OPC_DATDIS (0<<3) 846 + #define S3C2400_OPENCR_OPC_DATEN (1<<3) 847 + #define S3C2400_OPENCR_OPC_MISODIS (0<<4) 848 + #define S3C2400_OPENCR_OPC_MISOEN (1<<4) 849 + #define S3C2400_OPENCR_OPC_MOSIDIS (0<<5) 850 + #define S3C2400_OPENCR_OPC_MOSIEN (1<<5) 1034 851 1035 852 #endif /* __ASM_ARCH_REGS_GPIO_H */ 1036 853