Commit 9c65754c authored by Bartosz Golaszewski's avatar Bartosz Golaszewski Committed by Sekhar Nori

ARM: davinci: da850-evm: switch to using a fixed regulator for lcdc

Now that the da8xx fbdev driver supports power control with an actual
regulator, switch to using a fixed power supply for da850-evm.
Signed-off-by: default avatarBartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
parent 611097d5
......@@ -803,12 +803,6 @@ static const short da850_evm_mmcsd0_pins[] __initconst = {
-1
};
static void da850_panel_power_ctrl(int val)
{
/* lcd power */
gpio_set_value(DA850_LCD_PWR_PIN, val);
}
static struct property_entry da850_lcd_backlight_props[] = {
PROPERTY_ENTRY_BOOL("default-on"),
{ }
......@@ -828,28 +822,61 @@ static const struct platform_device_info da850_lcd_backlight_info = {
.properties = da850_lcd_backlight_props,
};
static struct regulator_consumer_supply da850_lcd_supplies[] = {
REGULATOR_SUPPLY("lcd", NULL),
};
static struct regulator_init_data da850_lcd_supply_data = {
.consumer_supplies = da850_lcd_supplies,
.num_consumer_supplies = ARRAY_SIZE(da850_lcd_supplies),
.constraints = {
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
},
};
static struct fixed_voltage_config da850_lcd_supply = {
.supply_name = "lcd",
.microvolts = 33000000,
.init_data = &da850_lcd_supply_data,
};
static struct platform_device da850_lcd_supply_device = {
.name = "reg-fixed-voltage",
.id = 1, /* Dummy fixed regulator is 0 */
.dev = {
.platform_data = &da850_lcd_supply,
},
};
static struct gpiod_lookup_table da850_lcd_supply_gpio_table = {
.dev_id = "reg-fixed-voltage.1",
.table = {
GPIO_LOOKUP("davinci_gpio", DA850_LCD_PWR_PIN, NULL, 0),
{ }
},
};
static struct gpiod_lookup_table *da850_lcd_gpio_lookups[] = {
&da850_lcd_backlight_gpio_table,
&da850_lcd_supply_gpio_table,
};
static int da850_lcd_hw_init(void)
{
struct platform_device *backlight;
int status;
gpiod_add_lookup_table(&da850_lcd_backlight_gpio_table);
gpiod_add_lookup_tables(da850_lcd_gpio_lookups,
ARRAY_SIZE(da850_lcd_gpio_lookups));
backlight = platform_device_register_full(&da850_lcd_backlight_info);
if (IS_ERR(backlight))
return PTR_ERR(backlight);
status = gpio_request(DA850_LCD_PWR_PIN, "lcd pwr");
if (status < 0)
status = platform_device_register(&da850_lcd_supply_device);
if (status)
return status;
gpio_direction_output(DA850_LCD_PWR_PIN, 0);
/* Switch off panel power */
da850_panel_power_ctrl(0);
/* Switch on panel power */
da850_panel_power_ctrl(1);
return 0;
}
......@@ -1459,7 +1486,6 @@ static __init void da850_evm_init(void)
if (ret)
pr_warn("%s: LCD initialization failed: %d\n", __func__, ret);
sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl,
ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata);
if (ret)
pr_warn("%s: LCDC registration failed: %d\n", __func__, ret);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment