summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi')
-rw-r--r--arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi174
1 files changed, 171 insertions, 3 deletions
diff --git a/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi b/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
index 909260a5d0fb..768e201456d8 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
+++ b/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
@@ -20,6 +20,8 @@
rtc0 = &pmic;
rtc1 = "/rtc@7000e000";
+ display0 = &lcd;
+
serial0 = &uartd; /* Console */
serial1 = &uartc; /* Bluetooth */
serial2 = &uartb; /* GPS */
@@ -71,6 +73,21 @@
};
};
+ host1x@50000000 {
+ lcd: dc@54200000 {
+ rgb {
+ status = "okay";
+
+ port {
+ dpi_output: endpoint {
+ remote-endpoint = <&bridge_input>;
+ bus-width = <24>;
+ };
+ };
+ };
+ };
+ };
+
vde@6001a000 {
assigned-clocks = <&tegra_car TEGRA30_CLK_VDE>;
assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>;
@@ -1053,6 +1070,38 @@
syna,clip-y-low = <0>;
};
};
+
+ max14526: muic@44 {
+ compatible = "maxim,max14526";
+ reg = <0x44>;
+
+ interrupt-parent = <&gpio>;
+ interrupts = <TEGRA_GPIO(J, 0) IRQ_TYPE_EDGE_FALLING>;
+
+ muic_con: connector {
+ compatible = "usb-b-connector";
+ label = "micro-USB";
+ type = "micro";
+ };
+
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ muic_to_charger: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&charger_input>;
+ };
+ };
+ };
+
+ tsc2007: adc@48 {
+ compatible = "ti,tsc2007";
+ reg = <0x48>;
+
+ ti,x-plate-ohms = <1>;
+ #io-channel-cells = <1>;
+ };
};
cam_i2c: i2c@7000c500 {
@@ -1309,6 +1358,22 @@
};
};
+ max8971: charger@35 {
+ compatible = "maxim,max8971";
+ reg = <0x35>;
+
+ interrupt-parent = <&gpio>;
+ interrupts = <TEGRA_GPIO(J, 2) IRQ_TYPE_LEVEL_LOW>;
+
+ monitored-battery = <&battery>;
+
+ port {
+ charger_input: endpoint {
+ remote-endpoint = <&muic_to_charger>;
+ };
+ };
+ };
+
fuel-gauge@36 {
compatible = "maxim,max17043";
reg = <0x36>;
@@ -1317,6 +1382,10 @@
interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_EDGE_FALLING>;
monitored-battery = <&battery>;
+ power-supplies = <&max8971>;
+
+ io-channels = <&tbattery 0>;
+ io-channel-names = "temp";
maxim,alert-low-soc-level = <10>;
wakeup-source;
@@ -1357,7 +1426,58 @@
status = "okay";
spi-max-frequency = <25000000>;
- /* DSI bridge */
+ dsi@2 {
+ compatible = "solomon,ssd2825";
+ reg = <2>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ spi-max-frequency = <1000000>;
+
+ spi-cpha;
+ spi-cpol;
+
+ reset-gpios = <&gpio TEGRA_GPIO(O, 2) GPIO_ACTIVE_LOW>;
+
+ dvdd-supply = <&vdd_1v2_rgb>;
+ avdd-supply = <&vdd_1v2_rgb>;
+ vddio-supply = <&vdd_1v8_vio>;
+
+ solomon,hs-zero-delay-ns = <300>;
+ solomon,hs-prep-delay-ns = <65>;
+
+ clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_3>;
+
+ assigned-clocks = <&tegra_car TEGRA30_CLK_EXTERN3>,
+ <&tegra_pmc TEGRA_PMC_CLK_OUT_3>;
+ assigned-clock-rates = <24000000>;
+
+ assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>,
+ <&tegra_car TEGRA30_CLK_EXTERN3>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ bridge_input: endpoint {
+ remote-endpoint = <&dpi_output>;
+ bus-width = <24>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ bridge_output: endpoint {
+ remote-endpoint = <&panel_input>;
+ };
+ };
+ };
+ };
};
pmc@7000e400 {
@@ -1446,12 +1566,13 @@
usb@7d000000 {
compatible = "nvidia,tegra30-udc";
status = "okay";
- dr_mode = "peripheral";
+ dr_mode = "otg";
+ extcon = <&max14526>, <&max14526>;
};
usb-phy@7d000000 {
status = "okay";
- dr_mode = "peripheral";
+ dr_mode = "otg";
nvidia,hssync-start-delay = <0>;
nvidia,xcvr-lsfslew = <2>;
nvidia,xcvr-lsrslew = <2>;
@@ -1617,6 +1738,17 @@
vin-supply = <&vdd_3v3_vbat>;
};
+ vdd_1v2_rgb: regulator-rgb1v2 {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_1v2_rgb";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-boot-on;
+ gpio = <&gpio TEGRA_GPIO(B, 1) GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ vin-supply = <&vdd_3v3_vbat>;
+ };
+
vcc_3v0_lcd: regulator-lcd3v {
compatible = "regulator-fixed";
regulator-name = "vcc_3v0_lcd";
@@ -1724,7 +1856,43 @@
<&tegra_car TEGRA30_CLK_EXTERN1>;
};
+ tbattery: thermal-sensor-battery {
+ compatible = "generic-adc-thermal";
+ #thermal-sensor-cells = <0>;
+
+ io-channels = <&tsc2007 4>;
+ io-channel-names = "sensor-channel";
+ #io-channel-cells = <1>;
+
+ temperature-lookup-table = <
+ (-50000) 4100 (-40000) 3980 (-30000) 3815 (-20000) 3610
+ (-10000) 3285 0 2880 10000 2445 20000 1955
+ 30000 1440 40000 1125 50000 840 60000 665
+ 70000 465 80000 350 90000 230 100000 185 >;
+ };
+
thermal-zones {
+ battery-thermal {
+ polling-delay-passive = <0>; /* milliseconds */
+ polling-delay = <20000>; /* milliseconds */
+
+ thermal-sensors = <&tbattery>;
+
+ trips {
+ battery-alert {
+ temperature = <55000>;
+ hysteresis = <2000>;
+ type = "hot";
+ };
+
+ battery-crit {
+ temperature = <60000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+ };
+
/*
* NCT72 has two sensors:
*