Commit 0f74296a authored by Nicolas Ferre's avatar Nicolas Ferre

at91: at91sam9g20ek modify dual slot evaluation kit

at91sam9g20ek rev. C and onwards embed two SD/MMC slots. This patch modify the
previous dual slot board definition to match the official rev. C board. It also
allows the use of at91_mci SD/MMC driver in addition to the atmel-mci one.

Some pins have been re-affected from leds or Ethernet phy IRQ to the SD/MMC
slot A. This lead to a modification of those definitions.
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: default avatarAndrew Victor <linux@maxim.org.za>
parent a9366e61
...@@ -289,13 +289,6 @@ config MACH_NEOCORE926 ...@@ -289,13 +289,6 @@ config MACH_NEOCORE926
help help
Select this if you are using the Adeneo Neocore 926 board. Select this if you are using the Adeneo Neocore 926 board.
config MACH_AT91SAM9G20EK_2MMC
bool "Atmel AT91SAM9G20-EK Evaluation Kit modified for 2 MMC Slots"
depends on ARCH_AT91SAM9G20
help
Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit
Rev A or B modified for 2 MMC Slots.
endif endif
# ---------------------------------------------------------- # ----------------------------------------------------------
...@@ -322,7 +315,16 @@ config MACH_AT91SAM9G20EK ...@@ -322,7 +315,16 @@ config MACH_AT91SAM9G20EK
bool "Atmel AT91SAM9G20-EK Evaluation Kit" bool "Atmel AT91SAM9G20-EK Evaluation Kit"
depends on ARCH_AT91SAM9G20 depends on ARCH_AT91SAM9G20
help help
Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit. Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit
that embeds only one SD/MMC slot.
config MACH_AT91SAM9G20EK_2MMC
bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots"
depends on ARCH_AT91SAM9G20
help
Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit
with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and
onwards.
config MACH_CPU9G20 config MACH_CPU9G20
bool "Eukrea CPU9G20 board" bool "Eukrea CPU9G20 board"
...@@ -392,7 +394,7 @@ config MTD_AT91_DATAFLASH_CARD ...@@ -392,7 +394,7 @@ config MTD_AT91_DATAFLASH_CARD
config MTD_NAND_ATMEL_BUSWIDTH_16 config MTD_NAND_ATMEL_BUSWIDTH_16
bool "Enable 16-bit data bus interface to NAND flash" bool "Enable 16-bit data bus interface to NAND flash"
depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK) depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK)
help help
On AT91SAM926x boards both types of NAND flash can be present On AT91SAM926x boards both types of NAND flash can be present
(8 and 16 bit data bus width). (8 and 16 bit data bus width).
......
...@@ -90,7 +90,7 @@ static struct at91_udc_data __initdata ek_udc_data = { ...@@ -90,7 +90,7 @@ static struct at91_udc_data __initdata ek_udc_data = {
* SPI devices. * SPI devices.
*/ */
static struct spi_board_info ek_spi_devices[] = { static struct spi_board_info ek_spi_devices[] = {
#if !defined(CONFIG_MMC_ATMELMCI) #if !(defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_AT91))
{ /* DataFlash chip */ { /* DataFlash chip */
.modalias = "mtd_dataflash", .modalias = "mtd_dataflash",
.chip_select = 1, .chip_select = 1,
...@@ -113,7 +113,7 @@ static struct spi_board_info ek_spi_devices[] = { ...@@ -113,7 +113,7 @@ static struct spi_board_info ek_spi_devices[] = {
* MACB Ethernet device * MACB Ethernet device
*/ */
static struct at91_eth_data __initdata ek_macb_data = { static struct at91_eth_data __initdata ek_macb_data = {
.phy_irq_pin = AT91_PIN_PC12, .phy_irq_pin = AT91_PIN_PB0,
.is_rmii = 1, .is_rmii = 1,
}; };
...@@ -194,24 +194,27 @@ static void __init ek_add_device_nand(void) ...@@ -194,24 +194,27 @@ static void __init ek_add_device_nand(void)
/* /*
* MCI (SD/MMC) * MCI (SD/MMC)
* det_pin and wp_pin are not connected * wp_pin is not connected
*/ */
#if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE) #if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE)
static struct mci_platform_data __initdata ek_mmc_data = { static struct mci_platform_data __initdata ek_mmc_data = {
.slot[0] = { .slot[0] = {
.bus_width = 4, .bus_width = 4,
.detect_pin = -ENODEV, .detect_pin = AT91_PIN_PC2,
.wp_pin = -ENODEV, .wp_pin = -ENODEV,
}, },
.slot[1] = { .slot[1] = {
.bus_width = 4, .bus_width = 4,
.detect_pin = -ENODEV, .detect_pin = AT91_PIN_PC9,
.wp_pin = -ENODEV, .wp_pin = -ENODEV,
}, },
}; };
#else #else
static struct amci_platform_data __initdata ek_mmc_data = { static struct at91_mmc_data __initdata ek_mmc_data = {
.slot_b = 1, /* Only one slot so use slot B */
.wire4 = 1,
.det_pin = AT91_PIN_PC9,
}; };
#endif #endif
...@@ -221,13 +224,13 @@ static struct amci_platform_data __initdata ek_mmc_data = { ...@@ -221,13 +224,13 @@ static struct amci_platform_data __initdata ek_mmc_data = {
static struct gpio_led ek_leds[] = { static struct gpio_led ek_leds[] = {
{ /* "bottom" led, green, userled1 to be defined */ { /* "bottom" led, green, userled1 to be defined */
.name = "ds5", .name = "ds5",
.gpio = AT91_PIN_PB12, .gpio = AT91_PIN_PB8,
.active_low = 1, .active_low = 1,
.default_trigger = "none", .default_trigger = "none",
}, },
{ /* "power" led, yellow */ { /* "power" led, yellow */
.name = "ds1", .name = "ds1",
.gpio = AT91_PIN_PB13, .gpio = AT91_PIN_PB9,
.default_trigger = "heartbeat", .default_trigger = "heartbeat",
} }
}; };
...@@ -254,7 +257,11 @@ static void __init ek_board_init(void) ...@@ -254,7 +257,11 @@ static void __init ek_board_init(void)
/* Ethernet */ /* Ethernet */
at91_add_device_eth(&ek_macb_data); at91_add_device_eth(&ek_macb_data);
/* MMC */ /* MMC */
#if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE)
at91_add_device_mci(0, &ek_mmc_data); at91_add_device_mci(0, &ek_mmc_data);
#else
at91_add_device_mmc(0, &ek_mmc_data);
#endif
/* I2C */ /* I2C */
at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices)); at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
/* LEDs */ /* LEDs */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment