|
@@ -184,3 +184,112 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
|
|
|
.max_speed_hz = 16700000,
|
|
|
.bus_num = 0,
|
|
|
.chip_select = 2,
|
|
|
+ .platform_data = &bfin_spi_dataflash_data,
|
|
|
+ .controller_data = &spi_dataflash_chip_info,
|
|
|
+ .mode = SPI_MODE_3, /* SPI_CPHA and SPI_CPOL */
|
|
|
+ },
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
+/* SPI controller data */
|
|
|
+/* SPI (0) */
|
|
|
+static struct resource bfin_spi0_resource[] = {
|
|
|
+ [0] = {
|
|
|
+ .start = SPI0_REGBASE,
|
|
|
+ .end = SPI0_REGBASE + 0xFF,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .start = CH_SPI,
|
|
|
+ .end = CH_SPI,
|
|
|
+ .flags = IORESOURCE_DMA,
|
|
|
+ },
|
|
|
+ [2] = {
|
|
|
+ .start = IRQ_SPI,
|
|
|
+ .end = IRQ_SPI,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct bfin5xx_spi_master spi_bfin_master_info = {
|
|
|
+ .num_chipselect = 8,
|
|
|
+ .enable_dma = 1, /* master has the ability to do dma transfer */
|
|
|
+ .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device spi_bfin_master_device = {
|
|
|
+ .name = "bfin-spi",
|
|
|
+ .id = 0, /* Bus number */
|
|
|
+ .num_resources = ARRAY_SIZE(bfin_spi0_resource),
|
|
|
+ .resource = bfin_spi0_resource,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &spi_bfin_master_info, /* Passed to driver */
|
|
|
+ },
|
|
|
+};
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
|
|
|
+#ifdef CONFIG_SERIAL_BFIN_UART0
|
|
|
+static struct resource bfin_uart0_resources[] = {
|
|
|
+ {
|
|
|
+ .start = UART0_THR,
|
|
|
+ .end = UART0_GCTL+2,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = IRQ_UART0_TX,
|
|
|
+ .end = IRQ_UART0_TX,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = IRQ_UART0_RX,
|
|
|
+ .end = IRQ_UART0_RX,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = IRQ_UART0_ERROR,
|
|
|
+ .end = IRQ_UART0_ERROR,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = CH_UART0_TX,
|
|
|
+ .end = CH_UART0_TX,
|
|
|
+ .flags = IORESOURCE_DMA,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = CH_UART0_RX,
|
|
|
+ .end = CH_UART0_RX,
|
|
|
+ .flags = IORESOURCE_DMA,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static unsigned short bfin_uart0_peripherals[] = {
|
|
|
+ P_UART0_TX, P_UART0_RX, 0
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device bfin_uart0_device = {
|
|
|
+ .name = "bfin-uart",
|
|
|
+ .id = 0,
|
|
|
+ .num_resources = ARRAY_SIZE(bfin_uart0_resources),
|
|
|
+ .resource = bfin_uart0_resources,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
|
|
|
+ },
|
|
|
+};
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_SERIAL_BFIN_UART1
|
|
|
+static struct resource bfin_uart1_resources[] = {
|
|
|
+ {
|
|
|
+ .start = UART1_THR,
|
|
|
+ .end = UART1_GCTL+2,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = IRQ_UART1_TX,
|
|
|
+ .end = IRQ_UART1_TX,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = IRQ_UART1_RX,
|
|
|
+ .end = IRQ_UART1_RX,
|