Author: imp
Date: Sun Jul 15 05:41:43 2012
New Revision: 238465
URL: http://svn.freebsd.org/changeset/base/238465

Log:
  Configure the peripheral pins for MCI devices.  Eliminate the now-unused
  at91_pio_rm9200.h.

Deleted:
  head/sys/arm/at91/at91_pio_rm9200.h
Modified:
  head/sys/arm/at91/at91rm9200_devices.c
  head/sys/arm/at91/at91rm9200var.h
  head/sys/arm/at91/board_bwct.c
  head/sys/arm/at91/board_hl200.c
  head/sys/arm/at91/board_kb920x.c
  head/sys/arm/at91/board_tsc4370.c

Modified: head/sys/arm/at91/at91rm9200_devices.c
==============================================================================
--- head/sys/arm/at91/at91rm9200_devices.c      Sun Jul 15 05:38:43 2012        
(r238464)
+++ head/sys/arm/at91/at91rm9200_devices.c      Sun Jul 15 05:41:43 2012        
(r238465)
@@ -80,6 +80,10 @@ at91rm9200_config_uart(unsigned devid, u
         * to do.
         */
 
+       /*
+        * Current boards supported don't need the extras, but they should be
+        * implemented.  But that should wait until the new pin api goes in.
+        */
        switch (devid) {
        case AT91_ID_DBGU:
                at91_pio_use_periph_a(AT91RM92_PIOA_BASE, AT91C_PIO_PA30, 0); 
/* DRXD */
@@ -122,3 +126,17 @@ at91rm9200_config_uart(unsigned devid, u
                break;
        }
 }
+
+void
+at91rm9200_config_mci(int has_4wire)
+{
+       /* XXX TODO chip changed GPIO, other slots, etc */
+       at91_pio_use_periph_a(AT91RM92_PIOA_BASE, AT91C_PIO_PA27,  0); /* MCCK 
*/
+       at91_pio_use_periph_a(AT91RM92_PIOA_BASE, AT91C_PIO_PA28, 1);  /* MCCDA 
*/
+       at91_pio_use_periph_a(AT91RM92_PIOA_BASE, AT91C_PIO_PA29, 1);  /* MCDA0 
*/
+       if (has_4wire) {
+               at91_pio_use_periph_b(AT91RM92_PIOB_BASE, AT91C_PIO_PB3, 1); /* 
MCDA1 */
+               at91_pio_use_periph_b(AT91RM92_PIOB_BASE, AT91C_PIO_PB4, 1); /* 
MCDA2 */
+               at91_pio_use_periph_b(AT91RM92_PIOB_BASE, AT91C_PIO_PB5, 1); /* 
MCDA3 */
+       }
+}

Modified: head/sys/arm/at91/at91rm9200var.h
==============================================================================
--- head/sys/arm/at91/at91rm9200var.h   Sun Jul 15 05:38:43 2012        
(r238464)
+++ head/sys/arm/at91/at91rm9200var.h   Sun Jul 15 05:41:43 2012        
(r238465)
@@ -50,4 +50,9 @@ void at91rm9200_set_subtype(enum at91_so
 
 void at91rm9200_config_uart(unsigned devid, unsigned unit, unsigned pinmask);
 
+/*
+ * MCI (sd/mmc card support)
+ */
+void at91rm9200_config_mci(int has_4wire);
+
 #endif /* ARM_AT91_AT91RM9200VAR_H */

Modified: head/sys/arm/at91/board_bwct.c
==============================================================================
--- head/sys/arm/at91/board_bwct.c      Sun Jul 15 05:38:43 2012        
(r238464)
+++ head/sys/arm/at91/board_bwct.c      Sun Jul 15 05:41:43 2012        
(r238465)
@@ -45,6 +45,9 @@ board_init(void)
         */
        at91rm9200_config_uart(AT91_ID_DBGU, 0, 0);   /* DBGU just Tx and Rx */
 
+       at91rm9200_config_mci(0);
+       /* Configure ethernet */
+
        return (at91_ramsize());
 }
 

Modified: head/sys/arm/at91/board_hl200.c
==============================================================================
--- head/sys/arm/at91/board_hl200.c     Sun Jul 15 05:38:43 2012        
(r238464)
+++ head/sys/arm/at91/board_hl200.c     Sun Jul 15 05:41:43 2012        
(r238465)
@@ -34,8 +34,6 @@ __FBSDID("$FreeBSD$");
 #include <arm/at91/at91var.h>
 #include <arm/at91/at91rm92reg.h>
 #include <arm/at91/at91rm9200var.h>
-#include <arm/at91/at91_piovar.h>
-#include <arm/at91/at91_pio_rm9200.h>
 
 BOARD_INIT long
 board_init(void)
@@ -51,6 +49,16 @@ board_init(void)
        at91rm9200_config_uart(AT91_ID_DBGU, 0, 0);   /* DBGU just Tx and Rx */
        at91rm9200_config_uart(AT91RM9200_ID_USART0, 1, 0);   /* Tx and Rx */
 
+       at91rm9200_config_mci(0);                       /* HOTe HL200 unknown 1 
vs 4 wire */
+
+       /* Enable CF card slot */
+       /* Enable sound thing */
+       /* Enable VGA chip */
+       /* Enable ethernet */
+       /* Enable TWI + RTC */
+       /* Enable USB Host */
+       /* Enable USB Device (gadget) */
+
        return (at91_ramsize());
 }
 

