Loading arch/arm/mach-shmobile/board-ag5evm.c +7 −17 Original line number Diff line number Diff line Loading @@ -229,16 +229,6 @@ static void lcd_backlight_reset(void) gpio_set_value(GPIO_PORT235, 1); } static void lcd_on(void *board_data, struct fb_info *info) { lcd_backlight_on(); } static void lcd_off(void *board_data) { lcd_backlight_reset(); } /* LCDC0 */ static const struct fb_videomode lcdc0_modes[] = { { Loading @@ -262,14 +252,14 @@ static struct sh_mobile_lcdc_info lcdc0_info = { .interface_type = RGB24, .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .lcd_size_cfg.width = 44, .lcd_size_cfg.height = 79, .fourcc = V4L2_PIX_FMT_RGB565, .lcd_cfg = lcdc0_modes, .num_cfg = ARRAY_SIZE(lcdc0_modes), .board_cfg = { .display_on = lcd_on, .display_off = lcd_off, .lcd_modes = lcdc0_modes, .num_modes = ARRAY_SIZE(lcdc0_modes), .panel_cfg = { .width = 44, .height = 79, .display_on = lcd_backlight_on, .display_off = lcd_backlight_reset, }, } }; Loading arch/arm/mach-shmobile/board-ap4evb.c +145 −145 Original line number Diff line number Diff line Loading @@ -258,8 +258,14 @@ static struct sh_mobile_meram_info meram_info = { static struct resource meram_resources[] = { [0] = { .name = "MERAM", .name = "regs", .start = 0xe8000000, .end = 0xe807ffff, .flags = IORESOURCE_MEM, }, [1] = { .name = "meram", .start = 0xe8080000, .end = 0xe81fffff, .flags = IORESOURCE_MEM, }, Loading Loading @@ -437,82 +443,6 @@ static struct platform_device usb1_host_device = { .resource = usb1_host_resources, }; static const struct fb_videomode ap4evb_lcdc_modes[] = { { #ifdef CONFIG_AP4EVB_QHD .name = "R63302(QHD)", .xres = 544, .yres = 961, .left_margin = 72, .right_margin = 600, .hsync_len = 16, .upper_margin = 8, .lower_margin = 8, .vsync_len = 2, .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT, #else .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, #endif }, }; static struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .marker_icb = 28, .cache_icb = 24, .meram_offset = 0x0, .meram_size = 0x40, }, .icb[1] = { .marker_icb = 29, .cache_icb = 25, .meram_offset = 0x40, .meram_size = 0x40, }, }; static struct sh_mobile_lcdc_info lcdc_info = { .meram_dev = &meram_info, .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .lcd_cfg = ap4evb_lcdc_modes, .num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes), .meram_cfg = &lcd_meram_cfg, } }; static struct resource lcdc_resources[] = { [0] = { .name = "LCDC", .start = 0xfe940000, /* P4-only space */ .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, }, }; /* * QHD display */ Loading Loading @@ -593,6 +523,8 @@ static struct resource mipidsi0_resources[] = { }, }; static struct sh_mobile_lcdc_info lcdc_info; static struct sh_mipi_dsi_info mipidsi0_info = { .data_format = MIPI_RGB888, .lcd_chan = &lcdc_info.ch[0], Loading @@ -619,6 +551,81 @@ static struct platform_device *qhd_devices[] __initdata = { }; #endif /* CONFIG_AP4EVB_QHD */ /* LCDC0 */ static const struct fb_videomode ap4evb_lcdc_modes[] = { { #ifdef CONFIG_AP4EVB_QHD .name = "R63302(QHD)", .xres = 544, .yres = 961, .left_margin = 72, .right_margin = 600, .hsync_len = 16, .upper_margin = 8, .lower_margin = 8, .vsync_len = 2, .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT, #else .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, #endif }, }; static const struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .meram_size = 0x40, }, .icb[1] = { .meram_size = 0x40, }, }; static struct sh_mobile_lcdc_info lcdc_info = { .meram_dev = &meram_info, .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .lcd_modes = ap4evb_lcdc_modes, .num_modes = ARRAY_SIZE(ap4evb_lcdc_modes), .meram_cfg = &lcd_meram_cfg, #ifdef CONFIG_AP4EVB_QHD .tx_dev = &mipidsi0_device, #endif } }; static struct resource lcdc_resources[] = { [0] = { .name = "LCDC", .start = 0xfe940000, /* P4-only space */ .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, }, }; /* FSI */ #define IRQ_FSI evt2irq(0x1840) static int __fsi_set_rate(struct clk *clk, long rate, int enable) Loading Loading @@ -798,65 +805,11 @@ static struct platform_device fsi_ak4643_device = { }, }; static struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .marker_icb = 30, .cache_icb = 26, .meram_offset = 0x80, .meram_size = 0x100, }, .icb[1] = { .marker_icb = 31, .cache_icb = 27, .meram_offset = 0x180, .meram_size = 0x100, }, }; static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { .clock_source = LCDC_CLK_EXTERNAL, .meram_dev = &meram_info, .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .interface_type = RGB24, .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .meram_cfg = &hdmi_meram_cfg, } }; static struct resource lcdc1_resources[] = { [0] = { .name = "LCDC1", .start = 0xfe944000, .end = 0xfe947fff, .flags = IORESOURCE_MEM, }, [1] = { .start = intcs_evt2irq(0x1780), .flags = IORESOURCE_IRQ, }, }; static struct platform_device lcdc1_device = { .name = "sh_mobile_lcdc_fb", .num_resources = ARRAY_SIZE(lcdc1_resources), .resource = lcdc1_resources, .id = 1, .dev = { .platform_data = &sh_mobile_lcdc1_info, .coherent_dma_mask = ~0, }, }; /* LCDC1 */ static long ap4evb_clk_optimize(unsigned long target, unsigned long *best_freq, unsigned long *parent_freq); static struct sh_mobile_hdmi_info hdmi_info = { .lcd_chan = &sh_mobile_lcdc1_info.ch[0], .lcd_dev = &lcdc1_device.dev, .flags = HDMI_SND_SRC_SPDIF, .clk_optimize_parent = ap4evb_clk_optimize, }; Loading Loading @@ -885,10 +838,6 @@ static struct platform_device hdmi_device = { }, }; static struct platform_device fsi_hdmi_device = { .name = "sh_fsi2_b_hdmi", }; static long ap4evb_clk_optimize(unsigned long target, unsigned long *best_freq, unsigned long *parent_freq) { Loading @@ -908,6 +857,57 @@ static long ap4evb_clk_optimize(unsigned long target, unsigned long *best_freq, return error; } static const struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .meram_size = 0x100, }, .icb[1] = { .meram_size = 0x100, }, }; static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { .clock_source = LCDC_CLK_EXTERNAL, .meram_dev = &meram_info, .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .interface_type = RGB24, .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .meram_cfg = &hdmi_meram_cfg, .tx_dev = &hdmi_device, } }; static struct resource lcdc1_resources[] = { [0] = { .name = "LCDC1", .start = 0xfe944000, .end = 0xfe947fff, .flags = IORESOURCE_MEM, }, [1] = { .start = intcs_evt2irq(0x1780), .flags = IORESOURCE_IRQ, }, }; static struct platform_device lcdc1_device = { .name = "sh_mobile_lcdc_fb", .num_resources = ARRAY_SIZE(lcdc1_resources), .resource = lcdc1_resources, .id = 1, .dev = { .platform_data = &sh_mobile_lcdc1_info, .coherent_dma_mask = ~0, }, }; static struct platform_device fsi_hdmi_device = { .name = "sh_fsi2_b_hdmi", }; static struct gpio_led ap4evb_leds[] = { { .name = "led4", Loading Loading @@ -1042,9 +1042,9 @@ static struct platform_device *ap4evb_devices[] __initdata = { &fsi_ak4643_device, &fsi_hdmi_device, &sh_mmcif_device, &lcdc1_device, &lcdc_device, &hdmi_device, &lcdc_device, &lcdc1_device, &ceu_device, &ap4evb_camera, &meram_device, Loading Loading @@ -1355,8 +1355,8 @@ static void __init ap4evb_init(void) lcdc_info.ch[0].interface_type = RGB24; lcdc_info.ch[0].clock_divider = 1; lcdc_info.ch[0].flags = LCDC_FLAGS_DWPOL; lcdc_info.ch[0].lcd_size_cfg.width = 44; lcdc_info.ch[0].lcd_size_cfg.height = 79; lcdc_info.ch[0].panel_cfg.width = 44; lcdc_info.ch[0].panel_cfg.height = 79; platform_add_devices(qhd_devices, ARRAY_SIZE(qhd_devices)); Loading Loading @@ -1397,8 +1397,8 @@ static void __init ap4evb_init(void) lcdc_info.ch[0].interface_type = RGB18; lcdc_info.ch[0].clock_divider = 3; lcdc_info.ch[0].flags = 0; lcdc_info.ch[0].lcd_size_cfg.width = 152; lcdc_info.ch[0].lcd_size_cfg.height = 91; lcdc_info.ch[0].panel_cfg.width = 152; lcdc_info.ch[0].panel_cfg.height = 91; /* enable TouchScreen */ irq_set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW); Loading arch/arm/mach-shmobile/board-bonito.c +3 −3 Original line number Diff line number Diff line Loading @@ -245,9 +245,9 @@ static struct sh_mobile_lcdc_info lcdc0_info = { .interface_type = RGB24, .clock_divider = 5, .flags = 0, .lcd_cfg = &lcdc0_mode, .num_cfg = 1, .lcd_size_cfg = { .lcd_modes = &lcdc0_mode, .num_modes = 1, .panel_cfg = { .width = 152, .height = 91, }, Loading arch/arm/mach-shmobile/board-mackerel.c +50 −56 Original line number Diff line number Diff line Loading @@ -318,8 +318,14 @@ static struct sh_mobile_meram_info mackerel_meram_info = { static struct resource meram_resources[] = { [0] = { .name = "MERAM", .name = "regs", .start = 0xe8000000, .end = 0xe807ffff, .flags = IORESOURCE_MEM, }, [1] = { .name = "meram", .start = 0xe8080000, .end = 0xe81fffff, .flags = IORESOURCE_MEM, }, Loading Loading @@ -351,29 +357,23 @@ static struct fb_videomode mackerel_lcdc_modes[] = { }, }; static int mackerel_set_brightness(void *board_data, int brightness) static int mackerel_set_brightness(int brightness) { gpio_set_value(GPIO_PORT31, brightness); return 0; } static int mackerel_get_brightness(void *board_data) static int mackerel_get_brightness(void) { return gpio_get_value(GPIO_PORT31); } static struct sh_mobile_meram_cfg lcd_meram_cfg = { static const struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .marker_icb = 28, .cache_icb = 24, .meram_offset = 0x0, .meram_size = 0x40, }, .icb[1] = { .marker_icb = 29, .cache_icb = 25, .meram_offset = 0x40, .meram_size = 0x40, }, }; Loading @@ -384,20 +384,20 @@ static struct sh_mobile_lcdc_info lcdc_info = { .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .lcd_cfg = mackerel_lcdc_modes, .num_cfg = ARRAY_SIZE(mackerel_lcdc_modes), .lcd_modes = mackerel_lcdc_modes, .num_modes = ARRAY_SIZE(mackerel_lcdc_modes), .interface_type = RGB24, .clock_divider = 3, .flags = 0, .lcd_size_cfg.width = 152, .lcd_size_cfg.height = 91, .board_cfg = { .set_brightness = mackerel_set_brightness, .get_brightness = mackerel_get_brightness, .panel_cfg = { .width = 152, .height = 91, }, .bl_info = { .name = "sh_mobile_lcdc_bl", .max_brightness = 1, .set_brightness = mackerel_set_brightness, .get_brightness = mackerel_get_brightness, }, .meram_cfg = &lcd_meram_cfg, } Loading Loading @@ -426,21 +426,44 @@ static struct platform_device lcdc_device = { }, }; static struct sh_mobile_meram_cfg hdmi_meram_cfg = { /* HDMI */ static struct sh_mobile_hdmi_info hdmi_info = { .flags = HDMI_SND_SRC_SPDIF, }; static struct resource hdmi_resources[] = { [0] = { .name = "HDMI", .start = 0xe6be0000, .end = 0xe6be00ff, .flags = IORESOURCE_MEM, }, [1] = { /* There's also an HDMI interrupt on INTCS @ 0x18e0 */ .start = evt2irq(0x17e0), .flags = IORESOURCE_IRQ, }, }; static struct platform_device hdmi_device = { .name = "sh-mobile-hdmi", .num_resources = ARRAY_SIZE(hdmi_resources), .resource = hdmi_resources, .id = -1, .dev = { .platform_data = &hdmi_info, }, }; static const struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .marker_icb = 30, .cache_icb = 26, .meram_offset = 0x80, .meram_size = 0x100, }, .icb[1] = { .marker_icb = 31, .cache_icb = 27, .meram_offset = 0x180, .meram_size = 0x100, }, }; /* HDMI */ static struct sh_mobile_lcdc_info hdmi_lcdc_info = { .meram_dev = &mackerel_meram_info, .clock_source = LCDC_CLK_EXTERNAL, Loading @@ -451,6 +474,7 @@ static struct sh_mobile_lcdc_info hdmi_lcdc_info = { .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .meram_cfg = &hdmi_meram_cfg, .tx_dev = &hdmi_device, } }; Loading Loading @@ -478,36 +502,6 @@ static struct platform_device hdmi_lcdc_device = { }, }; static struct sh_mobile_hdmi_info hdmi_info = { .lcd_chan = &hdmi_lcdc_info.ch[0], .lcd_dev = &hdmi_lcdc_device.dev, .flags = HDMI_SND_SRC_SPDIF, }; static struct resource hdmi_resources[] = { [0] = { .name = "HDMI", .start = 0xe6be0000, .end = 0xe6be00ff, .flags = IORESOURCE_MEM, }, [1] = { /* There's also an HDMI interrupt on INTCS @ 0x18e0 */ .start = evt2irq(0x17e0), .flags = IORESOURCE_IRQ, }, }; static struct platform_device hdmi_device = { .name = "sh-mobile-hdmi", .num_resources = ARRAY_SIZE(hdmi_resources), .resource = hdmi_resources, .id = -1, .dev = { .platform_data = &hdmi_info, }, }; static struct platform_device fsi_hdmi_device = { .name = "sh_fsi2_b_hdmi", }; Loading Loading @@ -1276,8 +1270,8 @@ static struct platform_device *mackerel_devices[] __initdata = { &sh_mmcif_device, &ceu_device, &mackerel_camera, &hdmi_lcdc_device, &hdmi_device, &hdmi_lcdc_device, &meram_device, }; Loading arch/sh/boards/mach-ap325rxa/setup.c +10 −12 Original line number Diff line number Diff line Loading @@ -157,7 +157,7 @@ static struct platform_device nand_flash_device = { #define PORT_DRVCRA 0xA405018A #define PORT_DRVCRB 0xA405018C static int ap320_wvga_set_brightness(void *board_data, int brightness) static int ap320_wvga_set_brightness(int brightness) { if (brightness) { gpio_set_value(GPIO_PTS3, 0); Loading @@ -170,12 +170,12 @@ static int ap320_wvga_set_brightness(void *board_data, int brightness) return 0; } static int ap320_wvga_get_brightness(void *board_data) static int ap320_wvga_get_brightness(void) { return gpio_get_value(GPIO_PTS3); } static void ap320_wvga_power_on(void *board_data, struct fb_info *info) static void ap320_wvga_power_on(void) { msleep(100); Loading @@ -183,7 +183,7 @@ static void ap320_wvga_power_on(void *board_data, struct fb_info *info) __raw_writew(FPGA_LCDREG_VAL, FPGA_LCDREG); } static void ap320_wvga_power_off(void *board_data) static void ap320_wvga_power_off(void) { /* ASD AP-320/325 LCD OFF */ __raw_writew(0, FPGA_LCDREG); Loading Loading @@ -211,21 +211,19 @@ static struct sh_mobile_lcdc_info lcdc_info = { .fourcc = V4L2_PIX_FMT_RGB565, .interface_type = RGB18, .clock_divider = 1, .lcd_cfg = ap325rxa_lcdc_modes, .num_cfg = ARRAY_SIZE(ap325rxa_lcdc_modes), .lcd_size_cfg = { /* 7.0 inch */ .width = 152, .lcd_modes = ap325rxa_lcdc_modes, .num_modes = ARRAY_SIZE(ap325rxa_lcdc_modes), .panel_cfg = { .width = 152, /* 7.0 inch */ .height = 91, }, .board_cfg = { .display_on = ap320_wvga_power_on, .display_off = ap320_wvga_power_off, .set_brightness = ap320_wvga_set_brightness, .get_brightness = ap320_wvga_get_brightness, }, .bl_info = { .name = "sh_mobile_lcdc_bl", .max_brightness = 1, .set_brightness = ap320_wvga_set_brightness, .get_brightness = ap320_wvga_get_brightness, }, } }; Loading Loading
arch/arm/mach-shmobile/board-ag5evm.c +7 −17 Original line number Diff line number Diff line Loading @@ -229,16 +229,6 @@ static void lcd_backlight_reset(void) gpio_set_value(GPIO_PORT235, 1); } static void lcd_on(void *board_data, struct fb_info *info) { lcd_backlight_on(); } static void lcd_off(void *board_data) { lcd_backlight_reset(); } /* LCDC0 */ static const struct fb_videomode lcdc0_modes[] = { { Loading @@ -262,14 +252,14 @@ static struct sh_mobile_lcdc_info lcdc0_info = { .interface_type = RGB24, .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .lcd_size_cfg.width = 44, .lcd_size_cfg.height = 79, .fourcc = V4L2_PIX_FMT_RGB565, .lcd_cfg = lcdc0_modes, .num_cfg = ARRAY_SIZE(lcdc0_modes), .board_cfg = { .display_on = lcd_on, .display_off = lcd_off, .lcd_modes = lcdc0_modes, .num_modes = ARRAY_SIZE(lcdc0_modes), .panel_cfg = { .width = 44, .height = 79, .display_on = lcd_backlight_on, .display_off = lcd_backlight_reset, }, } }; Loading
arch/arm/mach-shmobile/board-ap4evb.c +145 −145 Original line number Diff line number Diff line Loading @@ -258,8 +258,14 @@ static struct sh_mobile_meram_info meram_info = { static struct resource meram_resources[] = { [0] = { .name = "MERAM", .name = "regs", .start = 0xe8000000, .end = 0xe807ffff, .flags = IORESOURCE_MEM, }, [1] = { .name = "meram", .start = 0xe8080000, .end = 0xe81fffff, .flags = IORESOURCE_MEM, }, Loading Loading @@ -437,82 +443,6 @@ static struct platform_device usb1_host_device = { .resource = usb1_host_resources, }; static const struct fb_videomode ap4evb_lcdc_modes[] = { { #ifdef CONFIG_AP4EVB_QHD .name = "R63302(QHD)", .xres = 544, .yres = 961, .left_margin = 72, .right_margin = 600, .hsync_len = 16, .upper_margin = 8, .lower_margin = 8, .vsync_len = 2, .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT, #else .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, #endif }, }; static struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .marker_icb = 28, .cache_icb = 24, .meram_offset = 0x0, .meram_size = 0x40, }, .icb[1] = { .marker_icb = 29, .cache_icb = 25, .meram_offset = 0x40, .meram_size = 0x40, }, }; static struct sh_mobile_lcdc_info lcdc_info = { .meram_dev = &meram_info, .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .lcd_cfg = ap4evb_lcdc_modes, .num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes), .meram_cfg = &lcd_meram_cfg, } }; static struct resource lcdc_resources[] = { [0] = { .name = "LCDC", .start = 0xfe940000, /* P4-only space */ .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, }, }; /* * QHD display */ Loading Loading @@ -593,6 +523,8 @@ static struct resource mipidsi0_resources[] = { }, }; static struct sh_mobile_lcdc_info lcdc_info; static struct sh_mipi_dsi_info mipidsi0_info = { .data_format = MIPI_RGB888, .lcd_chan = &lcdc_info.ch[0], Loading @@ -619,6 +551,81 @@ static struct platform_device *qhd_devices[] __initdata = { }; #endif /* CONFIG_AP4EVB_QHD */ /* LCDC0 */ static const struct fb_videomode ap4evb_lcdc_modes[] = { { #ifdef CONFIG_AP4EVB_QHD .name = "R63302(QHD)", .xres = 544, .yres = 961, .left_margin = 72, .right_margin = 600, .hsync_len = 16, .upper_margin = 8, .lower_margin = 8, .vsync_len = 2, .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT, #else .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, #endif }, }; static const struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .meram_size = 0x40, }, .icb[1] = { .meram_size = 0x40, }, }; static struct sh_mobile_lcdc_info lcdc_info = { .meram_dev = &meram_info, .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .lcd_modes = ap4evb_lcdc_modes, .num_modes = ARRAY_SIZE(ap4evb_lcdc_modes), .meram_cfg = &lcd_meram_cfg, #ifdef CONFIG_AP4EVB_QHD .tx_dev = &mipidsi0_device, #endif } }; static struct resource lcdc_resources[] = { [0] = { .name = "LCDC", .start = 0xfe940000, /* P4-only space */ .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, }, }; /* FSI */ #define IRQ_FSI evt2irq(0x1840) static int __fsi_set_rate(struct clk *clk, long rate, int enable) Loading Loading @@ -798,65 +805,11 @@ static struct platform_device fsi_ak4643_device = { }, }; static struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .marker_icb = 30, .cache_icb = 26, .meram_offset = 0x80, .meram_size = 0x100, }, .icb[1] = { .marker_icb = 31, .cache_icb = 27, .meram_offset = 0x180, .meram_size = 0x100, }, }; static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { .clock_source = LCDC_CLK_EXTERNAL, .meram_dev = &meram_info, .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .interface_type = RGB24, .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .meram_cfg = &hdmi_meram_cfg, } }; static struct resource lcdc1_resources[] = { [0] = { .name = "LCDC1", .start = 0xfe944000, .end = 0xfe947fff, .flags = IORESOURCE_MEM, }, [1] = { .start = intcs_evt2irq(0x1780), .flags = IORESOURCE_IRQ, }, }; static struct platform_device lcdc1_device = { .name = "sh_mobile_lcdc_fb", .num_resources = ARRAY_SIZE(lcdc1_resources), .resource = lcdc1_resources, .id = 1, .dev = { .platform_data = &sh_mobile_lcdc1_info, .coherent_dma_mask = ~0, }, }; /* LCDC1 */ static long ap4evb_clk_optimize(unsigned long target, unsigned long *best_freq, unsigned long *parent_freq); static struct sh_mobile_hdmi_info hdmi_info = { .lcd_chan = &sh_mobile_lcdc1_info.ch[0], .lcd_dev = &lcdc1_device.dev, .flags = HDMI_SND_SRC_SPDIF, .clk_optimize_parent = ap4evb_clk_optimize, }; Loading Loading @@ -885,10 +838,6 @@ static struct platform_device hdmi_device = { }, }; static struct platform_device fsi_hdmi_device = { .name = "sh_fsi2_b_hdmi", }; static long ap4evb_clk_optimize(unsigned long target, unsigned long *best_freq, unsigned long *parent_freq) { Loading @@ -908,6 +857,57 @@ static long ap4evb_clk_optimize(unsigned long target, unsigned long *best_freq, return error; } static const struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .meram_size = 0x100, }, .icb[1] = { .meram_size = 0x100, }, }; static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { .clock_source = LCDC_CLK_EXTERNAL, .meram_dev = &meram_info, .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .interface_type = RGB24, .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .meram_cfg = &hdmi_meram_cfg, .tx_dev = &hdmi_device, } }; static struct resource lcdc1_resources[] = { [0] = { .name = "LCDC1", .start = 0xfe944000, .end = 0xfe947fff, .flags = IORESOURCE_MEM, }, [1] = { .start = intcs_evt2irq(0x1780), .flags = IORESOURCE_IRQ, }, }; static struct platform_device lcdc1_device = { .name = "sh_mobile_lcdc_fb", .num_resources = ARRAY_SIZE(lcdc1_resources), .resource = lcdc1_resources, .id = 1, .dev = { .platform_data = &sh_mobile_lcdc1_info, .coherent_dma_mask = ~0, }, }; static struct platform_device fsi_hdmi_device = { .name = "sh_fsi2_b_hdmi", }; static struct gpio_led ap4evb_leds[] = { { .name = "led4", Loading Loading @@ -1042,9 +1042,9 @@ static struct platform_device *ap4evb_devices[] __initdata = { &fsi_ak4643_device, &fsi_hdmi_device, &sh_mmcif_device, &lcdc1_device, &lcdc_device, &hdmi_device, &lcdc_device, &lcdc1_device, &ceu_device, &ap4evb_camera, &meram_device, Loading Loading @@ -1355,8 +1355,8 @@ static void __init ap4evb_init(void) lcdc_info.ch[0].interface_type = RGB24; lcdc_info.ch[0].clock_divider = 1; lcdc_info.ch[0].flags = LCDC_FLAGS_DWPOL; lcdc_info.ch[0].lcd_size_cfg.width = 44; lcdc_info.ch[0].lcd_size_cfg.height = 79; lcdc_info.ch[0].panel_cfg.width = 44; lcdc_info.ch[0].panel_cfg.height = 79; platform_add_devices(qhd_devices, ARRAY_SIZE(qhd_devices)); Loading Loading @@ -1397,8 +1397,8 @@ static void __init ap4evb_init(void) lcdc_info.ch[0].interface_type = RGB18; lcdc_info.ch[0].clock_divider = 3; lcdc_info.ch[0].flags = 0; lcdc_info.ch[0].lcd_size_cfg.width = 152; lcdc_info.ch[0].lcd_size_cfg.height = 91; lcdc_info.ch[0].panel_cfg.width = 152; lcdc_info.ch[0].panel_cfg.height = 91; /* enable TouchScreen */ irq_set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW); Loading
arch/arm/mach-shmobile/board-bonito.c +3 −3 Original line number Diff line number Diff line Loading @@ -245,9 +245,9 @@ static struct sh_mobile_lcdc_info lcdc0_info = { .interface_type = RGB24, .clock_divider = 5, .flags = 0, .lcd_cfg = &lcdc0_mode, .num_cfg = 1, .lcd_size_cfg = { .lcd_modes = &lcdc0_mode, .num_modes = 1, .panel_cfg = { .width = 152, .height = 91, }, Loading
arch/arm/mach-shmobile/board-mackerel.c +50 −56 Original line number Diff line number Diff line Loading @@ -318,8 +318,14 @@ static struct sh_mobile_meram_info mackerel_meram_info = { static struct resource meram_resources[] = { [0] = { .name = "MERAM", .name = "regs", .start = 0xe8000000, .end = 0xe807ffff, .flags = IORESOURCE_MEM, }, [1] = { .name = "meram", .start = 0xe8080000, .end = 0xe81fffff, .flags = IORESOURCE_MEM, }, Loading Loading @@ -351,29 +357,23 @@ static struct fb_videomode mackerel_lcdc_modes[] = { }, }; static int mackerel_set_brightness(void *board_data, int brightness) static int mackerel_set_brightness(int brightness) { gpio_set_value(GPIO_PORT31, brightness); return 0; } static int mackerel_get_brightness(void *board_data) static int mackerel_get_brightness(void) { return gpio_get_value(GPIO_PORT31); } static struct sh_mobile_meram_cfg lcd_meram_cfg = { static const struct sh_mobile_meram_cfg lcd_meram_cfg = { .icb[0] = { .marker_icb = 28, .cache_icb = 24, .meram_offset = 0x0, .meram_size = 0x40, }, .icb[1] = { .marker_icb = 29, .cache_icb = 25, .meram_offset = 0x40, .meram_size = 0x40, }, }; Loading @@ -384,20 +384,20 @@ static struct sh_mobile_lcdc_info lcdc_info = { .ch[0] = { .chan = LCDC_CHAN_MAINLCD, .fourcc = V4L2_PIX_FMT_RGB565, .lcd_cfg = mackerel_lcdc_modes, .num_cfg = ARRAY_SIZE(mackerel_lcdc_modes), .lcd_modes = mackerel_lcdc_modes, .num_modes = ARRAY_SIZE(mackerel_lcdc_modes), .interface_type = RGB24, .clock_divider = 3, .flags = 0, .lcd_size_cfg.width = 152, .lcd_size_cfg.height = 91, .board_cfg = { .set_brightness = mackerel_set_brightness, .get_brightness = mackerel_get_brightness, .panel_cfg = { .width = 152, .height = 91, }, .bl_info = { .name = "sh_mobile_lcdc_bl", .max_brightness = 1, .set_brightness = mackerel_set_brightness, .get_brightness = mackerel_get_brightness, }, .meram_cfg = &lcd_meram_cfg, } Loading Loading @@ -426,21 +426,44 @@ static struct platform_device lcdc_device = { }, }; static struct sh_mobile_meram_cfg hdmi_meram_cfg = { /* HDMI */ static struct sh_mobile_hdmi_info hdmi_info = { .flags = HDMI_SND_SRC_SPDIF, }; static struct resource hdmi_resources[] = { [0] = { .name = "HDMI", .start = 0xe6be0000, .end = 0xe6be00ff, .flags = IORESOURCE_MEM, }, [1] = { /* There's also an HDMI interrupt on INTCS @ 0x18e0 */ .start = evt2irq(0x17e0), .flags = IORESOURCE_IRQ, }, }; static struct platform_device hdmi_device = { .name = "sh-mobile-hdmi", .num_resources = ARRAY_SIZE(hdmi_resources), .resource = hdmi_resources, .id = -1, .dev = { .platform_data = &hdmi_info, }, }; static const struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .marker_icb = 30, .cache_icb = 26, .meram_offset = 0x80, .meram_size = 0x100, }, .icb[1] = { .marker_icb = 31, .cache_icb = 27, .meram_offset = 0x180, .meram_size = 0x100, }, }; /* HDMI */ static struct sh_mobile_lcdc_info hdmi_lcdc_info = { .meram_dev = &mackerel_meram_info, .clock_source = LCDC_CLK_EXTERNAL, Loading @@ -451,6 +474,7 @@ static struct sh_mobile_lcdc_info hdmi_lcdc_info = { .clock_divider = 1, .flags = LCDC_FLAGS_DWPOL, .meram_cfg = &hdmi_meram_cfg, .tx_dev = &hdmi_device, } }; Loading Loading @@ -478,36 +502,6 @@ static struct platform_device hdmi_lcdc_device = { }, }; static struct sh_mobile_hdmi_info hdmi_info = { .lcd_chan = &hdmi_lcdc_info.ch[0], .lcd_dev = &hdmi_lcdc_device.dev, .flags = HDMI_SND_SRC_SPDIF, }; static struct resource hdmi_resources[] = { [0] = { .name = "HDMI", .start = 0xe6be0000, .end = 0xe6be00ff, .flags = IORESOURCE_MEM, }, [1] = { /* There's also an HDMI interrupt on INTCS @ 0x18e0 */ .start = evt2irq(0x17e0), .flags = IORESOURCE_IRQ, }, }; static struct platform_device hdmi_device = { .name = "sh-mobile-hdmi", .num_resources = ARRAY_SIZE(hdmi_resources), .resource = hdmi_resources, .id = -1, .dev = { .platform_data = &hdmi_info, }, }; static struct platform_device fsi_hdmi_device = { .name = "sh_fsi2_b_hdmi", }; Loading Loading @@ -1276,8 +1270,8 @@ static struct platform_device *mackerel_devices[] __initdata = { &sh_mmcif_device, &ceu_device, &mackerel_camera, &hdmi_lcdc_device, &hdmi_device, &hdmi_lcdc_device, &meram_device, }; Loading
arch/sh/boards/mach-ap325rxa/setup.c +10 −12 Original line number Diff line number Diff line Loading @@ -157,7 +157,7 @@ static struct platform_device nand_flash_device = { #define PORT_DRVCRA 0xA405018A #define PORT_DRVCRB 0xA405018C static int ap320_wvga_set_brightness(void *board_data, int brightness) static int ap320_wvga_set_brightness(int brightness) { if (brightness) { gpio_set_value(GPIO_PTS3, 0); Loading @@ -170,12 +170,12 @@ static int ap320_wvga_set_brightness(void *board_data, int brightness) return 0; } static int ap320_wvga_get_brightness(void *board_data) static int ap320_wvga_get_brightness(void) { return gpio_get_value(GPIO_PTS3); } static void ap320_wvga_power_on(void *board_data, struct fb_info *info) static void ap320_wvga_power_on(void) { msleep(100); Loading @@ -183,7 +183,7 @@ static void ap320_wvga_power_on(void *board_data, struct fb_info *info) __raw_writew(FPGA_LCDREG_VAL, FPGA_LCDREG); } static void ap320_wvga_power_off(void *board_data) static void ap320_wvga_power_off(void) { /* ASD AP-320/325 LCD OFF */ __raw_writew(0, FPGA_LCDREG); Loading Loading @@ -211,21 +211,19 @@ static struct sh_mobile_lcdc_info lcdc_info = { .fourcc = V4L2_PIX_FMT_RGB565, .interface_type = RGB18, .clock_divider = 1, .lcd_cfg = ap325rxa_lcdc_modes, .num_cfg = ARRAY_SIZE(ap325rxa_lcdc_modes), .lcd_size_cfg = { /* 7.0 inch */ .width = 152, .lcd_modes = ap325rxa_lcdc_modes, .num_modes = ARRAY_SIZE(ap325rxa_lcdc_modes), .panel_cfg = { .width = 152, /* 7.0 inch */ .height = 91, }, .board_cfg = { .display_on = ap320_wvga_power_on, .display_off = ap320_wvga_power_off, .set_brightness = ap320_wvga_set_brightness, .get_brightness = ap320_wvga_get_brightness, }, .bl_info = { .name = "sh_mobile_lcdc_bl", .max_brightness = 1, .set_brightness = ap320_wvga_set_brightness, .get_brightness = ap320_wvga_get_brightness, }, } }; Loading