Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 371343
b: refs/heads/master
c: a0d269e
h: refs/heads/master
i:
  371341: 78caf95
  371339: e35b87d
  371335: ca0dc63
  371327: 6d7635e
v: v3
  • Loading branch information
Tomi Valkeinen committed Apr 3, 2013
1 parent 6f56198 commit eea8dbe
Show file tree
Hide file tree
Showing 33 changed files with 552 additions and 442 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 77ec05d06fa8a6da65f104382b1026e413119df6
refs/heads/master: a0d269ec0bfab89f7b025bf6e1e596e9a6f9d999
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-omap2/board-2430sdp.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
#include "gpmc-smc91x.h"

#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-generic-dpi.h>

#include "mux.h"
#include "hsmmc.h"
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-omap2/board-3430sdp.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
#include "common.h"
#include <linux/omap-dma.h>
#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-tfp410.h>

#include "gpmc.h"
#include "gpmc-smc91x.h"
Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/arm/mach-omap2/board-am3517evm.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@

#include "common.h"
#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-generic-dpi.h>
#include <video/omap-panel-tfp410.h>

#include "am35xx-emac.h"
#include "mux.h"
Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/arm/mach-omap2/board-cm-t35.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@

#include <linux/platform_data/mtd-nand-omap2.h>
#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-generic-dpi.h>
#include <video/omap-panel-tfp410.h>
#include <linux/platform_data/spi-omap2-mcspi.h>

#include "common.h"
Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/arm/mach-omap2/board-devkit8000.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@
#include "gpmc.h"
#include <linux/platform_data/mtd-nand-omap2.h>
#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-generic-dpi.h>
#include <video/omap-panel-tfp410.h>

#include <linux/platform_data/spi-omap2-mcspi.h>
#include <linux/input/matrix_keypad.h>
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-omap2/board-h4.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
#include <asm/mach/map.h>

#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-generic-dpi.h>

#include "common.h"
#include "mux.h"
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-omap2/board-igep0020.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#include <asm/mach/arch.h>

#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-tfp410.h>
#include <linux/platform_data/mtd-onenand-omap2.h>

#include "common.h"
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-omap2/board-ldp.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
#include "gpmc-smsc911x.h"

#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-generic-dpi.h>

#include "board-flash.h"
#include "mux.h"
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-omap2/board-omap3beagle.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
#include <asm/mach/flash.h>

#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-tfp410.h>
#include <linux/platform_data/mtd-nand-omap2.h>

#include "common.h"
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-omap2/board-omap3evm.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
#include "common.h"
#include <linux/platform_data/spi-omap2-mcspi.h>
#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-tfp410.h>

#include "soc.h"
#include "mux.h"
Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/arm/mach-omap2/board-omap3stalker.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@
#include "gpmc.h"
#include <linux/platform_data/mtd-nand-omap2.h>
#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-generic-dpi.h>
#include <video/omap-panel-tfp410.h>

#include <linux/platform_data/spi-omap2-mcspi.h>

Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/arm/mach-omap2/board-overo.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@
#include <asm/mach/map.h>

#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-generic-dpi.h>
#include <video/omap-panel-tfp410.h>

#include "common.h"
#include "mux.h"
Expand Down
4 changes: 3 additions & 1 deletion trunk/arch/arm/mach-omap2/dss-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
#include <linux/gpio.h>

#include <video/omapdss.h>
#include <video/omap-panel-data.h>
#include <video/omap-panel-tfp410.h>
#include <video/omap-panel-nokia-dsi.h>
#include <video/omap-panel-picodlp.h>

#include "soc.h"
#include "dss-common.h"
Expand Down
59 changes: 24 additions & 35 deletions trunk/drivers/video/omap2/displays/panel-acx565akm.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,8 @@
#include <linux/sched.h>
#include <linux/backlight.h>
#include <linux/fb.h>
#include <linux/gpio.h>

#include <video/omapdss.h>
#include <video/omap-panel-data.h>

#define MIPID_CMD_READ_DISP_ID 0x04
#define MIPID_CMD_READ_RED 0x06
Expand Down Expand Up @@ -338,6 +336,8 @@ static int acx565akm_bl_update_status(struct backlight_device *dev)
r = 0;
if (md->has_bc)
acx565akm_set_brightness(md, level);
else if (md->dssdev->set_backlight)
r = md->dssdev->set_backlight(md->dssdev, level);
else
r = -ENODEV;

Expand All @@ -352,7 +352,7 @@ static int acx565akm_bl_get_intensity(struct backlight_device *dev)

