diff options
Diffstat (limited to 'arch/arm/mach-ux500')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-mcde.c | 67 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-mcde.h | 8 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-regulators.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-u5500-mcde.c | 67 | ||||
-rw-r--r-- | arch/arm/mach-ux500/devices-common.c | 66 |
5 files changed, 74 insertions, 146 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-mcde.c b/arch/arm/mach-ux500/board-mop500-mcde.c index 3826fc5a337..bc7d596d88f 100644 --- a/arch/arm/mach-ux500/board-mop500-mcde.c +++ b/arch/arm/mach-ux500/board-mop500-mcde.c @@ -378,7 +378,7 @@ static struct mcde_port port2 = { .hdmi_sdtv_switch = HDMI_SWITCH, }; -struct mcde_display_hdmi_platform_data av8100_hdmi_pdata = { +static struct mcde_display_hdmi_platform_data av8100_hdmi_pdata = { .reset_gpio = 0, .reset_delay = 1, .regulator_id = NULL, /* TODO: "display_main" */ @@ -394,7 +394,7 @@ struct mcde_display_hdmi_platform_data av8100_hdmi_pdata = { } }; -struct mcde_display_device av8100_hdmi = { +static struct mcde_display_device av8100_hdmi = { .name = "av8100_hdmi", .id = TERTIARY_DISPLAY_ID, .port = &port2, @@ -685,69 +685,6 @@ struct mcde_display_device *mcde_get_main_display(void) } EXPORT_SYMBOL(mcde_get_main_display); -void hdmi_fb_onoff(struct mcde_display_device *ddev, - bool enable, u8 cea, u8 vesa_cea_nr) -{ - struct fb_info *fbi; - u16 w, h; - u16 vw, vh; - u32 rotate = FB_ROTATE_UR; - struct display_driver_data *driver_data = dev_get_drvdata(&ddev->dev); - - dev_dbg(&ddev->dev, "%s\n", __func__); - dev_dbg(&ddev->dev, "en:%d cea:%d nr:%d\n", enable, cea, vesa_cea_nr); - - if (enable) { - if (ddev->enabled) { - dev_dbg(&ddev->dev, "Display is already enabled.\n"); - return; - } - - /* Create fb */ - if (ddev->fbi == NULL) { - /* Note: change when dynamic buffering is available */ - int buffering = 2; - - /* Get default values */ - mcde_dss_get_native_resolution(ddev, &w, &h); - vw = w; - vh = h * buffering; - - if (vesa_cea_nr != 0) - ddev->ceanr_convert(ddev, cea, vesa_cea_nr, - buffering, &w, &h, &vw, &vh); - - fbi = mcde_fb_create(ddev, w, h, vw, vh, - ddev->default_pixel_format, rotate); - - if (IS_ERR(fbi)) { - dev_warn(&ddev->dev, - "Failed to create fb for display %s\n", - ddev->name); - goto hdmi_fb_onoff_end; - } else { - dev_info(&ddev->dev, - "Framebuffer created (%s)\n", - ddev->name); - } - driver_data->fbdevname = (char *)dev_name(fbi->dev); - } - } else { - if (!ddev->enabled) { - dev_dbg(&ddev->dev, "Display %s is already disabled.\n", - ddev->name); - return; - } - - mcde_fb_destroy(ddev); - } - -hdmi_fb_onoff_end: - return; -} -EXPORT_SYMBOL(hdmi_fb_onoff); - - module_init(init_display_devices); #endif diff --git a/arch/arm/mach-ux500/board-mop500-mcde.h b/arch/arm/mach-ux500/board-mop500-mcde.h index 38094b81b34..66447c95828 100644 --- a/arch/arm/mach-ux500/board-mop500-mcde.h +++ b/arch/arm/mach-ux500/board-mop500-mcde.h @@ -13,12 +13,4 @@ #include <video/mcde_display.h> -#ifdef CONFIG_DISPLAY_AB8500_TERTIARY -extern struct mcde_display_device tvout_ab8500_display; -#endif - -#ifdef CONFIG_DISPLAY_AV8100_TERTIARY -extern struct mcde_display_device av8100_hdmi; -#endif - #endif /* __BOARD_MOP500_MCDE_H */ diff --git a/arch/arm/mach-ux500/board-mop500-regulators.c b/arch/arm/mach-ux500/board-mop500-regulators.c index e60ff538e83..343a0826d6c 100644 --- a/arch/arm/mach-ux500/board-mop500-regulators.c +++ b/arch/arm/mach-ux500/board-mop500-regulators.c @@ -20,12 +20,6 @@ #define REGULATOR_SUPPLY_DEBUG(_name, _dev_name) #endif -#define REGULATOR_SUPPLY_DEV(_name, _dev) \ -{ \ - .supply = _name, \ - .dev = _dev, \ -} - /* * TPS61052 regulator */ @@ -78,10 +72,10 @@ static struct regulator_consumer_supply ab8500_vaux2_consumers[] = { REGULATOR_SUPPLY("vcc-avswitch", "ab8500-codec.0"), REGULATOR_SUPPLY("vcc-avswitch", "ab8500-acc-det.0"), #ifdef CONFIG_DISPLAY_AB8500_TERTIARY - REGULATOR_SUPPLY_DEV("v-ab8500-AV-switch", &tvout_ab8500_display.dev), + REGULATOR_SUPPLY("v-ab8500-AV-switch", "mcde_tv_ab8500.2"), #endif #ifdef CONFIG_DISPLAY_AV8100_TERTIARY - REGULATOR_SUPPLY_DEV("v-av8100-AV-switch", &av8100_hdmi.dev), + REGULATOR_SUPPLY("v-av8100-AV-switch", "av8100_hdmi.2"), #endif REGULATOR_SUPPLY_DEBUG("aux2", "reg-virt-consumer.1") }; @@ -107,7 +101,7 @@ static struct regulator_consumer_supply ab8500_vtvout_consumers[] = { REGULATOR_SUPPLY("vddadc", "ab8500-gpadc.0"), REGULATOR_SUPPLY("vddadc", "ab8500-charger.0"), #ifdef CONFIG_DISPLAY_AB8500_TERTIARY - REGULATOR_SUPPLY_DEV("vtvout", &tvout_ab8500_display.dev), + REGULATOR_SUPPLY("v-tvout", "mcde_tv_ab8500.2"), #endif REGULATOR_SUPPLY_DEBUG("tvout", "reg-virt-consumer.4") }; diff --git a/arch/arm/mach-ux500/board-u5500-mcde.c b/arch/arm/mach-ux500/board-u5500-mcde.c index 2568b0cf183..eba695e5ed5 100644 --- a/arch/arm/mach-ux500/board-u5500-mcde.c +++ b/arch/arm/mach-ux500/board-u5500-mcde.c @@ -151,7 +151,7 @@ static struct mcde_port port2 = { .hdmi_sdtv_switch = HDMI_SWITCH, }; -struct mcde_display_hdmi_platform_data av8100_hdmi_pdata = { +static struct mcde_display_hdmi_platform_data av8100_hdmi_pdata = { .reset_gpio = 0, .reset_delay = 1, .regulator_id = NULL, @@ -167,7 +167,7 @@ struct mcde_display_hdmi_platform_data av8100_hdmi_pdata = { } }; -struct mcde_display_device av8100_hdmi = { +static struct mcde_display_device av8100_hdmi = { .name = "av8100_hdmi", .id = TERTIARY_DISPLAY_ID, .port = &port2, @@ -392,66 +392,5 @@ int __init init_display_devices_u5500(void) return ret; } -void hdmi_fb_onoff(struct mcde_display_device *ddev, - bool enable, u8 cea, u8 vesa_cea_nr) -{ - struct fb_info *fbi; - u16 w, h; - u16 vw, vh; - u32 rotate = FB_ROTATE_UR; - struct display_driver_data *driver_data = dev_get_drvdata(&ddev->dev); - - dev_dbg(&ddev->dev, "%s\n", __func__); - dev_dbg(&ddev->dev, "en:%d cea:%d nr:%d\n", enable, cea, vesa_cea_nr); - - if (enable) { - if (ddev->enabled) { - dev_dbg(&ddev->dev, "Display is already enabled.\n"); - return; - } - - /* Create fb */ - if (ddev->fbi == NULL) { - /* Note: change when dynamic buffering is available */ - int buffering = 2; - - /* Get default values */ - mcde_dss_get_native_resolution(ddev, &w, &h); - vw = w; - vh = h * buffering; - - if (vesa_cea_nr != 0) - ddev->ceanr_convert(ddev, cea, vesa_cea_nr, - buffering, &w, &h, &vw, &vh); - - fbi = mcde_fb_create(ddev, w, h, vw, vh, - ddev->default_pixel_format, rotate); - - if (IS_ERR(fbi)) { - dev_warn(&ddev->dev, - "Failed to create fb for display %s\n", - ddev->name); - goto hdmi_fb_onoff_end; - } else { - dev_info(&ddev->dev, - "Framebuffer created (%s)\n", - ddev->name); - } - driver_data->fbdevname = (char *)dev_name(fbi->dev); - } - } else { - if (!ddev->enabled) { - dev_dbg(&ddev->dev, "Display %s is already disabled.\n", - ddev->name); - return; - } - mcde_fb_destroy(ddev); - } - -hdmi_fb_onoff_end: - return; -} -EXPORT_SYMBOL(hdmi_fb_onoff); - -module_init(init_display_devices); +module_init(init_display_devices_u5500); #endif diff --git a/arch/arm/mach-ux500/devices-common.c b/arch/arm/mach-ux500/devices-common.c index b2424483645..0f0ce48774e 100644 --- a/arch/arm/mach-ux500/devices-common.c +++ b/arch/arm/mach-ux500/devices-common.c @@ -14,6 +14,10 @@ #include <linux/amba/bus.h> #include <linux/pm.h> +#include <video/mcde_display.h> +#include <video/mcde_display-av8100.h> +#include <video/mcde_fb.h> + #include <plat/gpio.h> extern struct dev_power_domain ux500_dev_power_domain; @@ -148,3 +152,65 @@ void dbx500_add_gpios(resource_size_t *base, int num, int irq, dbx500_add_gpio(i, base[i], irq, pdata); } } + +void hdmi_fb_onoff(struct mcde_display_device *ddev, + bool enable, u8 cea, u8 vesa_cea_nr) +{ + struct fb_info *fbi; + u16 w, h; + u16 vw, vh; + u32 rotate = FB_ROTATE_UR; + struct display_driver_data *driver_data = dev_get_drvdata(&ddev->dev); + + dev_dbg(&ddev->dev, "%s\n", __func__); + dev_dbg(&ddev->dev, "en:%d cea:%d nr:%d\n", enable, cea, vesa_cea_nr); + + if (enable) { + if (ddev->enabled) { + dev_dbg(&ddev->dev, "Display is already enabled.\n"); + return; + } + + /* Create fb */ + if (ddev->fbi == NULL) { + /* Note: change when dynamic buffering is available */ + int buffering = 2; + + /* Get default values */ + mcde_dss_get_native_resolution(ddev, &w, &h); + vw = w; + vh = h * buffering; + + if (vesa_cea_nr != 0) + ddev->ceanr_convert(ddev, cea, vesa_cea_nr, + buffering, &w, &h, &vw, &vh); + + fbi = mcde_fb_create(ddev, w, h, vw, vh, + ddev->default_pixel_format, rotate); + + if (IS_ERR(fbi)) { + dev_warn(&ddev->dev, + "Failed to create fb for display %s\n", + ddev->name); + goto hdmi_fb_onoff_end; + } else { + dev_info(&ddev->dev, + "Framebuffer created (%s)\n", + ddev->name); + } + driver_data->fbdevname = (char *)dev_name(fbi->dev); + } + } else { + if (!ddev->enabled) { + dev_dbg(&ddev->dev, "Display %s is already disabled.\n", + ddev->name); + return; + } + mcde_fb_destroy(ddev); + } + +hdmi_fb_onoff_end: + return; +} +EXPORT_SYMBOL(hdmi_fb_onoff); + |