|
@@ -1463,3 +1463,168 @@ static struct platform_device bfin_spi0_device = {
|
|
/* SPORT SPI controller data */
|
|
/* SPORT SPI controller data */
|
|
static struct bfin5xx_spi_master bfin_sport_spi0_info = {
|
|
static struct bfin5xx_spi_master bfin_sport_spi0_info = {
|
|
.num_chipselect = MAX_BLACKFIN_GPIOS,
|
|
.num_chipselect = MAX_BLACKFIN_GPIOS,
|
|
|
|
+ .enable_dma = 0, /* master don't support DMA */
|
|
|
|
+ .pin_req = {P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_DRPRI,
|
|
|
|
+ P_SPORT0_RSCLK, P_SPORT0_TFS, P_SPORT0_RFS, 0},
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct resource bfin_sport_spi0_resource[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .start = SPORT0_TCR1,
|
|
|
|
+ .end = SPORT0_TCR1 + 0xFF,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ .start = IRQ_SPORT0_ERROR,
|
|
|
|
+ .end = IRQ_SPORT0_ERROR,
|
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device bfin_sport_spi0_device = {
|
|
|
|
+ .name = "bfin-sport-spi",
|
|
|
|
+ .id = 1, /* Bus number */
|
|
|
|
+ .num_resources = ARRAY_SIZE(bfin_sport_spi0_resource),
|
|
|
|
+ .resource = bfin_sport_spi0_resource,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &bfin_sport_spi0_info, /* Passed to driver */
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct bfin5xx_spi_master bfin_sport_spi1_info = {
|
|
|
|
+ .num_chipselect = MAX_BLACKFIN_GPIOS,
|
|
|
|
+ .enable_dma = 0, /* master don't support DMA */
|
|
|
|
+ .pin_req = {P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_DRPRI,
|
|
|
|
+ P_SPORT1_RSCLK, P_SPORT1_TFS, P_SPORT1_RFS, 0},
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct resource bfin_sport_spi1_resource[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .start = SPORT1_TCR1,
|
|
|
|
+ .end = SPORT1_TCR1 + 0xFF,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ .start = IRQ_SPORT1_ERROR,
|
|
|
|
+ .end = IRQ_SPORT1_ERROR,
|
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device bfin_sport_spi1_device = {
|
|
|
|
+ .name = "bfin-sport-spi",
|
|
|
|
+ .id = 2, /* Bus number */
|
|
|
|
+ .num_resources = ARRAY_SIZE(bfin_sport_spi1_resource),
|
|
|
|
+ .resource = bfin_sport_spi1_resource,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &bfin_sport_spi1_info, /* Passed to driver */
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+#endif /* sport spi master and devices */
|
|
|
|
+
|
|
|
|
+#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
|
|
|
|
+static struct platform_device bfin_fb_device = {
|
|
|
|
+ .name = "bf537_lq035",
|
|
|
|
+};
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
|
|
|
|
+#include <asm/bfin-lq035q1.h>
|
|
|
|
+
|
|
|
|
+static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = {
|
|
|
|
+ .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB,
|
|
|
|
+ .ppi_mode = USE_RGB565_16_BIT_PPI,
|
|
|
|
+ .use_bl = 0, /* let something else control the LCD Blacklight */
|
|
|
|
+ .gpio_bl = GPIO_PF7,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct resource bfin_lq035q1_resources[] = {
|
|
|
|
+ {
|
|
|
|
+ .start = IRQ_PPI_ERROR,
|
|
|
|
+ .end = IRQ_PPI_ERROR,
|
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device bfin_lq035q1_device = {
|
|
|
|
+ .name = "bfin-lq035q1",
|
|
|
|
+ .id = -1,
|
|
|
|
+ .num_resources = ARRAY_SIZE(bfin_lq035q1_resources),
|
|
|
|
+ .resource = bfin_lq035q1_resources,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &bfin_lq035q1_data,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#if defined(CONFIG_VIDEO_BLACKFIN_CAPTURE) \
|
|
|
|
+ || defined(CONFIG_VIDEO_BLACKFIN_CAPTURE_MODULE)
|
|
|
|
+#include <linux/videodev2.h>
|
|
|
|
+#include <media/blackfin/bfin_capture.h>
|
|
|
|
+#include <media/blackfin/ppi.h>
|
|
|
|
+
|
|
|
|
+static const unsigned short ppi_req[] = {
|
|
|
|
+ P_PPI0_D0, P_PPI0_D1, P_PPI0_D2, P_PPI0_D3,
|
|
|
|
+ P_PPI0_D4, P_PPI0_D5, P_PPI0_D6, P_PPI0_D7,
|
|
|
|
+ P_PPI0_CLK, P_PPI0_FS1, P_PPI0_FS2,
|
|
|
|
+ 0,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const struct ppi_info ppi_info = {
|
|
|
|
+ .type = PPI_TYPE_PPI,
|
|
|
|
+ .dma_ch = CH_PPI,
|
|
|
|
+ .irq_err = IRQ_PPI_ERROR,
|
|
|
|
+ .base = (void __iomem *)PPI_CONTROL,
|
|
|
|
+ .pin_req = ppi_req,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+#if defined(CONFIG_VIDEO_VS6624) \
|
|
|
|
+ || defined(CONFIG_VIDEO_VS6624_MODULE)
|
|
|
|
+static struct v4l2_input vs6624_inputs[] = {
|
|
|
|
+ {
|
|
|
|
+ .index = 0,
|
|
|
|
+ .name = "Camera",
|
|
|
|
+ .type = V4L2_INPUT_TYPE_CAMERA,
|
|
|
|
+ .std = V4L2_STD_UNKNOWN,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct bcap_route vs6624_routes[] = {
|
|
|
|
+ {
|
|
|
|
+ .input = 0,
|
|
|
|
+ .output = 0,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const unsigned vs6624_ce_pin = GPIO_PF10;
|
|
|
|
+
|
|
|
|
+static struct bfin_capture_config bfin_capture_data = {
|
|
|
|
+ .card_name = "BF537",
|
|
|
|
+ .inputs = vs6624_inputs,
|
|
|
|
+ .num_inputs = ARRAY_SIZE(vs6624_inputs),
|
|
|
|
+ .routes = vs6624_routes,
|
|
|
|
+ .i2c_adapter_id = 0,
|
|
|
|
+ .board_info = {
|
|
|
|
+ .type = "vs6624",
|
|
|
|
+ .addr = 0x10,
|
|
|
|
+ .platform_data = (void *)&vs6624_ce_pin,
|
|
|
|
+ },
|
|
|
|
+ .ppi_info = &ppi_info,
|
|
|
|
+ .ppi_control = (PACK_EN | DLEN_8 | XFR_TYPE | 0x0020),
|
|
|
|
+};
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+static struct platform_device bfin_capture_device = {
|
|
|
|
+ .name = "bfin_capture",
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &bfin_capture_data,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+#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,
|