drm/panel: simple: Add support for Winstar WF35LTIACD
authorRichard Genoud <richard.genoud@gmail.com>
Mon, 27 Mar 2017 10:33:23 +0000 (12:33 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 6 Apr 2017 21:58:42 +0000 (23:58 +0200)
This adds support for the Winstar Display Co. WF35LTIACD 3.5" QVGA TFT
LCD panel, which can be supported by the simple panel driver.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Documentation/devicetree/bindings/display/panel/winstar,wf35ltiacd.txt [new file with mode: 0644]
drivers/gpu/drm/panel/panel-simple.c

diff --git a/Documentation/devicetree/bindings/display/panel/winstar,wf35ltiacd.txt b/Documentation/devicetree/bindings/display/panel/winstar,wf35ltiacd.txt
new file mode 100644 (file)
index 0000000..2a7e6e3
--- /dev/null
@@ -0,0 +1,48 @@
+Winstar Display Corporation 3.5" QVGA (320x240) TFT LCD panel
+
+Required properties:
+- compatible: should be "winstar,wf35ltiacd"
+- power-supply: regulator to provide the VCC supply voltage (3.3 volts)
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
+
+Example:
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&hlcdc_pwm 0 50000 PWM_POLARITY_INVERTED>;
+               brightness-levels = <0 31 63 95 127 159 191 223 255>;
+               default-brightness-level = <191>;
+               power-supply = <&bl_reg>;
+       };
+
+       bl_reg: backlight_regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "backlight-power-supply";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       panel: panel {
+               compatible = "winstar,wf35ltiacd", "simple-panel";
+               backlight = <&backlight>;
+               power-supply = <&panel_reg>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       panel_input: endpoint {
+                               remote-endpoint = <&hlcdc_panel_output>;
+                       };
+               };
+       };
+
+       panel_reg: panel_regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "panel-power-supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
index 2a55366..c4566ce 100644 (file)
@@ -1831,6 +1831,31 @@ static const struct panel_desc urt_umsh_8596md_parallel = {
        .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
 };
 
+static const struct drm_display_mode winstar_wf35ltiacd_mode = {
+       .clock = 6410,
+       .hdisplay = 320,
+       .hsync_start = 320 + 20,
+       .hsync_end = 320 + 20 + 30,
+       .htotal = 320 + 20 + 30 + 38,
+       .vdisplay = 240,
+       .vsync_start = 240 + 4,
+       .vsync_end = 240 + 4 + 3,
+       .vtotal = 240 + 4 + 3 + 15,
+       .vrefresh = 60,
+       .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+};
+
+static const struct panel_desc winstar_wf35ltiacd = {
+       .modes = &winstar_wf35ltiacd_mode,
+       .num_modes = 1,
+       .bpc = 8,
+       .size = {
+               .width = 70,
+               .height = 53,
+       },
+       .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+};
+
 static const struct of_device_id platform_of_match[] = {
        {
                .compatible = "ampire,am-480272h3tmqw-t01h",
@@ -2022,6 +2047,9 @@ static const struct of_device_id platform_of_match[] = {
                .compatible = "urt,umsh-8596md-20t",
                .data = &urt_umsh_8596md_parallel,
        }, {
+               .compatible = "winstar,wf35ltiacd",
+               .data = &winstar_wf35ltiacd,
+       }, {
                /* sentinel */
        }
 };