[PATCH V6 3/8] drm/panel: simple: Add support for auo_b133htn01 panel
Ajay Kumar
ajaykumar.rs at samsung.com
Fri Jul 25 12:22:05 PDT 2014
Add panel_desc structure for auo_b133htn01 eDP panel.
Also, modify the panel_simple routines to support timing_parameter
delays if mentioned in the panel_desc structure.
Signed-off-by: Ajay Kumar <ajaykumar.rs at samsung.com>
---
.../devicetree/bindings/panel/auo,b133htn01.txt | 7 +++
drivers/gpu/drm/panel/panel-simple.c | 47 ++++++++++++++++++++
2 files changed, 54 insertions(+)
create mode 100644 Documentation/devicetree/bindings/panel/auo,b133htn01.txt
diff --git a/Documentation/devicetree/bindings/panel/auo,b133htn01.txt b/Documentation/devicetree/bindings/panel/auo,b133htn01.txt
new file mode 100644
index 0000000..302226b
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/auo,b133htn01.txt
@@ -0,0 +1,7 @@
+AU Optronics Corporation 13.3" FHD (1920x1080) color TFT-LCD panel
+
+Required properties:
+- compatible: should be "auo,b133htn01"
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index fb0cfe2..cbbb1b8 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -41,6 +41,13 @@ struct panel_desc {
unsigned int width;
unsigned int height;
} size;
+
+ struct {
+ unsigned int prepare_stage_delay;
+ unsigned int enable_stage_delay;
+ unsigned int disable_stage_delay;
+ unsigned int unprepare_stage_delay;
+ } timing_parameter;
};
struct panel_simple {
@@ -105,6 +112,8 @@ static int panel_simple_unprepare(struct drm_panel *panel)
gpiod_set_value_cansleep(p->enable_gpio, 0);
regulator_disable(p->supply);
+ if (p->desc)
+ msleep(p->desc->timing_parameter.unprepare_stage_delay);
p->panel_enabled = false;
@@ -123,6 +132,9 @@ static int panel_simple_disable(struct drm_panel *panel)
backlight_update_status(p->backlight);
}
+ if (p->desc)
+ msleep(p->desc->timing_parameter.disable_stage_delay);
+
p->backlight_enabled = false;
return 0;
@@ -142,6 +154,9 @@ static int panel_simple_prepare(struct drm_panel *panel)
return err;
}
+ if (p->desc)
+ msleep(p->desc->timing_parameter.prepare_stage_delay);
+
if (p->enable_gpio)
gpiod_set_value_cansleep(p->enable_gpio, 1);
@@ -157,6 +172,8 @@ static int panel_simple_enable(struct drm_panel *panel)
if (p->backlight_enabled)
return 0;
+ if (p->desc)
+ msleep(p->desc->timing_parameter.enable_stage_delay);
if (p->backlight) {
p->backlight->props.power = FB_BLANK_UNBLANK;
backlight_update_status(p->backlight);
@@ -342,6 +359,33 @@ static const struct panel_desc auo_b133xtn01 = {
},
};
+static const struct drm_display_mode auo_b133htn01_mode = {
+ .clock = 150660,
+ .hdisplay = 1920,
+ .hsync_start = 1920 + 172,
+ .hsync_end = 1920 + 172 + 80,
+ .htotal = 1920 + 172 + 80 + 60,
+ .vdisplay = 1080,
+ .vsync_start = 1080 + 25,
+ .vsync_end = 1080 + 25 + 10,
+ .vtotal = 1080 + 25 + 10 + 10,
+ .vrefresh = 60,
+};
+
+static const struct panel_desc auo_b133htn01 = {
+ .modes = &auo_b133htn01_mode,
+ .num_modes = 1,
+ .size = {
+ .width = 293,
+ .height = 165,
+ },
+ .timing_parameter = {
+ .prepare_stage_delay = 105,
+ .enable_stage_delay = 20,
+ .prepare_stage_delay = 50,
+ },
+};
+
static const struct drm_display_mode chunghwa_claa101wa01a_mode = {
.clock = 72070,
.hdisplay = 1366,
@@ -481,6 +525,9 @@ static const struct of_device_id platform_of_match[] = {
.compatible = "auo,b101aw03",
.data = &auo_b101aw03,
}, {
+ .compatible = "auo,b133htn01",
+ .data = &auo_b133htn01,
+ }, {
.compatible = "auo,b133xtn01",
.data = &auo_b133xtn01,
}, {
--
1.7.9.5
More information about the dri-devel
mailing list