Modified: head/sys/arm/at91/board_kb920x.c
==============================================================================
--- head/sys/arm/at91/board_kb920x.c    Sun Jul 15 05:38:43 2012        
(r238464)
+++ head/sys/arm/at91/board_kb920x.c    Sun Jul 15 05:41:43 2012        
(r238465)
@@ -32,10 +32,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/board.h>
 #include <arm/at91/at91board.h>
 #include <arm/at91/at91var.h>
-#include <arm/at91/at91rm92reg.h>
 #include <arm/at91/at91rm9200var.h>
-#include <arm/at91/at91_piovar.h>
-#include <arm/at91/at91_pio_rm9200.h>
 
 BOARD_INIT long
 board_init(void)
@@ -54,13 +51,14 @@ board_init(void)
        at91rm9200_config_uart(AT91RM9200_ID_USART3, 3, /* Tx, Rx, CTS, RTS - 
RS485 */
            AT91_UART_CTS | AT91_UART_RTS);
 
-       /*  MMC/SD Interface */
-       at91_pio_use_periph_a(AT91RM92_PIOA_BASE,AT91C_PA27_MCCK,  0);
-       at91_pio_use_periph_a(AT91RM92_PIOA_BASE,AT91C_PA28_MCCDA, 1);
-       at91_pio_use_periph_a(AT91RM92_PIOA_BASE,AT91C_PA29_MCDA0, 1);
-       at91_pio_use_periph_b(AT91RM92_PIOB_BASE,AT91C_PB3_MCDA1, 1);
-       at91_pio_use_periph_b(AT91RM92_PIOB_BASE,AT91C_PB4_MCDA2, 1);
-       at91_pio_use_periph_b(AT91RM92_PIOB_BASE,AT91C_PB5_MCDA3, 1);
+       at91rm9200_config_mci(1);
+
+       /* CFE interface */
+       /* ethernet interface */
+       /* lcd interface */
+       /* USB host */
+       /* USB device (gadget) */
+       /* TWI */
 
        return (at91_ramsize());
 }

Modified: head/sys/arm/at91/board_tsc4370.c
==============================================================================
--- head/sys/arm/at91/board_tsc4370.c   Sun Jul 15 05:38:43 2012        
(r238464)
+++ head/sys/arm/at91/board_tsc4370.c   Sun Jul 15 05:41:43 2012        
(r238465)
@@ -35,7 +35,7 @@ __FBSDID("$FreeBSD$");
 #include <arm/at91/at91rm92reg.h>
 #include <arm/at91/at91rm9200var.h>
 #include <arm/at91/at91_piovar.h>
-#include <arm/at91/at91_pio_rm9200.h>
+#include <arm/at91/at91_pioreg.h>
 
 BOARD_INIT long
 board_init(void)
@@ -49,6 +49,15 @@ board_init(void)
        at91rm9200_config_uart(AT91RM9200_ID_USART2, 3, 0);   /* Tx and Rx */
        at91rm9200_config_uart(AT91RM9200_ID_USART3, 4, 0);   /* Tx and Rx */
 
+       at91rm9200_config_mci(0);                       /* tsc4370 board has 
only 1 wire */
+                                                       /* Newer boards may 
have 4 wires */
+
+       /* Configure TWI */
+       /* Configure SPI + dataflash */
+       /* Configure SSC */
+       /* Configure USB Host */
+       /* Configure FPGA attached to chip selects */
+
        /* Pin assignment */
        /* Assert PA24 low -- talk to rubidium */
        at91_pio_use_gpio(AT91RM92_PIOA_BASE, AT91C_PIO_PA24);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to