]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/arm/mach-mx3/mx31lilly.c
ARM: MX3: add SPI functions for lilly1131-db
[net-next-2.6.git] / arch / arm / mach-mx3 / mx31lilly.c
index 423025150f6f127a6ef4a01fc807c99296daa1a7..f593a629d8b872dfafe55d5ce5047db08a8e6dce 100644 (file)
@@ -41,6 +41,7 @@
 #include <mach/common.h>
 #include <mach/iomux-mx3.h>
 #include <mach/board-mx31lilly.h>
+#include <mach/spi.h>
 
 #include "devices.h"
 
@@ -108,7 +109,22 @@ static struct platform_device physmap_flash_device = {
 static struct platform_device *devices[] __initdata = {
        &smsc91x_device,
        &physmap_flash_device,
-       &mxc_i2c_device1,
+};
+
+static int spi_internal_chipselect[] = {
+       MXC_SPI_CS(0),
+       MXC_SPI_CS(1),
+       MXC_SPI_CS(2),
+};
+
+static struct spi_imx_master spi0_pdata = {
+       .chipselect = spi_internal_chipselect,
+       .num_chipselect = ARRAY_SIZE(spi_internal_chipselect),
+};
+
+static struct spi_imx_master spi1_pdata = {
+       .chipselect = spi_internal_chipselect,
+       .num_chipselect = ARRAY_SIZE(spi_internal_chipselect),
 };
 
 static int mx31lilly_baseboard;
@@ -128,8 +144,26 @@ static void __init mx31lilly_board_init(void)
        }
 
        mxc_iomux_alloc_pin(MX31_PIN_CS4__CS4, "Ethernet CS");
-       mxc_iomux_alloc_pin(MX31_PIN_CSPI2_MOSI__SCL, "I2C SCL");
-       mxc_iomux_alloc_pin(MX31_PIN_CSPI2_MISO__SDA, "I2C SDA");
+
+       /* SPI */
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI1_SCLK__SCLK, "SPI1_CLK");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI1_MOSI__MOSI, "SPI1_TX");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI1_MISO__MISO, "SPI1_RX");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI1_SPI_RDY__SPI_RDY, "SPI1_RDY");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI1_SS0__SS0, "SPI1_SS0");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI1_SS1__SS1, "SPI1_SS1");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI1_SS2__SS2, "SPI1_SS2");
+
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI2_SCLK__SCLK, "SPI2_CLK");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI2_MOSI__MOSI, "SPI2_TX");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI2_MISO__MISO, "SPI2_RX");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI2_SPI_RDY__SPI_RDY, "SPI2_RDY");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI2_SS0__SS0, "SPI2_SS0");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI2_SS1__SS1, "SPI2_SS1");
+       mxc_iomux_alloc_pin(MX31_PIN_CSPI2_SS2__SS2, "SPI2_SS2");
+
+       mxc_register_device(&mxc_spi_device0, &spi0_pdata);
+       mxc_register_device(&mxc_spi_device1, &spi1_pdata);
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
 }