arm: omap: board-sdp3430: use sharp panel's gpio handling
The omap3430sdp board file currently requests gpios required by the sharp_ls dpi panel, and provides platform_enable/disable callbacks to configure them. These tasks have been moved to the sharp_ls panel driver itself and shouldn't be done in the board files. Remove the gpio requests and the platform callbacks from the board file. Add the gpio information to panel_sharp_ls037v7dw01_data so that it's passed to the panel driver. Out of sharp panel's configurable pins, all apart from resb_gpio are managed by a CPLD on the display and set to a default value. Only the configurable pin is passed to platform data. The backlight GPIO doesn't go directly to the sharp panel, it is used to set up a voltage supply which goes to the LED+ pin of the panel, hence it isn't passed to panel as platform data, and configured in the board file itself. The backlight used to previously toggle through the platform_enable/disable callbacks, but now it is always on. This needs to be revisited. Signed-off-by: Archit Taneja <archit@ti.com> Cc: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
fde382541d
commit
a05f92b702
@ -108,36 +108,24 @@ static struct twl4030_keypad_data sdp3430_kp_data = {
|
|||||||
#define SDP3430_LCD_PANEL_BACKLIGHT_GPIO 8
|
#define SDP3430_LCD_PANEL_BACKLIGHT_GPIO 8
|
||||||
#define SDP3430_LCD_PANEL_ENABLE_GPIO 5
|
#define SDP3430_LCD_PANEL_ENABLE_GPIO 5
|
||||||
|
|
||||||
static struct gpio sdp3430_dss_gpios[] __initdata = {
|
|
||||||
{SDP3430_LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW, "LCD reset" },
|
|
||||||
{SDP3430_LCD_PANEL_BACKLIGHT_GPIO, GPIOF_OUT_INIT_LOW, "LCD Backlight"},
|
|
||||||
};
|
|
||||||
|
|
||||||
static void __init sdp3430_display_init(void)
|
static void __init sdp3430_display_init(void)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
r = gpio_request_array(sdp3430_dss_gpios,
|
/*
|
||||||
ARRAY_SIZE(sdp3430_dss_gpios));
|
* the backlight GPIO doesn't directly go to the panel, it enables
|
||||||
|
* an internal circuit on 3430sdp to create the signal V_BKL_28V,
|
||||||
|
* this is connected to LED+ pin of the sharp panel. This GPIO
|
||||||
|
* is left enabled in the board file, and not passed to the panel
|
||||||
|
* as platform_data.
|
||||||
|
*/
|
||||||
|
r = gpio_request_one(SDP3430_LCD_PANEL_BACKLIGHT_GPIO,
|
||||||
|
GPIOF_OUT_INIT_HIGH, "LCD Backlight");
|
||||||
if (r)
|
if (r)
|
||||||
printk(KERN_ERR "failed to get LCD control GPIOs\n");
|
pr_err("failed to get LCD Backlight GPIO\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sdp3430_panel_enable_lcd(struct omap_dss_device *dssdev)
|
|
||||||
{
|
|
||||||
gpio_direction_output(SDP3430_LCD_PANEL_ENABLE_GPIO, 1);
|
|
||||||
gpio_direction_output(SDP3430_LCD_PANEL_BACKLIGHT_GPIO, 1);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sdp3430_panel_disable_lcd(struct omap_dss_device *dssdev)
|
|
||||||
{
|
|
||||||
gpio_direction_output(SDP3430_LCD_PANEL_ENABLE_GPIO, 0);
|
|
||||||
gpio_direction_output(SDP3430_LCD_PANEL_BACKLIGHT_GPIO, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int sdp3430_panel_enable_tv(struct omap_dss_device *dssdev)
|
static int sdp3430_panel_enable_tv(struct omap_dss_device *dssdev)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
@ -147,14 +135,20 @@ static void sdp3430_panel_disable_tv(struct omap_dss_device *dssdev)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct panel_sharp_ls037v7dw01_data sdp3430_lcd_data = {
|
||||||
|
.resb_gpio = SDP3430_LCD_PANEL_ENABLE_GPIO,
|
||||||
|
.ini_gpio = -1,
|
||||||
|
.mo_gpio = -1,
|
||||||
|
.lr_gpio = -1,
|
||||||
|
.ud_gpio = -1,
|
||||||
|
};
|
||||||
|
|
||||||
static struct omap_dss_device sdp3430_lcd_device = {
|
static struct omap_dss_device sdp3430_lcd_device = {
|
||||||
.name = "lcd",
|
.name = "lcd",
|
||||||
.driver_name = "sharp_ls_panel",
|
.driver_name = "sharp_ls_panel",
|
||||||
.type = OMAP_DISPLAY_TYPE_DPI,
|
.type = OMAP_DISPLAY_TYPE_DPI,
|
||||||
.phy.dpi.data_lines = 16,
|
.phy.dpi.data_lines = 16,
|
||||||
.platform_enable = sdp3430_panel_enable_lcd,
|
.data = &sdp3430_lcd_data,
|
||||||
.platform_disable = sdp3430_panel_disable_lcd,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct tfp410_platform_data dvi_panel = {
|
static struct tfp410_platform_data dvi_panel = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user