Message ID | 20190315141239.3689-1-jsarha@ti.com |
---|---|
State | New |
Headers | show |
Series | [v6] drm/panel: simple: Add TFC S9700RTWV43TR-01B 800x480 panel support | expand |
Hi Jyri, Thank you for the patch. On Fri, Mar 15, 2019 at 04:12:39PM +0200, Jyri Sarha wrote: > Add support for Three Five displays TFC S9700RTWV43TR-01B 800x480 > panel with resistive touch found on TI's AM335X-EVM. > > Signed-off-by: Jyri Sarha <jsarha@ti.com> > Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com> > --- > Changes since v5: > - Add all simple-panel properties that make sense with this panel to the > binding document > > Previous round some time ago: > https://patchwork.kernel.org/patch/10366741/ > > .../display/panel/tfc,s9700rtwv43tr-01b.txt | 17 +++++++++++ > .../devicetree/bindings/vendor-prefixes.txt | 1 + > drivers/gpu/drm/panel/panel-simple.c | 28 +++++++++++++++++++ > 3 files changed, 46 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt > > diff --git a/Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt b/Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt > new file mode 100644 > index 000000000000..fbd45b01e5c5 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt > @@ -0,0 +1,17 @@ > +TFC S9700RTWV43TR-01B 7" Three Five Corp 800x480 LCD panel with > +resistive touch > + > +The panel is found on TI AM335x-evm. > + > +Required properties: > +- compatible: should be "tfc,S9700RTWV43tr-01b" > + > +Optional properties: > +- power-supply: If there is one that can be controlled by the driver. > + If the property is not present a dummy regulator is provided by the > + framework. I'd make this mandatory, given that there is always a power supply connected to the panel. If it isn't user-controllable it can be modelled as a fixed regulator. > +- enable-gpios: GPIO pin to enable or disable the panel, if there is one > +- backlight: phandle of the backlight device attached to the panel > + > +This binding is compatible with the simple-panel binding, which is specified > +in simple-panel.txt in this directory. > diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt > index 389508584f48..0c0ffe2cc823 100644 > --- a/Documentation/devicetree/bindings/vendor-prefixes.txt > +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt > @@ -391,6 +391,7 @@ technexion TechNexion > technologic Technologic Systems > tempo Tempo Semiconductor > terasic Terasic Inc. > +tfc Three Five Corp > thine THine Electronics, Inc. > ti Texas Instruments > tianma Tianma Micro-electronics Co., Ltd. > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c > index 9c69e739a524..cfa57ee78482 100644 > --- a/drivers/gpu/drm/panel/panel-simple.c > +++ b/drivers/gpu/drm/panel/panel-simple.c > @@ -2281,6 +2281,31 @@ static const struct panel_desc starry_kr122ea0sra = { > }, > }; > > +static const struct drm_display_mode tfc_s9700rtwv43tr_01b_mode = { > + .clock = 30000, > + .hdisplay = 800, > + .hsync_start = 800 + 39, > + .hsync_end = 800 + 39 + 47, > + .htotal = 800 + 39 + 47 + 39, > + .vdisplay = 480, > + .vsync_start = 480 + 13, > + .vsync_end = 480 + 13 + 2, > + .vtotal = 480 + 13 + 2 + 29, > + .vrefresh = 62, > +}; > + > +static const struct panel_desc tfc_s9700rtwv43tr_01b = { > + .modes = &tfc_s9700rtwv43tr_01b_mode, > + .num_modes = 1, > + .bpc = 8, > + .size = { > + .width = 155, > + .height = 90, > + }, > + .bus_format = MEDIA_BUS_FMT_RGB888_1X24, > + .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_POSEDGE, > +}; > + > static const struct display_timing tianma_tm070jdhg30_timing = { > .pixelclock = { 62600000, 68200000, 78100000 }, > .hactive = { 1280, 1280, 1280 }, > @@ -2718,6 +2743,9 @@ static const struct of_device_id platform_of_match[] = { > }, { > .compatible = "starry,kr122ea0sra", > .data = &starry_kr122ea0sra, > + }, { > + .compatible = "tfc,s9700rtwv43tr-01b", > + .data = &tfc_s9700rtwv43tr_01b, > }, { > .compatible = "tianma,tm070jdhg30", > .data = &tianma_tm070jdhg30,
diff --git a/Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt b/Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt new file mode 100644 index 000000000000..fbd45b01e5c5 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt @@ -0,0 +1,17 @@ +TFC S9700RTWV43TR-01B 7" Three Five Corp 800x480 LCD panel with +resistive touch + +The panel is found on TI AM335x-evm. + +Required properties: +- compatible: should be "tfc,S9700RTWV43tr-01b" + +Optional properties: +- power-supply: If there is one that can be controlled by the driver. + If the property is not present a dummy regulator is provided by the + framework. +- enable-gpios: GPIO pin to enable or disable the panel, if there is one +- backlight: phandle of the backlight device attached to the panel + +This binding is compatible with the simple-panel binding, which is specified +in simple-panel.txt in this directory. diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 389508584f48..0c0ffe2cc823 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -391,6 +391,7 @@ technexion TechNexion technologic Technologic Systems tempo Tempo Semiconductor terasic Terasic Inc. +tfc Three Five Corp thine THine Electronics, Inc. ti Texas Instruments tianma Tianma Micro-electronics Co., Ltd. diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 9c69e739a524..cfa57ee78482 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -2281,6 +2281,31 @@ static const struct panel_desc starry_kr122ea0sra = { }, }; +static const struct drm_display_mode tfc_s9700rtwv43tr_01b_mode = { + .clock = 30000, + .hdisplay = 800, + .hsync_start = 800 + 39, + .hsync_end = 800 + 39 + 47, + .htotal = 800 + 39 + 47 + 39, + .vdisplay = 480, + .vsync_start = 480 + 13, + .vsync_end = 480 + 13 + 2, + .vtotal = 480 + 13 + 2 + 29, + .vrefresh = 62, +}; + +static const struct panel_desc tfc_s9700rtwv43tr_01b = { + .modes = &tfc_s9700rtwv43tr_01b_mode, + .num_modes = 1, + .bpc = 8, + .size = { + .width = 155, + .height = 90, + }, + .bus_format = MEDIA_BUS_FMT_RGB888_1X24, + .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_POSEDGE, +}; + static const struct display_timing tianma_tm070jdhg30_timing = { .pixelclock = { 62600000, 68200000, 78100000 }, .hactive = { 1280, 1280, 1280 }, @@ -2718,6 +2743,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "starry,kr122ea0sra", .data = &starry_kr122ea0sra, + }, { + .compatible = "tfc,s9700rtwv43tr-01b", + .data = &tfc_s9700rtwv43tr_01b, }, { .compatible = "tianma,tm070jdhg30", .data = &tianma_tm070jdhg30,