ARM: tegra: Add common device-tree for LVDS display panels of Tegra30 ASUS tablets
authorMaxim Schwalm <maxim.schwalm@gmail.com>
Sat, 11 Dec 2021 21:13:51 +0000 (00:13 +0300)
committerThierry Reding <treding@nvidia.com>
Wed, 15 Dec 2021 16:29:54 +0000 (17:29 +0100)
All Tegra30 ASUS tablets have a similar design pattern in terms of
hardware integration of LVDS display panels, like exactly the same GPIOs
are used for power and reset, etc. Add a common device-tree for LVDS
display panels of Tegra30 ASUS tablets to avoid replicating the
boilerplate panel description.

[digetx@gmail.com: factored out common part into separate patch and wrote commit message]

Co-developed-by: Svyatoslav Ryhel <clamor95@gmail.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Signed-off-by: Maxim Schwalm <maxim.schwalm@gmail.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
arch/arm/boot/dts/tegra30-asus-lvds-display.dtsi [new file with mode: 0644]

diff --git a/arch/arm/boot/dts/tegra30-asus-lvds-display.dtsi b/arch/arm/boot/dts/tegra30-asus-lvds-display.dtsi
new file mode 100644 (file)
index 0000000..a047abf
--- /dev/null
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/* This dtsi file describes parts common for Asus T30 devices with a LVDS panel. */
+
+/ {
+       host1x@50000000 {
+               lcd: dc@54200000 {
+                       rgb {
+                               status = "okay";
+
+                               port@0 {
+                                       dpi_output: endpoint {
+                                               remote-endpoint = <&bridge_input>;
+                                               bus-width = <24>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       display-panel {
+               power-supply = <&vdd_pnl>;
+               ddc-i2c-bus = <&lcd_ddc>;
+               backlight = <&backlight>;
+
+               port {
+                       panel_input: endpoint {
+                               remote-endpoint = <&bridge_output>;
+                       };
+               };
+       };
+
+       /* Texas Instruments SN75LVDS83B LVDS Transmitter */
+       lvds-encoder {
+               compatible = "ti,sn75lvds83", "lvds-encoder";
+
+               powerdown-gpios = <&gpio TEGRA_GPIO(N, 6) GPIO_ACTIVE_LOW>;
+               power-supply = <&vdd_3v3_sys>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               bridge_input: endpoint {
+                                       remote-endpoint = <&dpi_output>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               bridge_output: endpoint {
+                                       remote-endpoint = <&panel_input>;
+                               };
+                       };
+               };
+       };
+};