dev_dbg(&dev->dev, "%s\n", __func__);

if (!md->has_bc)
if (!md->has_bc && md->dssdev->set_backlight == NULL)
return -ENODEV;

if (dev->props.fb_blank == FB_BLANK_UNBLANK &&
Expand Down Expand Up @@ -496,38 +496,21 @@ static struct omap_video_timings acx_panel_timings = {
.sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
};

static struct panel_acx565akm_data *get_panel_data(struct omap_dss_device *dssdev)
{
return (struct panel_acx565akm_data *) dssdev->data;
}

static int acx_panel_probe(struct omap_dss_device *dssdev)
{
int r;
struct acx565akm_device *md = &acx_dev;
struct panel_acx565akm_data *panel_data = get_panel_data(dssdev);
struct backlight_device *bldev;
int max_brightness, brightness;
struct backlight_properties props;

dev_dbg(&dssdev->dev, "%s\n", __func__);

if (!panel_data)
return -EINVAL;

/* FIXME AC bias ? */
dssdev->panel.timings = acx_panel_timings;

if (gpio_is_valid(panel_data->reset_gpio)) {
r = devm_gpio_request_one(&dssdev->dev, panel_data->reset_gpio,
GPIOF_OUT_INIT_LOW, "lcd reset");
if (r)
return r;
}

if (gpio_is_valid(panel_data->reset_gpio))
gpio_set_value(panel_data->reset_gpio, 1);

if (dssdev->platform_enable)
dssdev->platform_enable(dssdev);
/*
* After reset we have to wait 5 msec before the first
* command can be sent.
Expand All @@ -539,9 +522,8 @@ static int acx_panel_probe(struct omap_dss_device *dssdev)
r = panel_detect(md);
if (r) {
dev_err(&dssdev->dev, "%s panel detect error\n", __func__);
if (!md->enabled && gpio_is_valid(panel_data->reset_gpio))
gpio_set_value(panel_data->reset_gpio, 0);

if (!md->enabled && dssdev->platform_disable)
dssdev->platform_disable(dssdev);
return r;
}

Expand All @@ -550,8 +532,8 @@ static int acx_panel_probe(struct omap_dss_device *dssdev)
mutex_unlock(&acx_dev.mutex);

if (!md->enabled) {
if (gpio_is_valid(panel_data->reset_gpio))
gpio_set_value(panel_data->reset_gpio, 0);
if (dssdev->platform_disable)
dssdev->platform_disable(dssdev);
}

/*------- Backlight control --------*/
Expand All @@ -575,10 +557,15 @@ static int acx_panel_probe(struct omap_dss_device *dssdev)
md->cabc_mode = get_hw_cabc_mode(md);
}

max_brightness = 255;
if (md->has_bc)
max_brightness = 255;
else
max_brightness = dssdev->max_backlight_level;

if (md->has_bc)
brightness = acx565akm_get_actual_brightness(md);
else if (dssdev->get_backlight)
brightness = dssdev->get_backlight(dssdev);
else
brightness = 0;

Expand All @@ -604,7 +591,6 @@ static void acx_panel_remove(struct omap_dss_device *dssdev)
static int acx_panel_power_on(struct omap_dss_device *dssdev)
{
struct acx565akm_device *md = &acx_dev;
struct panel_acx565akm_data *panel_data = get_panel_data(dssdev);
int r;

dev_dbg(&dssdev->dev, "%s\n", __func__);
Expand All @@ -626,8 +612,11 @@ static int acx_panel_power_on(struct omap_dss_device *dssdev)
/*FIXME tweak me */
msleep(50);

if (gpio_is_valid(panel_data->reset_gpio))
gpio_set_value(panel_data->reset_gpio, 1);
if (dssdev->platform_enable) {
r = dssdev->platform_enable(dssdev);
if (r)
goto fail;
}

if (md->enabled) {
dev_dbg(&md->spi->dev, "panel already enabled\n");
Expand Down Expand Up @@ -656,7 +645,8 @@ static int acx_panel_power_on(struct omap_dss_device *dssdev)
mutex_unlock(&md->mutex);

return acx565akm_bl_update_status(md->bl_dev);

fail:
omapdss_sdi_display_disable(dssdev);
fail_unlock:
mutex_unlock(&md->mutex);
return r;
Expand All @@ -665,7 +655,6 @@ static int acx_panel_power_on(struct omap_dss_device *dssdev)
static void acx_panel_power_off(struct omap_dss_device *dssdev)
{
struct acx565akm_device *md = &acx_dev;
struct panel_acx565akm_data *panel_data = get_panel_data(dssdev);

dev_dbg(&dssdev->dev, "%s\n", __func__);

Expand All @@ -689,8 +678,8 @@ static void acx_panel_power_off(struct omap_dss_device *dssdev)
*/
msleep(50);

if (gpio_is_valid(panel_data->reset_gpio))
gpio_set_value(panel_data->reset_gpio, 0);
if (dssdev->platform_disable)
dssdev->platform_disable(dssdev);

/* FIXME need to tweak this delay */
msleep(100);
Expand Down
39 changes: 16 additions & 23 deletions trunk/drivers/video/omap2/displays/panel-generic-dpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,9 @@
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/gpio.h>
#include <video/omapdss.h>

#include <video/omap-panel-data.h>
#include <video/omap-panel-generic-dpi.h>

struct panel_config {
struct omap_video_timings timings;
Expand Down Expand Up @@ -534,7 +533,7 @@ static inline struct panel_generic_dpi_data

static int generic_dpi_panel_power_on(struct omap_dss_device *dssdev)
{
int r, i;
int r;
struct panel_generic_dpi_data *panel_data = get_panel_data(dssdev);
struct panel_drv_data *drv_data = dev_get_drvdata(&dssdev->dev);
struct panel_config *panel_config = drv_data->panel_config;
Expand All @@ -553,13 +552,15 @@ static int generic_dpi_panel_power_on(struct omap_dss_device *dssdev)
if (panel_config->power_on_delay)
msleep(panel_config->power_on_delay);

for (i = 0; i < panel_data->num_gpios; ++i) {
gpio_set_value_cansleep(panel_data->gpios[i],
panel_data->gpio_invert[i] ? 0 : 1);
if (panel_data->platform_enable) {
r = panel_data->platform_enable(dssdev);
if (r)
goto err1;
}

return 0;

err1:
omapdss_dpi_display_disable(dssdev);
err0:
return r;
}
Expand All @@ -569,15 +570,12 @@ static void generic_dpi_panel_power_off(struct omap_dss_device *dssdev)
struct panel_generic_dpi_data *panel_data = get_panel_data(dssdev);
struct panel_drv_data *drv_data = dev_get_drvdata(&dssdev->dev);
struct panel_config *panel_config = drv_data->panel_config;
int i;

if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
return;

for (i = panel_data->num_gpios - 1; i >= 0; --i) {
gpio_set_value_cansleep(panel_data->gpios[i],
panel_data->gpio_invert[i] ? 1 : 0);
}
if (panel_data->platform_disable)
panel_data->platform_disable(dssdev);

/* wait couple of vsyncs after disabling the LCD */
if (panel_config->power_off_delay)
Expand All @@ -591,7 +589,7 @@ static int generic_dpi_panel_probe(struct omap_dss_device *dssdev)
struct panel_generic_dpi_data *panel_data = get_panel_data(dssdev);
struct panel_config *panel_config = NULL;
struct panel_drv_data *drv_data = NULL;
int i, r;
int i;

dev_dbg(&dssdev->dev, "probe\n");

Expand All @@ -608,18 +606,9 @@ static int generic_dpi_panel_probe(struct omap_dss_device *dssdev)
if (!panel_config)
return -EINVAL;

for (i = 0; i < panel_data->num_gpios; ++i) {
r = devm_gpio_request_one(&dssdev->dev, panel_data->gpios[i],
panel_data->gpio_invert[i] ?
GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW,
"panel gpio");
if (r)
return r;
}

dssdev->panel.timings = panel_config->timings;

drv_data = devm_kzalloc(&dssdev->dev, sizeof(*drv_data), GFP_KERNEL);
drv_data = kzalloc(sizeof(*drv_data), GFP_KERNEL);
if (!drv_data)
return -ENOMEM;

Expand All @@ -635,8 +624,12 @@ static int generic_dpi_panel_probe(struct omap_dss_device *dssdev)

static void __exit generic_dpi_panel_remove(struct omap_dss_device *dssdev)
{
struct panel_drv_data *drv_data = dev_get_drvdata(&dssdev->dev);

dev_dbg(&dssdev->dev, "remove\n");

kfree(drv_data);

dev_set_drvdata(&dssdev->dev, NULL);
}

Expand Down
Loading

0 comments on commit eea8dbe

Please sign in to comment.