svn commit: r238465 - head/sys/arm/at91
Warner Losh
imp at FreeBSD.org
Sun Jul 15 05:41:44 UTC 2012
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);
More information about the svn-src-head
mailing list