TF600T has significant differences (Tegra DSI and DSI panel,
own power supply system) which makes use of common transformer
device tree complicated.

Signed-off-by: Svyatoslav Ryhel <clamo...@gmail.com>
---
 arch/arm/dts/tegra30-asus-tf600t.dts | 160 +++++++++++++++++++++++++--
 1 file changed, 148 insertions(+), 12 deletions(-)

diff --git a/arch/arm/dts/tegra30-asus-tf600t.dts 
b/arch/arm/dts/tegra30-asus-tf600t.dts
index c9b8f4fa14..fd9d11ca19 100644
--- a/arch/arm/dts/tegra30-asus-tf600t.dts
+++ b/arch/arm/dts/tegra30-asus-tf600t.dts
@@ -1,38 +1,116 @@
 // SPDX-License-Identifier: GPL-2.0
 /dts-v1/;
 
-#include "tegra30-asus-transformer.dtsi"
+#include <dt-bindings/input/input.h>
+#include "tegra30.dtsi"
 
 / {
        model = "ASUS VivoTab RT TF600T";
        compatible = "asus,tf600t", "nvidia,tegra30";
 
+       chosen {
+               stdout-path = &uarta;
+       };
+
        aliases {
+               i2c0 = &pwr_i2c;
+
+               mmc0 = &sdmmc4; /* eMMC */
+               mmc1 = &sdmmc1; /* uSD slot */
+
+               rtc0 = &pmic;
+               rtc1 = "/rtc@7000e000";
+
                spi0 = &spi4;
+
+               usb0 = &usb1;
+               usb1 = &usb3; /* Dock USB */
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       host1x@50000000 {
+               dc@54200000 {
+                       clocks = <&tegra_car TEGRA30_CLK_DISP1>,
+                                <&tegra_car TEGRA30_CLK_PLL_D_OUT0>;
+
+                       rgb {
+                               status = "okay";
+
+                               nvidia,panel = <&dsia>;
+                       };
+               };
+
+               dsia: dsi@54300000 {
+                       status = "okay";
+
+                       avdd-dsi-csi-supply = <&avdd_dsi_csi>;
+
+                       panel = <&panel>;
+               };
+       };
+
+       uarta: serial@70006000 {
+               status = "okay";
+       };
+
+       pwm: pwm@7000a000 {
+               status = "okay";
        };
 
-       /delete-node/ host1x@50000000;
+       pwr_i2c: i2c@7000d000 {
+               status = "okay";
+               clock-frequency = <400000>;
 
-       pmic_i2c: i2c@7000d000 {
                /* Texas Instruments TPS659110 PMIC */
                pmic: tps65911@2d {
+                       compatible = "ti,tps65911";
+                       reg = <0x2d>;
+
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+
+                       ti,system-power-controller;
+
+                       #gpio-cells = <2>;
+                       gpio-controller;
+
                        regulators {
                                vdd_1v2_bl: vdd1 {
                                        regulator-name = "vdd_1v2_backlight";
                                        regulator-min-microvolt = <1200000>;
                                        regulator-max-microvolt = <1200000>;
+                               };
+
+                               vcore_lcd: vdd2 {
+                                       regulator-name = "vcore_lcd";
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <1500000>;
+                               };
+
+                               vdd_1v8_vio: vddio {
+                                       regulator-name = "vdd_1v8_gen";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
                                        regulator-always-on;
                                        regulator-boot-on;
-                                       ti,regulator-ext-sleep-control = <8>;
                                };
 
-                               /delete-node/ ldo2;
-                               /delete-node/ ldo3;
+                               /* eMMC VDD */
+                               vcore_emmc: ldo1 {
+                                       regulator-name = "vdd_emmc_core";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                               };
 
                                /* uSD slot VDDIO */
                                vddio_usd: ldo5 {
                                        regulator-name = "vddio_sdmmc";
-                                       regulator-min-microvolt = <1800000>;
+                                       regulator-min-microvolt = <3300000>;
                                        regulator-max-microvolt = <3300000>;
                                        regulator-always-on;
                                };
@@ -57,11 +135,65 @@
                };
        };
 
-       backlight {
+       sdmmc1: sdhci@78000000 {
+               status = "okay";
+               bus-width = <4>;
+
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               power-gpios = <&gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;
+
+               vmmc-supply = <&vdd_usd>;
+               vqmmc-supply = <&vddio_usd>;
+       };
+
+       sdmmc4: sdhci@78000600 {
+               status = "okay";
+               bus-width = <8>;
+               non-removable;
+
+               vmmc-supply = <&vcore_emmc>;
+               vqmmc-supply = <&vdd_1v8_vio>;
+       };
+
+       /* USB via ASUS connector */
+       usb1: usb@7d000000 {
+               status = "okay";
+               dr_mode = "otg";
+       };
+
+       /* Dock's USB port */
+       usb3: usb@7d008000 {
+               status = "okay";
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+
+               enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
                power-supply = <&vdd_1v2_bl>;
+               pwms = <&pwm 0 71428>;
+
+               brightness-levels = <1 35 70 105 140 175 210 255>;
+               default-brightness-level = <5>;
+       };
+
+       /* PMIC has a built-in 32KHz oscillator which is used by PMC */
+       clk32k_in: clock-32k {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "pmic-oscillator";
        };
 
        gpio-keys {
+               compatible = "gpio-keys";
+
+               key-power {
+                       label = "Power";
+                       gpios = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_ENTER>;
+               };
+
                key-volume-up {
                        label = "Volume Up";
                        gpios = <&gpio TEGRA_GPIO(Q, 3) GPIO_ACTIVE_LOW>;
@@ -75,7 +207,14 @@
                };
        };
 
-       /delete-node/ panel;
+       panel: panel {
+               compatible = "hydis,hv101hd1";
+
+               vdd-supply = <&vcore_lcd>;
+               enable-gpios = <&gpio TEGRA_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
+
+               backlight = <&backlight>;
+       };
 
        vdd_usd: regulator-usd {
                compatible = "regulator-fixed";
@@ -83,7 +222,4 @@
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
        };
-
-       /delete-node/ regulator-pnl;
-       /delete-node/ regulator-bl;
 };
-- 
2.39.2

Reply via email to