[v5] drm/panel: simple: Add TFC S9700RTWV43TR-01B 800x480 panel support

Message ID 1524772102-3360-1-git-send-email-jsarha@ti.com
State New
Headers show
Series
  • [v5] drm/panel: simple: Add TFC S9700RTWV43TR-01B 800x480 panel support
Related show

Commit Message

Jyri Sarha April 26, 2018, 7:48 p.m.
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>

cc: Thierry Reding <thierry.reding@gmail.com>
---
Thanks Thierry, for reminding me about this!

Changes since v4:
- Add tfc to vendor-prefixes.txt

 .../display/panel/tfc,s9700rtwv43tr-01b.txt        | 10 +++++++++
 .../devicetree/bindings/vendor-prefixes.txt        |  1 +
 drivers/gpu/drm/panel/panel-simple.c               | 26 ++++++++++++++++++++++
 3 files changed, 37 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Jyri Sarha May 2, 2018, 1:35 p.m. | #1
On 04/27/18 17:25, Rob Herring wrote:
> On Thu, Apr 26, 2018 at 10:48:22PM +0300, 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>

>> cc: Thierry Reding <thierry.reding@gmail.com>

>> ---

>> Thanks Thierry, for reminding me about this!

>>

>> Changes since v4:

>> - Add tfc to vendor-prefixes.txt

>>

>>  .../display/panel/tfc,s9700rtwv43tr-01b.txt        | 10 +++++++++

>>  .../devicetree/bindings/vendor-prefixes.txt        |  1 +

>>  drivers/gpu/drm/panel/panel-simple.c               | 26 ++++++++++++++++++++++

>>  3 files changed, 37 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 0000000..0b1cc71

>> --- /dev/null

>> +++ b/Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt

>> @@ -0,0 +1,10 @@

>> +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"

>> +

>> +This binding is compatible with the simple-panel binding, which is specified

>> +in simple-panel.txt in this directory.

> 

> You need to state what properties from this apply. For example, I don't 

> know if power-supply is not used, used, or you made a mistake and the 

> panel has more than one supply.

> 


The implementation is the same as with the other panels supported by the
simple panel driver. So all the properties are supported. However, the
"power" regulator is taken with devm_regulator_get(), which will supply
a dummy regulator in case there is no regulator in the device node.

So the power property is in fact optional. Should the simple-panel
binding be updated?

In AM335x-evm, that has the panel in question, there is no regulator to
control and the panel is powered all the time when the board is on. But
for sure there can be a board design that has a regulator to control
power supply for the display. The panel need power after all.

BR,
Jyri

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

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 0000000..0b1cc71
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/tfc,s9700rtwv43tr-01b.txt
@@ -0,0 +1,10 @@ 
+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"
+
+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 12e8b3e..4ec0d6b 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -356,6 +356,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 cbf1ab4..f2d96611 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1891,6 +1891,29 @@  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,
+	},
+};
+
 static const struct display_timing tianma_tm070jdhg30_timing = {
 	.pixelclock = { 62600000, 68200000, 78100000 },
 	.hactive = { 1280, 1280, 1280 },
@@ -2251,6 +2274,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,
 	}, {