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@xxxxxxxxxxx> --- .../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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html