From 3dbe946fbeb26c9317f1c178135e6ce178bf3332 Mon Sep 17 00:00:00 2001 From: Michel Pollet Date: Thu, 5 Feb 2009 18:26:09 +0000 Subject: [PATCH] MINI2440: Decomposed all the pin mapping Decomposed most of the pin mapping for this board. --- board/mini2440/mini2440.c | 89 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 73 insertions(+), 16 deletions(-) diff --git a/board/mini2440/mini2440.c b/board/mini2440/mini2440.c index 9b69a780..396be6bb 100644 --- a/board/mini2440/mini2440.c +++ b/board/mini2440/mini2440.c @@ -30,9 +30,10 @@ DECLARE_GLOBAL_DATA_PTR; +/* FCLK = 405 MHz, HCLK = 101 MHz, PCLK = 50 MHz, UCLK = 48 MHz */ #define CLKDIVN_VAL 5 -#define M_MDIV 0x7f // 0x6e -#define M_PDIV 0x2 // 0x3 +#define M_MDIV 0x7f +#define M_PDIV 0x2 #define M_SDIV 0x1 #define U_M_MDIV 0x38 @@ -69,22 +70,82 @@ int board_init (void) /* some delay between MPLL and UPLL */ delay (8000); - gpio->GPBCON = 0x00295551; - gpio->GPBUP = 0x000007FF; - + gpio->GPACON = 0x007FFFFF; + // port B outputs reconfigured + gpio->GPBCON = + (0x1 << 0) | // GPB0 OUT TOUT0 PWM Buzzer + (0x1 << 2) | // GPB1 OUT LCD + (0x1 << 4) | // GPB2 OUT L3MODE + (0x1 << 6) | // GBP3 OUT L3DATA + (0x1 << 8) | // GBP4 OUT L3CLOCK + (0x1 << 10) | // GBP5 OUT LED1 + (0x1 << 12) | // GBP6 OUT LED2 + (0x1 << 14) | // GBP7 OUT LED3 + (0x1 << 16) | // GBP8 OUT LED4 + (0x2 << 18) | // GBP9 --- nXDACK0 CON5 EBI + (0x2 << 20) | // GBP10 --- nXDREQ0 CON5 EBI + 0; + gpio->GPBUP = (1 << 10) - 1; // disable pullup on all 10 pins + gpio->GPBDAT = 0; + + // lcd signals on C and D gpio->GPCCON = 0xAAAAAAAA; gpio->GPCUP = 0xFFFFFFFF; gpio->GPDCON = 0xAAAAAAAA; gpio->GPDUP = 0xFFFFFFFF; - + // port E is set for all it's special functions (i2c, spi etc) gpio->GPECON = 0xAAAAAAAA; gpio->GPEUP = 0x0000FFFF; - gpio->GPFCON = 0x000055AA; - gpio->GPFUP = 0x000000FF; - gpio->GPGCON = 0xFF95FF3A; - gpio->GPGUP = 0x0000FFFF; - gpio->GPHCON = 0x0016FAAA; - gpio->GPHUP = 0x000007FF; + + gpio->GPFCON = + (0x1 << 0) | // GPG0 EINT0 OUT + (0x1 << 2) | // GPG1 EINT1 OUT + (0x1 << 4) | // GPG2 EINT2 OUT + (0x1 << 6) | // GPG3 EINT3 OUT + (0x1 << 8) | // GPG4 EINT4 OUT + (0x1 << 10) | // GPG5 EINT5 OUT + (0x1 << 12) | // GPG6 EINT6 OUT + (0x0 << 14) | // GPG7 EINT7 IN DM9000 + 0; + gpio->GPFDAT = 0; + gpio->GPFUP = ((1 << 7) - 1) // all disabled + & ~( 1 << 7 ) // but for the ethernet one, we need it. + ; + + gpio->GPGCON = + (0x0 << 0) | // GPG0 EINT8 IN Key1 + (0x1 << 2) | // GPG1 EINT9 OUT Con5 + (0x1 << 4) | // GPG2 EINT10 OUT + (0x0 << 6) | // GPG3 EINT11 IN Key2 + (0x1 << 8) | // GPG4 EINT12 OUT + (0x0 << 10) | // GPG5 EINT13 IN Key3 + (0x0 << 12) | // GPG6 EINT14 IN Key4 + (0x0 << 14) | // GPG7 EINT15 IN Key5 + (0x1 << 16) | // GPG8 EINT16 OUT nCD_SD + (0x1 << 18) | // GPG9 EINT17 OUT + (0x1 << 20) | // GPG10 EINT18 OUT + (0x0 << 22) | // GPG11 EINT19 IN Key6 + (0x0 << 24) | // GPG12 EINT18 IN // Datasheet says GPG[12..15] need to be inputs + (0x0 << 26) | // GPG13 EINT18 IN // hard pullups + (0x0 << 28) | // GPG14 EINT18 IN + (0x0 << 30) | // GPG15 EINT18 IN + 0; + gpio->GPGUP = (1 << 15) -1; // disable pullups for all pins + + gpio->GPHCON = + (0x2 << 0) | // GPH0 nCTS0 --- + (0x2 << 2) | // GPH1 nRTS0 --- + (0x2 << 4) | // GPH2 TXD0 --- + (0x2 << 6) | // GPH3 RXD0 --- + (0x2 << 8) | // GPH4 TXD1 --- + (0x2 << 10) | // GPH5 RXD1 --- + (0x2 << 12) | // GPH6 [TXD2] nRTS1 + (0x2 << 14) | // GPH7 [RXD2] nCTS1 + (0x1 << 16) | // GPH8 UEXTCLK OUT + (0x1 << 18) | // GPH9 CLKOUT0 OUT + (0x1 << 20) | // GPH10 CLKOUT1 OUT + 0; + gpio->GPHUP = (1 << 10) - 1; // disable pullups for all pins gpio->EXTINT0=0x22222222; gpio->EXTINT1=0x22222222; @@ -115,10 +176,6 @@ int board_init (void) icache_enable(); dcache_enable(); -#if defined(CONFIG_MINI2440_LED) - gpio->GPBDAT = 0x00000181; -#endif - return 0; } -- 2.11.4.GIT