|
@@ -276,3 +276,133 @@ static struct platform_device usbhs_device = {
|
|
.resource = usbhs_resources,
|
|
.resource = usbhs_resources,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* LCDC */
|
|
|
|
+static struct fb_videomode kzm_lcdc_mode = {
|
|
|
|
+ .name = "WVGA Panel",
|
|
|
|
+ .xres = 800,
|
|
|
|
+ .yres = 480,
|
|
|
|
+ .left_margin = 220,
|
|
|
|
+ .right_margin = 110,
|
|
|
|
+ .hsync_len = 70,
|
|
|
|
+ .upper_margin = 20,
|
|
|
|
+ .lower_margin = 5,
|
|
|
|
+ .vsync_len = 5,
|
|
|
|
+ .sync = 0,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct sh_mobile_lcdc_info lcdc_info = {
|
|
|
|
+ .clock_source = LCDC_CLK_BUS,
|
|
|
|
+ .ch[0] = {
|
|
|
|
+ .chan = LCDC_CHAN_MAINLCD,
|
|
|
|
+ .fourcc = V4L2_PIX_FMT_RGB565,
|
|
|
|
+ .interface_type = RGB24,
|
|
|
|
+ .lcd_modes = &kzm_lcdc_mode,
|
|
|
|
+ .num_modes = 1,
|
|
|
|
+ .clock_divider = 5,
|
|
|
|
+ .flags = 0,
|
|
|
|
+ .panel_cfg = {
|
|
|
|
+ .width = 152,
|
|
|
|
+ .height = 91,
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct resource lcdc_resources[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .name = "LCDC",
|
|
|
|
+ .start = 0xfe940000,
|
|
|
|
+ .end = 0xfe943fff,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ .start = intcs_evt2irq(0x580),
|
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device lcdc_device = {
|
|
|
|
+ .name = "sh_mobile_lcdc_fb",
|
|
|
|
+ .num_resources = ARRAY_SIZE(lcdc_resources),
|
|
|
|
+ .resource = lcdc_resources,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &lcdc_info,
|
|
|
|
+ .coherent_dma_mask = ~0,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* Fixed 1.8V regulator to be used by MMCIF */
|
|
|
|
+static struct regulator_consumer_supply fixed1v8_power_consumers[] =
|
|
|
|
+{
|
|
|
|
+ REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"),
|
|
|
|
+ REGULATOR_SUPPLY("vqmmc", "sh_mmcif.0"),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* MMCIF */
|
|
|
|
+static struct resource sh_mmcif_resources[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .name = "MMCIF",
|
|
|
|
+ .start = 0xe6bd0000,
|
|
|
|
+ .end = 0xe6bd00ff,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ .start = gic_spi(140),
|
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
|
+ },
|
|
|
|
+ [2] = {
|
|
|
|
+ .start = gic_spi(141),
|
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct sh_mmcif_plat_data sh_mmcif_platdata = {
|
|
|
|
+ .ocr = MMC_VDD_165_195,
|
|
|
|
+ .caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
|
|
|
|
+ .slave_id_tx = SHDMA_SLAVE_MMCIF_TX,
|
|
|
|
+ .slave_id_rx = SHDMA_SLAVE_MMCIF_RX,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device mmc_device = {
|
|
|
|
+ .name = "sh_mmcif",
|
|
|
|
+ .dev = {
|
|
|
|
+ .dma_mask = NULL,
|
|
|
|
+ .coherent_dma_mask = 0xffffffff,
|
|
|
|
+ .platform_data = &sh_mmcif_platdata,
|
|
|
|
+ },
|
|
|
|
+ .num_resources = ARRAY_SIZE(sh_mmcif_resources),
|
|
|
|
+ .resource = sh_mmcif_resources,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* Fixed 2.8V regulators to be used by SDHI0 and SDHI2 */
|
|
|
|
+static struct regulator_consumer_supply fixed2v8_power_consumers[] =
|
|
|
|
+{
|
|
|
|
+ REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
|
|
|
+ REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
|
|
|
+ REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.2"),
|
|
|
|
+ REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.2"),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* SDHI */
|
|
|
|
+static struct sh_mobile_sdhi_info sdhi0_info = {
|
|
|
|
+ .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
|
|
|
+ .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
|
|
|
+ .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT,
|
|
|
|
+ .tmio_caps = MMC_CAP_SD_HIGHSPEED,
|
|
|
|
+ .tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct resource sdhi0_resources[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .name = "SDHI0",
|
|
|
|
+ .start = 0xee100000,
|
|
|
|
+ .end = 0xee1000ff,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ .name = SH_MOBILE_SDHI_IRQ_CARD_DETECT,
|
|
|
|
+ .start = gic_spi(83),
|
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
|
+ },
|
|
|
|
+ [2] = {
|
|
|
|
+ .name = SH_MOBILE_SDHI_IRQ_SDCARD,
|
|
|
|
+ .start = gic_spi(84),
|