* [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes
@ 2026-01-26 10:10 Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 1/4] ARM: tegra: lg-x3: add panel and bridge nodes Svyatoslav Ryhel
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Svyatoslav Ryhel @ 2026-01-26 10:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Thierry Reding, Jonathan Hunter, Svyatoslav Ryhel,
Jonas Schwöbel
Cc: devicetree, linux-tegra, linux-kernel
With the recent kernel updates, Tegra30-based LG smartphones now support
several additional features, including an RGB-DSI bridge, DSI panels,
MUIC, a charger, a battery temperature sensor, OTG mode, and capacitive
buttons on the P895. Add required nodes to device trees.
---
Changes in v2:
- fixed dw9714 and tx13d100vm0eaa nodes
- added video device pipes graph
Regarding CHECK_DTBS output in v2:
- nvidia,tegra30-pcie, nvidia,tegra30-gmi, nvidia,tegra30-kbc,
nvidia,tegra20-kbc, nvidia,tegra30-ahub are not documented yet
- nvidia,tegra30-vi was adjusted and applied, change did not apper yet
(https://lore.kernel.org/lkml/176860988748.1688420.11717122647073678.b4-ty@nvidia.com/)
- st,m24c08 appers undocumented though it seems to be different from
st,24c08, at least they google as separate devices. atmel,24c08 is not
documented, though it is widey used in linux device trees and is
supported by driver. Here is one of examples:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm/boot/dts/allwinner/sun7i-a20-linutronix-testbox-v2.dts?h=next-20260123#n33
- onnn,mt9m114 does not have 'orientation' property, though it should
include it since it is generic for camera devices
- ti,lp8720 and maxim,max77663 have txt documentation and are not yet
converted to DT schema
- backlight in panel nodes was not added since lm3533 has no DT support
- missing '#io-channel-cells' in ti,tsc2007 addressed in
https://lore.kernel.org/lkml/20260122193549.29858-2-clamor95@gmail.com/
- missing dsi controller properties of ssd2825 addressed in
https://lore.kernel.org/lkml/20260123073411.7736-2-clamor95@gmail.com/
- missing '#io-channel-cells' in generic-adc-thermal was proposed in but rejected
https://lore.kernel.org/lkml/20250310075638.6979-2-clamor95@gmail.com/
---
Svyatoslav Ryhel (4):
ARM: tegra: lg-x3: add panel and bridge nodes
ARM: tegra: lg-x3: add USB and power related nodes
ARM: tegra: lg-x3: add node for capacitive buttons
ARM: tegra: lg-x3: complete video device graph
arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts | 39 +++
arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts | 79 +++++
arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi | 328 ++++++++++++++++++-
3 files changed, 429 insertions(+), 17 deletions(-)
--
2.51.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/4] ARM: tegra: lg-x3: add panel and bridge nodes
2026-01-26 10:10 [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
@ 2026-01-26 10:10 ` Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 2/4] ARM: tegra: lg-x3: add USB and power related nodes Svyatoslav Ryhel
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Svyatoslav Ryhel @ 2026-01-26 10:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Thierry Reding, Jonathan Hunter, Svyatoslav Ryhel,
Jonas Schwöbel
Cc: devicetree, linux-tegra, linux-kernel
Add RGB-DSI bridge and panel nodes to LG Optimus 4X and Vu device trees.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts | 23 ++++++
arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts | 27 +++++++
arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi | 81 +++++++++++++++++++-
3 files changed, 130 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts b/arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts
index c6ef0a20c19f..cc14e6dca770 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts
+++ b/arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts
@@ -116,6 +116,29 @@ rmi4-f11@11 {
};
};
+ spi@7000dc00 {
+ dsi@2 {
+ /*
+ * JDI 4.57" 720x1280 DX12D100VM0EAA MIPI DSI panel
+ */
+ panel@1 {
+ compatible = "jdi,dx12d100vm0eaa", "renesas,r69328";
+ reg = <1>;
+
+ reset-gpios = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_LOW>;
+
+ vdd-supply = <&vcc_3v0_lcd>;
+ vddio-supply = <&iovcc_1v8_lcd>;
+
+ port {
+ panel_input: endpoint {
+ remote-endpoint = <&bridge_output>;
+ };
+ };
+ };
+ };
+ };
+
memory-controller@7000f000 {
emc-timings-0 {
/* SAMSUNG 1GB K4P8G304EB FGC1 533MHz */
diff --git a/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts b/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts
index e32fafc7f5e0..ab8f5cf317bf 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts
+++ b/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts
@@ -112,6 +112,33 @@ rmi4-f11@11 {
};
};
+ spi@7000dc00 {
+ dsi@2 {
+ /*
+ * HITACHI/KOE 5" 768x1024 TX13D100VM0EAA MIPI DSI panel
+ */
+ panel@1 {
+ compatible = "koe,tx13d100vm0eaa", "renesas,r61307";
+ reg = <1>;
+
+ reset-gpios = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_LOW>;
+
+ renesas,gamma = <3>;
+ renesas,column-inversion;
+ renesas,contrast;
+
+ vcc-supply = <&vcc_3v0_lcd>;
+ iovcc-supply = <&iovcc_1v8_lcd>;
+
+ port {
+ panel_input: endpoint {
+ remote-endpoint = <&bridge_output>;
+ };
+ };
+ };
+ };
+ };
+
memory-controller@7000f000 {
emc-timings-2 {
/* Hynix 1GB H9TCNNN8JDMMPR LPDDR2 533MHz */
diff --git a/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi b/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
index 909260a5d0fb..6eea8eacd7d5 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 @@ aliases {
rtc0 = &pmic;
rtc1 = "/rtc@7000e000";
+ display0 = &lcd;
+
serial0 = &uartd; /* Console */
serial1 = &uartc; /* Bluetooth */
serial2 = &uartb; /* GPS */
@@ -71,6 +73,21 @@ trustzone@bfe00000 {
};
};
+ 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>;
@@ -1357,7 +1374,58 @@ spi@7000dc00 {
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 {
@@ -1617,6 +1685,17 @@ vdd_1v8_sen: regulator-sen1v8 {
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";
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/4] ARM: tegra: lg-x3: add USB and power related nodes
2026-01-26 10:10 [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 1/4] ARM: tegra: lg-x3: add panel and bridge nodes Svyatoslav Ryhel
@ 2026-01-26 10:10 ` Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 3/4] ARM: tegra: lg-x3: add node for capacitive buttons Svyatoslav Ryhel
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Svyatoslav Ryhel @ 2026-01-26 10:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Thierry Reding, Jonathan Hunter, Svyatoslav Ryhel,
Jonas Schwöbel
Cc: devicetree, linux-tegra, linux-kernel
Add missing charger, MUIC and ADC sensor nodes. Reconfigure USB, set one
of the ADC channels as the fuel gauge temperature sensor and add a battery
thermal zone.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi | 93 ++++++++++++++++++++-
1 file changed, 91 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi b/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
index 6eea8eacd7d5..768e201456d8 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
+++ b/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
@@ -1070,6 +1070,38 @@ rmi4-f11@11 {
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 {
@@ -1326,6 +1358,22 @@ ldo8 {
};
};
+ 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>;
@@ -1334,6 +1382,10 @@ fuel-gauge@36 {
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;
@@ -1514,12 +1566,13 @@ sdmmc4: mmc@78000600 {
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>;
@@ -1803,7 +1856,43 @@ sound {
<&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:
*
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/4] ARM: tegra: lg-x3: add node for capacitive buttons
2026-01-26 10:10 [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 1/4] ARM: tegra: lg-x3: add panel and bridge nodes Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 2/4] ARM: tegra: lg-x3: add USB and power related nodes Svyatoslav Ryhel
@ 2026-01-26 10:10 ` Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 4/4] ARM: tegra: lg-x3: complete video device graph Svyatoslav Ryhel
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Svyatoslav Ryhel @ 2026-01-26 10:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Thierry Reding, Jonathan Hunter, Svyatoslav Ryhel,
Jonas Schwöbel
Cc: devicetree, linux-tegra, linux-kernel
Both smartphones have capacitive buttons but only P895 supports RMI4
function 1A (0D touch), while P880 exposes buttons area as a region of the
touchscreen.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts b/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts
index ab8f5cf317bf..414117fd4382 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts
+++ b/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts
@@ -109,6 +109,12 @@ rmi4-f11@11 {
syna,clip-x-high = <1535>;
syna,clip-y-high = <2047>;
};
+
+ rmi4-f1a@1a {
+ reg = <0x1a>;
+
+ linux,keycodes = <KEY_BACK KEY_HOME KEY_MENU KEY_SEARCH>;
+ };
};
};
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 4/4] ARM: tegra: lg-x3: complete video device graph
2026-01-26 10:10 [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
` (2 preceding siblings ...)
2026-01-26 10:10 ` [PATCH v2 3/4] ARM: tegra: lg-x3: add node for capacitive buttons Svyatoslav Ryhel
@ 2026-01-26 10:10 ` Svyatoslav Ryhel
2026-03-02 7:53 ` [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
2026-03-27 15:05 ` Thierry Reding
5 siblings, 0 replies; 8+ messages in thread
From: Svyatoslav Ryhel @ 2026-01-26 10:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Thierry Reding, Jonathan Hunter, Svyatoslav Ryhel,
Jonas Schwöbel
Cc: devicetree, linux-tegra, linux-kernel
Add front and rear camera nodes and interlink them with Tegra CSI and VI.
Adjust camera PMIC voltages to better fit requirements and fix the focuser
node.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts | 28 ++++
arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts | 46 ++++++
arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi | 154 +++++++++++++++++--
3 files changed, 214 insertions(+), 14 deletions(-)
diff --git a/arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts b/arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts
index cc14e6dca770..1b21d7628c8c 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts
+++ b/arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts
@@ -12,6 +12,18 @@ aliases {
mmc2 = &sdmmc1; /* WiFi */
};
+ host1x@50000000 {
+ vi@54080000 {
+ csi@800 {
+ /delete-node/ channel@1;
+ };
+
+ ports {
+ /delete-node/ port@1;
+ };
+ };
+ };
+
pinmux@70000868 {
pinctrl-names = "default";
pinctrl-0 = <&state_default>;
@@ -116,6 +128,22 @@ rmi4-f11@11 {
};
};
+ i2c@7000c500 {
+ camera-pmic@7d {
+ vt_1v2_front: ldo1 {
+ regulator-name = "vt_1v2_dig";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
+ vt_2v7_front: ldo2 {
+ regulator-name = "vt_2v7_vana";
+ regulator-min-microvolt = <2700000>;
+ regulator-max-microvolt = <2700000>;
+ };
+ };
+ };
+
spi@7000dc00 {
dsi@2 {
/*
diff --git a/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts b/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts
index 414117fd4382..896639599c12 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts
+++ b/arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts
@@ -118,6 +118,52 @@ rmi4-f1a@1a {
};
};
+ i2c@7000c500 {
+ /* Aptina 1/6" HD SOC (MT9M114) */
+ front-camera@48 {
+ compatible = "onnn,mt9m114";
+ reg = <0x48>;
+
+ clocks = <&tegra_car TEGRA30_CLK_CSUS>;
+
+ reset-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_LOW>;
+
+ vddio-supply = <&vio_1v8_front>;
+ vdd-supply = <&vt_1v8_front>;
+ vaa-supply = <&vt_2v8_front>;
+
+ orientation = <0>; /* Front camera */
+
+ assigned-clocks = <&tegra_car TEGRA30_CLK_VI_SENSOR>,
+ <&tegra_car TEGRA30_CLK_CSUS>;
+ assigned-clock-rates = <24000000>;
+ assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>,
+ <&tegra_car TEGRA30_CLK_VI_SENSOR>;
+
+ port {
+ front_camera_output: endpoint {
+ bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+ link-frequencies = /bits/ 64 <384000000>;
+ remote-endpoint = <&csib_input>;
+ };
+ };
+ };
+
+ camera-pmic@7d {
+ vt_1v8_front: ldo1 {
+ regulator-name = "vt_1v8_dig";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ vt_2v8_front: ldo2 {
+ regulator-name = "vt_2v8_vana";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+ };
+ };
+
spi@7000dc00 {
dsi@2 {
/*
diff --git a/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi b/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
index 768e201456d8..178e4bb153d3 100644
--- a/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
+++ b/arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi
@@ -3,6 +3,7 @@
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
+#include <dt-bindings/media/video-interfaces.h>
#include <dt-bindings/mfd/max77620.h>
#include <dt-bindings/thermal/thermal.h>
@@ -74,6 +75,91 @@ trustzone@bfe00000 {
};
host1x@50000000 {
+ vi@54080000 {
+ status = "okay";
+
+ csi@800 {
+ status = "okay";
+
+ avdd-dsi-csi-supply = <&avdd_dsi_csi>;
+
+ /* CSI-A */
+ channel@0 {
+ reg = <0>;
+
+ nvidia,mipi-calibrate = <&csi 0>; /* CSIA pad */
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ csia_input: endpoint {
+ data-lanes = <1 2>;
+ remote-endpoint = <&rear_camera_output>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ csia_output: endpoint {
+ remote-endpoint = <&vi_ppa_input>;
+ };
+ };
+ };
+
+ /* CSI-B */
+ channel@1 {
+ reg = <1>;
+
+ nvidia,mipi-calibrate = <&csi 1>; /* CSIB pad */
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ csib_input: endpoint {
+ data-lanes = <3>;
+ remote-endpoint = <&front_camera_output>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ csib_output: endpoint {
+ remote-endpoint = <&vi_ppb_input>;
+ };
+ };
+ };
+ };
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ vi_ppa_input: endpoint {
+ remote-endpoint = <&csia_output>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ vi_ppb_input: endpoint {
+ remote-endpoint = <&csib_output>;
+ };
+ };
+ };
+ };
+
lcd: dc@54200000 {
rgb {
status = "okay";
@@ -1112,29 +1198,68 @@ dw9714: coil@c {
compatible = "dongwoon,dw9714";
reg = <0x0c>;
- enable-gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_HIGH>;
+ powerdown-gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>;
vcc-supply = <&vcc_focuser>;
};
+ /* SONY IMX111 1/4" BSI */
+ rear-camera@10 {
+ compatible = "sony,imx111";
+ reg = <0x10>;
+
+ clocks = <&tegra_car TEGRA30_CLK_CSUS>;
+
+ reset-gpios = <&gpio TEGRA_GPIO(K, 4) GPIO_ACTIVE_LOW>;
+
+ iovdd-supply = <&vio_1v8_rear>;
+ dvdd-supply = <&vdd_1v2_rear>;
+ avdd-supply = <&vdd_2v7_rear>;
+
+ orientation = <1>; /* Rear camera */
+ rotation = <90>;
+
+ nvmem = <&m24c08>;
+ lens-focus = <&dw9714>;
+
+ assigned-clocks = <&tegra_car TEGRA30_CLK_VI_SENSOR>,
+ <&tegra_car TEGRA30_CLK_CSUS>;
+ assigned-clock-rates = <24000000>;
+ assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>,
+ <&tegra_car TEGRA30_CLK_VI_SENSOR>;
+
+ port {
+ rear_camera_output: endpoint {
+ data-lanes = <1 2>;
+ bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+ link-frequencies = /bits/ 64 <542400000>;
+ remote-endpoint = <&csia_input>;
+ };
+ };
+ };
+
+ /* rear camera sensor eeprom */
+ m24c08: eeprom@50 {
+ compatible = "st,m24c08", "atmel,24c08";
+ reg = <0x50>;
+
+ /* if high then WP is on, if low then off */
+ wp-gpios = <&gpio TEGRA_GPIO(K, 3) GPIO_ACTIVE_HIGH>;
+
+ /* it is not OTP but writing is unwanted */
+ read-only;
+ pagesize = <16>;
+ num-addresses = <1>;
+
+ vcc-supply = <&vio_1v8_rear>;
+ };
+
camera-pmic@7d {
compatible = "ti,lp8720";
reg = <0x7d>;
enable-gpios = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
- vt_1v2_front: ldo1 {
- regulator-name = "vt_1v2_dig";
- regulator-min-microvolt = <1200000>;
- regulator-max-microvolt = <1200000>;
- };
-
- vt_2v7_front: ldo2 {
- regulator-name = "vt_2v7_vana";
- regulator-min-microvolt = <2700000>;
- regulator-max-microvolt = <2700000>;
- };
-
vdd_2v7_rear: ldo3 {
regulator-name = "8m_2v7_vana";
regulator-min-microvolt = <2700000>;
@@ -1348,10 +1473,11 @@ vdd_1v2_mhl: ldo7 {
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
};
- ldo8 {
+ avdd_dsi_csi: ldo8 {
regulator-name = "avdd_dsi_csi";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
+ regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
};
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes
2026-01-26 10:10 [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
` (3 preceding siblings ...)
2026-01-26 10:10 ` [PATCH v2 4/4] ARM: tegra: lg-x3: complete video device graph Svyatoslav Ryhel
@ 2026-03-02 7:53 ` Svyatoslav Ryhel
2026-03-27 15:05 ` Thierry Reding
5 siblings, 0 replies; 8+ messages in thread
From: Svyatoslav Ryhel @ 2026-03-02 7:53 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Thierry Reding, Jonathan Hunter, Svyatoslav Ryhel,
Jonas Schwöbel
Cc: devicetree, linux-tegra, linux-kernel
пн, 26 січ. 2026 р. о 12:15 Svyatoslav Ryhel <clamor95@gmail.com> пише:
>
> With the recent kernel updates, Tegra30-based LG smartphones now support
> several additional features, including an RGB-DSI bridge, DSI panels,
> MUIC, a charger, a battery temperature sensor, OTG mode, and capacitive
> buttons on the P895. Add required nodes to device trees.
>
> ---
> Changes in v2:
> - fixed dw9714 and tx13d100vm0eaa nodes
> - added video device pipes graph
>
> Regarding CHECK_DTBS output in v2:
> - nvidia,tegra30-pcie, nvidia,tegra30-gmi, nvidia,tegra30-kbc,
> nvidia,tegra20-kbc, nvidia,tegra30-ahub are not documented yet
> - nvidia,tegra30-vi was adjusted and applied, change did not apper yet
> (https://lore.kernel.org/lkml/176860988748.1688420.11717122647073678.b4-ty@nvidia.com/)
> - st,m24c08 appers undocumented though it seems to be different from
> st,24c08, at least they google as separate devices. atmel,24c08 is not
> documented, though it is widey used in linux device trees and is
> supported by driver. Here is one of examples:
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm/boot/dts/allwinner/sun7i-a20-linutronix-testbox-v2.dts?h=next-20260123#n33
> - onnn,mt9m114 does not have 'orientation' property, though it should
> include it since it is generic for camera devices
> - ti,lp8720 and maxim,max77663 have txt documentation and are not yet
> converted to DT schema
> - backlight in panel nodes was not added since lm3533 has no DT support
> - missing '#io-channel-cells' in ti,tsc2007 addressed in
> https://lore.kernel.org/lkml/20260122193549.29858-2-clamor95@gmail.com/
> - missing dsi controller properties of ssd2825 addressed in
> https://lore.kernel.org/lkml/20260123073411.7736-2-clamor95@gmail.com/
> - missing '#io-channel-cells' in generic-adc-thermal was proposed in but rejected
> https://lore.kernel.org/lkml/20250310075638.6979-2-clamor95@gmail.com/
> ---
>
> Svyatoslav Ryhel (4):
> ARM: tegra: lg-x3: add panel and bridge nodes
> ARM: tegra: lg-x3: add USB and power related nodes
> ARM: tegra: lg-x3: add node for capacitive buttons
> ARM: tegra: lg-x3: complete video device graph
>
> arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts | 39 +++
> arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts | 79 +++++
> arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi | 328 ++++++++++++++++++-
> 3 files changed, 429 insertions(+), 17 deletions(-)
>
Hello Thierry!
May these patches be picked if everyone is fine with them?
Best regards,
Svyatoslav R.
> --
> 2.51.0
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes
2026-01-26 10:10 [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
` (4 preceding siblings ...)
2026-03-02 7:53 ` [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
@ 2026-03-27 15:05 ` Thierry Reding
2026-03-27 15:18 ` Svyatoslav Ryhel
5 siblings, 1 reply; 8+ messages in thread
From: Thierry Reding @ 2026-03-27 15:05 UTC (permalink / raw)
To: Svyatoslav Ryhel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Thierry Reding, Jonathan Hunter, Jonas Schwöbel, devicetree,
linux-tegra, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2820 bytes --]
On Mon, Jan 26, 2026 at 12:10:14PM +0200, Svyatoslav Ryhel wrote:
> With the recent kernel updates, Tegra30-based LG smartphones now support
> several additional features, including an RGB-DSI bridge, DSI panels,
> MUIC, a charger, a battery temperature sensor, OTG mode, and capacitive
> buttons on the P895. Add required nodes to device trees.
>
> ---
> Changes in v2:
> - fixed dw9714 and tx13d100vm0eaa nodes
> - added video device pipes graph
>
> Regarding CHECK_DTBS output in v2:
> - nvidia,tegra30-pcie, nvidia,tegra30-gmi, nvidia,tegra30-kbc,
> nvidia,tegra20-kbc, nvidia,tegra30-ahub are not documented yet
> - nvidia,tegra30-vi was adjusted and applied, change did not apper yet
> (https://lore.kernel.org/lkml/176860988748.1688420.11717122647073678.b4-ty@nvidia.com/)
> - st,m24c08 appers undocumented though it seems to be different from
> st,24c08, at least they google as separate devices. atmel,24c08 is not
> documented, though it is widey used in linux device trees and is
> supported by driver. Here is one of examples:
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm/boot/dts/allwinner/sun7i-a20-linutronix-testbox-v2.dts?h=next-20260123#n33
> - onnn,mt9m114 does not have 'orientation' property, though it should
> include it since it is generic for camera devices
> - ti,lp8720 and maxim,max77663 have txt documentation and are not yet
> converted to DT schema
> - backlight in panel nodes was not added since lm3533 has no DT support
> - missing '#io-channel-cells' in ti,tsc2007 addressed in
> https://lore.kernel.org/lkml/20260122193549.29858-2-clamor95@gmail.com/
> - missing dsi controller properties of ssd2825 addressed in
> https://lore.kernel.org/lkml/20260123073411.7736-2-clamor95@gmail.com/
> - missing '#io-channel-cells' in generic-adc-thermal was proposed in but rejected
> https://lore.kernel.org/lkml/20250310075638.6979-2-clamor95@gmail.com/
> ---
>
> Svyatoslav Ryhel (4):
> ARM: tegra: lg-x3: add panel and bridge nodes
> ARM: tegra: lg-x3: add USB and power related nodes
> ARM: tegra: lg-x3: add node for capacitive buttons
> ARM: tegra: lg-x3: complete video device graph
>
> arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts | 39 +++
> arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts | 79 +++++
> arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi | 328 ++++++++++++++++++-
> 3 files changed, 429 insertions(+), 17 deletions(-)
Patches 1-3 applied. Patch 4 has checkpatch has checkpatch warnings:
WARNING: DT compatible string "st,m24c08" appears un-documented -- check ./Documentation/devicetree/bindings/
#255: FILE: arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi:1243:
+ compatible = "st,m24c08", "atmel,24c08";
So I've left it out for now.
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes
2026-03-27 15:05 ` Thierry Reding
@ 2026-03-27 15:18 ` Svyatoslav Ryhel
0 siblings, 0 replies; 8+ messages in thread
From: Svyatoslav Ryhel @ 2026-03-27 15:18 UTC (permalink / raw)
To: Thierry Reding
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Thierry Reding, Jonathan Hunter, Jonas Schwöbel, devicetree,
linux-tegra, linux-kernel
27 березня 2026 р. 17:05:34 GMT+02:00, Thierry Reding <thierry.reding@kernel.org> пише:
>On Mon, Jan 26, 2026 at 12:10:14PM +0200, Svyatoslav Ryhel wrote:
>> With the recent kernel updates, Tegra30-based LG smartphones now support
>> several additional features, including an RGB-DSI bridge, DSI panels,
>> MUIC, a charger, a battery temperature sensor, OTG mode, and capacitive
>> buttons on the P895. Add required nodes to device trees.
>>
>> ---
>> Changes in v2:
>> - fixed dw9714 and tx13d100vm0eaa nodes
>> - added video device pipes graph
>>
>> Regarding CHECK_DTBS output in v2:
>> - nvidia,tegra30-pcie, nvidia,tegra30-gmi, nvidia,tegra30-kbc,
>> nvidia,tegra20-kbc, nvidia,tegra30-ahub are not documented yet
>> - nvidia,tegra30-vi was adjusted and applied, change did not apper yet
>> (https://lore.kernel.org/lkml/176860988748.1688420.11717122647073678.b4-ty@nvidia.com/)
>> - st,m24c08 appers undocumented though it seems to be different from
>> st,24c08, at least they google as separate devices. atmel,24c08 is not
>> documented, though it is widey used in linux device trees and is
>> supported by driver. Here is one of examples:
>> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm/boot/dts/allwinner/sun7i-a20-linutronix-testbox-v2.dts?h=next-20260123#n33
>> - onnn,mt9m114 does not have 'orientation' property, though it should
>> include it since it is generic for camera devices
>> - ti,lp8720 and maxim,max77663 have txt documentation and are not yet
>> converted to DT schema
>> - backlight in panel nodes was not added since lm3533 has no DT support
>> - missing '#io-channel-cells' in ti,tsc2007 addressed in
>> https://lore.kernel.org/lkml/20260122193549.29858-2-clamor95@gmail.com/
>> - missing dsi controller properties of ssd2825 addressed in
>> https://lore.kernel.org/lkml/20260123073411.7736-2-clamor95@gmail.com/
>> - missing '#io-channel-cells' in generic-adc-thermal was proposed in but rejected
>> https://lore.kernel.org/lkml/20250310075638.6979-2-clamor95@gmail.com/
>> ---
>>
>> Svyatoslav Ryhel (4):
>> ARM: tegra: lg-x3: add panel and bridge nodes
>> ARM: tegra: lg-x3: add USB and power related nodes
>> ARM: tegra: lg-x3: add node for capacitive buttons
>> ARM: tegra: lg-x3: complete video device graph
>>
>> arch/arm/boot/dts/nvidia/tegra30-lg-p880.dts | 39 +++
>> arch/arm/boot/dts/nvidia/tegra30-lg-p895.dts | 79 +++++
>> arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi | 328 ++++++++++++++++++-
>> 3 files changed, 429 insertions(+), 17 deletions(-)
>
>Patches 1-3 applied. Patch 4 has checkpatch has checkpatch warnings:
>
> WARNING: DT compatible string "st,m24c08" appears un-documented -- check ./Documentation/devicetree/bindings/
> #255: FILE: arch/arm/boot/dts/nvidia/tegra30-lg-x3.dtsi:1243:
> + compatible = "st,m24c08", "atmel,24c08";
>
>So I've left it out for now.
>
st,m24c08 appers undocumented though it seems to be different from
st,24c08 (in schema) at least they google as separate devices. atmel,24c08 is not
documented, though it is widey used in linux device trees and is
supported by driver. Here is one of examples:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm/boot/dts/allwinner/sun7i-a20-linutronix-testbox-v2.dts?h=next-20260123#n33
I assume patch 4 should be fine and most likely schema needs to be adjusted to cover this compatible (since it exists and is used).
>Thierry
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-03-27 15:18 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-26 10:10 [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 1/4] ARM: tegra: lg-x3: add panel and bridge nodes Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 2/4] ARM: tegra: lg-x3: add USB and power related nodes Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 3/4] ARM: tegra: lg-x3: add node for capacitive buttons Svyatoslav Ryhel
2026-01-26 10:10 ` [PATCH v2 4/4] ARM: tegra: lg-x3: complete video device graph Svyatoslav Ryhel
2026-03-02 7:53 ` [PATCH v2 0/4] ARM: tegra: lg-x3: add missing nodes Svyatoslav Ryhel
2026-03-27 15:05 ` Thierry Reding
2026-03-27 15:18 ` Svyatoslav Ryhel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox