Devicetree
 help / color / mirror / Atom feed
* Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-06-30 10:02   ` Krzysztof Kozlowski
@ 2026-06-30 11:04     ` Jiqi JQ9 Li
  2026-06-30 11:11       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 15+ messages in thread
From: Jiqi JQ9 Li @ 2026-06-30 11:04 UTC (permalink / raw)
  To: Krzysztof Kozlowski, linux-tegra@vger.kernel.org
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, mperttunen@nvidia.com,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

>> Add initial device tree support for the Lenovo ThinkEdge SE70, an
>> industrial edge gateway based on the NVIDIA Jetson Xavier NX module
>> (P3668-0001) with a custom carrier board.
>>
>> This initial submission includes:
>> - 40-pin expansion header pinmux configuration
>> - External Micro SD card slot with dedicated 3.3V regulator
>> - I2C bus for 40-pin header
>>
>> Static verification passed: dt_binding_check and dtbs compilation
>> complete without errors.
>>
>> Signed-off-by: Jiqi Li <lijq9@lenovo.com>
>> ---
>> Changes in v2:
>> - Remove unused input-related headers from baseboard DTSI
>> ---
>>  arch/arm64/boot/dts/nvidia/Makefile           |   1 +
>>  ...ra194-lenovo-thinkedge-se70-baseboard.dtsi | 103 ++++++++++++++++++
>>  .../nvidia/tegra194-lenovo-thinkedge-se70.dts |  14 +++
>>  3 files changed, 118 insertions(+)
>>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70-baseboard.dtsi
>
>What is the "baseboard"? You do not have compatible for SoM, so se70
>feels like final baseboard. Also commit msg says that se70 is the final
>carrier board, so a DTSI for non-existing hardware feels confusing.

Hi Krzysztof,

Thank you for your review.

Regarding the "baseboard" DTSI file – you're right.
Following Mikko's earlier suggestion, I initially split the
carrier board description into a separate DTSI to avoid
inheriting from the NVIDIA P3509 reference board. However,
since the SE70 is a complete carrier board product with no
separate hardware module, the split isn't necessary. I'll
merge the content into the main DTS file in v3 and drop the
baseboard DTSI.

>...
>
>> +};
>> diff --git a/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge->se70.dts
>> new file mode 100644
>> index 000000000000..a8de685f05ef
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
>> @@ -0,0 +1,14 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/dts-v1/;
>> +
>> +#include "tegra194-p3668-0001.dtsi"
>> +#include "tegra194-lenovo-thinkedge-se70-baseboard.dtsi"
>> +
>> +/ {
>> +     model = "Lenovo ThinkEdge SE70";
>> +     compatible = "lenovo,thinkedge-se70", "nvidia,p3668-0001", "nvidia,tegra194";
>> +
>> +     chosen {
>> +             bootargs = "console=ttyTCU0,115200";
>
>
>Why do you need bootargs? stdout property does not work?
>
>Best regards,
>Krzysztof

Regarding bootargs – I checked tegra194-p3668.dtsi (which
is included by tegra194-p3668-0001.dtsi) and it already
defines the chosen node. Following the NVIDIA reference
(e.g., tegra194-p2888.dtsi), I'll define it in the main DTS:

chosen {
    bootargs = "console=ttyTCU0,115200";
    stdout-path = "serial0:115200n8";
};

This ensures compatibility while aligning with the existing
Tegra device tree convention.

I'll send v3 with these changes later.

Best regards,
Jiqi Li

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-06-30 11:04     ` [External] " Jiqi JQ9 Li
@ 2026-06-30 11:11       ` Krzysztof Kozlowski
  2026-06-30 11:17         ` Jiqi JQ9 Li
  2026-07-07  7:13         ` Jiqi JQ9 Li
  0 siblings, 2 replies; 15+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-30 11:11 UTC (permalink / raw)
  To: Jiqi JQ9 Li, linux-tegra@vger.kernel.org
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, mperttunen@nvidia.com,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

On 30/06/2026 13:04, Jiqi JQ9 Li wrote:
>>
>> Why do you need bootargs? stdout property does not work?
>>
>> Best regards,
>> Krzysztof
> 
> Regarding bootargs – I checked tegra194-p3668.dtsi (which
> is included by tegra194-p3668-0001.dtsi) and it already
> defines the chosen node. Following the NVIDIA reference
> (e.g., tegra194-p2888.dtsi), I'll define it in the main DTS:
> 
> chosen {
>     bootargs = "console=ttyTCU0,115200";
>     stdout-path = "serial0:115200n8";

No, you only need stdout-path. Drop the bootargs.

> };
> 
> This ensures compatibility while aligning with the existing
> Tegra device tree convention.

There is no such thing as compatibility with convention.

Every modern upstream DTS uses stdout-path, not bootargs.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-06-30 11:11       ` Krzysztof Kozlowski
@ 2026-06-30 11:17         ` Jiqi JQ9 Li
  2026-07-07  7:13         ` Jiqi JQ9 Li
  1 sibling, 0 replies; 15+ messages in thread
From: Jiqi JQ9 Li @ 2026-06-30 11:17 UTC (permalink / raw)
  To: Krzysztof Kozlowski, linux-tegra@vger.kernel.org
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, mperttunen@nvidia.com,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

>>>
>>> Why do you need bootargs? stdout property does not work?
>>>
>>> Best regards,
>>> Krzysztof
>>
>> Regarding bootargs – I checked tegra194-p3668.dtsi (which
>> is included by tegra194-p3668-0001.dtsi) and it already
>> defines the chosen node. Following the NVIDIA reference
>> (e.g., tegra194-p2888.dtsi), I'll define it in the main DTS:
>>
>> chosen {
>>     bootargs = "console=ttyTCU0,115200";
>>     stdout-path = "serial0:115200n8";

>No, you only need stdout-path. Drop the bootargs.
>
>> };
>>
>> This ensures compatibility while aligning with the existing
>> Tegra device tree convention.
>
>There is no such thing as compatibility with convention.
>
>Every modern upstream DTS uses stdout-path, not bootargs.
>
>Best regards,
>Krzysztof

Hi Krzysztof,

Thank you for the clarification.
I'll drop bootargs and only use stdout-path in v3:

chosen {
    stdout-path = "serial0:115200n8";
};

I'll send v3 with this change along with merging the baseboard
content into the main DTS.

Best regards,
Jiqi Li

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support
@ 2026-07-01  9:06 Jiqi Li
  2026-07-01  9:06 ` [PATCH 1/2] dt-bindings: arm: tegra: Add lenovo,thinkedge-se70 compatible string Jiqi Li
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Jiqi Li @ 2026-07-01  9:06 UTC (permalink / raw)
  To: linux-tegra
  Cc: devicetree, robh+dt, krzk+dt, conor+dt, krzk, mperttunen,
	jonathanh, thierry.reding, mpearson-lenovo, Jiqi Li

This patch set introduces device tree binding and standalone DTS file
for Lenovo ThinkEdge SE70, a fanless industrial edge gateway powered by
the NVIDIA Jetson Xavier NX module (P3668-0001) on a custom carrier board.

Patch 1 updates tegra.yaml bindings to add the three-stage compatible
string matching board + SOM + SoC, following the existing Tegra
carrier board convention.

Patch 2 adds the complete carrier board device tree, including:
- 40-pin expansion header pinmux configuration
- External Micro SD card slot with dedicated 3.3V regulator
- I2C bus for 40-pin header

All static device tree checks pass: dtbs compile and dt_binding_check
complete without errors.

Jiqi Li (2):
  dt-bindings: arm: tegra: Add lenovo,thinkedge-se70 compatible string
  arm64: tegra: Add Lenovo ThinkEdge SE70 device tree

 .../devicetree/bindings/arm/tegra.yaml        |   5 +
 arch/arm64/boot/dts/nvidia/Makefile           |   1 +
 .../nvidia/tegra194-lenovo-thinkedge-se70.dts | 113 ++++++++++++++++++
 3 files changed, 119 insertions(+)
 create mode 100644 arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts

-- 
2.43.0


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/2] dt-bindings: arm: tegra: Add lenovo,thinkedge-se70 compatible string
  2026-07-01  9:06 [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support Jiqi Li
@ 2026-07-01  9:06 ` Jiqi Li
  2026-07-01  9:06 ` [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree Jiqi Li
  2026-07-08  1:58 ` [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support Mikko Perttunen
  2 siblings, 0 replies; 15+ messages in thread
From: Jiqi Li @ 2026-07-01  9:06 UTC (permalink / raw)
  To: linux-tegra
  Cc: devicetree, robh+dt, krzk+dt, conor+dt, krzk, mperttunen,
	jonathanh, thierry.reding, mpearson-lenovo, Jiqi Li, Conor Dooley

Lenovo ThinkEdge SE70 is a fanless industrial edge gateway carrier
board based on NVIDIA Tegra194 (Xavier NX) SOM.
Add the corresponding compatible string for device tree validation.

Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Jiqi Li <lijq9@lenovo.com>
---
Changes in v2:
- No further modifications, adds Conor's Acked-by tag

Changes in v3:
- No further modifications
---
 Documentation/devicetree/bindings/arm/tegra.yaml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/tegra.yaml b/Documentation/devicetree/bindings/arm/tegra.yaml
index 033a63f6c068..a54d0024e636 100644
--- a/Documentation/devicetree/bindings/arm/tegra.yaml
+++ b/Documentation/devicetree/bindings/arm/tegra.yaml
@@ -268,6 +268,11 @@ properties:
         items:
           - const: nvidia,p3509-0000+p3668-0001
           - const: nvidia,tegra194
+      - description: Lenovo ThinkEdge SE70
+        items:
+          - const: lenovo,thinkedge-se70
+          - const: nvidia,p3668-0001
+          - const: nvidia,tegra194
       - items:
           - const: nvidia,tegra234-vdk
           - const: nvidia,tegra234
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-07-01  9:06 [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support Jiqi Li
  2026-07-01  9:06 ` [PATCH 1/2] dt-bindings: arm: tegra: Add lenovo,thinkedge-se70 compatible string Jiqi Li
@ 2026-07-01  9:06 ` Jiqi Li
  2026-07-08  2:22   ` Mikko Perttunen
  2026-07-08  1:58 ` [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support Mikko Perttunen
  2 siblings, 1 reply; 15+ messages in thread
From: Jiqi Li @ 2026-07-01  9:06 UTC (permalink / raw)
  To: linux-tegra
  Cc: devicetree, robh+dt, krzk+dt, conor+dt, krzk, mperttunen,
	jonathanh, thierry.reding, mpearson-lenovo, Jiqi Li

Add initial device tree support for the Lenovo ThinkEdge SE70, an
industrial edge gateway based on the NVIDIA Jetson Xavier NX module
(P3668-0001) with a custom carrier board.

This initial submission includes:
- 40-pin expansion header pinmux configuration
- External Micro SD card slot with dedicated 3.3V regulator
- I2C bus for 40-pin header

Static verification passed: dt_binding_check and dtbs compilation
complete without errors.

Signed-off-by: Jiqi Li <lijq9@lenovo.com>
---
Changes in v2:
- Remove unused input-related headers from baseboard DTSI

Changes in v3:
- Merge baseboard content into main DTS, drop separate baseboard DTSI
- Use stdout-path instead of bootargs in chosen node
---
 arch/arm64/boot/dts/nvidia/Makefile           |   1 +
 .../nvidia/tegra194-lenovo-thinkedge-se70.dts | 113 ++++++++++++++++++
 2 files changed, 114 insertions(+)
 create mode 100644 arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts

diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile
index 72c0cb5efa47..736a3f8a923f 100644
--- a/arch/arm64/boot/dts/nvidia/Makefile
+++ b/arch/arm64/boot/dts/nvidia/Makefile
@@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p3509-0000+p3636-0001.dtb
 dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
 dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0000.dtb
 dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0001.dtb
+dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-lenovo-thinkedge-se70.dtb
 dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-sim-vdk.dtb
 dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0000.dtb
 dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0008.dtb
diff --git a/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
new file mode 100644
index 000000000000..530d5bcaeba7
--- /dev/null
+++ b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
@@ -0,0 +1,113 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "tegra194-p3668-0001.dtsi"
+
+#include <dt-bindings/gpio/tegra194-gpio.h>
+
+/ {
+	model = "Lenovo ThinkEdge SE70";
+	compatible = "lenovo,thinkedge-se70", "nvidia,p3668-0001", "nvidia,tegra194";
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	vdd_5v0_sys: regulator-vdd-5v0-sys {
+		compatible = "regulator-fixed";
+		regulator-name = "VDD_5V_SYS";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	/* Fixed 3.3V power supply regulator for external Micro SD slot */
+	vdd_3v3_sd: regulator-sd-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "VDD_3V3_SD";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio TEGRA194_MAIN_GPIO(Q, 5) GPIO_ACTIVE_HIGH>;
+		regulator-boot-on;
+		enable-active-high;
+	};
+
+	bus@0 {
+		/* 40-pin expansion header custom pinmux configuration */
+		pinmux@2430000 {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinmux_hdr40>;
+
+			pinmux_hdr40: pinmux-hdr40 {
+				pin7 {
+					nvidia,pins = "aud_mclk_ps4";
+					nvidia,function = "aud";
+					nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+					nvidia,tristate = <TEGRA_PIN_DISABLE>;
+					nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+				};
+				pin11 {
+					nvidia,pins = "uart1_rts_pr4";
+					nvidia,function = "uarta";
+					nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+					nvidia,tristate = <TEGRA_PIN_DISABLE>;
+					nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+				};
+				pin12 {
+					nvidia,pins = "dap5_sclk_pt5";
+					nvidia,function = "i2s5";
+					nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+					nvidia,tristate = <TEGRA_PIN_DISABLE>;
+					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+				};
+				pin35 {
+					nvidia,pins = "dap5_fs_pu0";
+					nvidia,function = "i2s5";
+					nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+					nvidia,tristate = <TEGRA_PIN_DISABLE>;
+					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+				};
+				pin36 {
+					nvidia,pins = "uart1_cts_pr5";
+					nvidia,function = "uarta";
+					nvidia,pull = <TEGRA_PIN_PULL_UP>;
+					nvidia,tristate = <TEGRA_PIN_ENABLE>;
+					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+				};
+				pin38 {
+					nvidia,pins = "dap5_din_pt7";
+					nvidia,function = "i2s5";
+					nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+					nvidia,tristate = <TEGRA_PIN_ENABLE>;
+					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+				};
+				pin40 {
+					nvidia,pins = "dap5_dout_pt6";
+					nvidia,function = "i2s5";
+					nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+					nvidia,tristate = <TEGRA_PIN_DISABLE>;
+					nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+				};
+			};
+		};
+
+		/* Configure i2c bus clock to 400kHz for carrier board peripherals */
+		i2c@3160000 {
+			clock-frequency = <400000>;
+			status = "okay";
+		};
+
+		/* SDMMC3: External Micro SD card slot */
+		mmc@3440000 {
+			bus-width = <4>;
+			cd-gpios = <&gpio_aon TEGRA194_AON_GPIO(CC, 4) GPIO_ACTIVE_LOW>;
+			disable-wp;
+			no-1-8-v;
+			vmmc-supply = <&vdd_3v3_sd>;
+			status = "okay";
+		};
+
+	};
+};
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-06-30 11:11       ` Krzysztof Kozlowski
  2026-06-30 11:17         ` Jiqi JQ9 Li
@ 2026-07-07  7:13         ` Jiqi JQ9 Li
  2026-07-07  8:04           ` Krzysztof Kozlowski
  1 sibling, 1 reply; 15+ messages in thread
From: Jiqi JQ9 Li @ 2026-07-07  7:13 UTC (permalink / raw)
  To: Krzysztof Kozlowski, linux-tegra@vger.kernel.org
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, mperttunen@nvidia.com,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

>>>
>>> Why do you need bootargs? stdout property does not work?
>>>
>>> Best regards,
>>> Krzysztof
>>
>> Regarding bootargs – I checked tegra194-p3668.dtsi (which
>> is included by tegra194-p3668-0001.dtsi) and it already
>> defines the chosen node. Following the NVIDIA reference
>> (e.g., tegra194-p2888.dtsi), I'll define it in the main DTS:
>>
>> chosen {
>>     bootargs = "console=ttyTCU0,115200";
>>     stdout-path = "serial0:115200n8";
>
>No, you only need stdout-path. Drop the bootargs.
>
>> };
>>
>> This ensures compatibility while aligning with the existing
>> Tegra device tree convention.
>
>There is no such thing as compatibility with convention.
>
>Every modern upstream DTS uses stdout-path, not bootargs.
>
>Best regards,
>Krzysztof

Hi Krzysztof,

Just a gentle ping on this series. The v3 patches were applied to the
CI baseline last week and have been waiting for review.

Could you please take a look when you have a moment? 

Best regards,
Jiqi Li

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-07-07  7:13         ` Jiqi JQ9 Li
@ 2026-07-07  8:04           ` Krzysztof Kozlowski
  2026-07-07  8:21             ` Jiqi JQ9 Li
  0 siblings, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-07  8:04 UTC (permalink / raw)
  To: Jiqi JQ9 Li, linux-tegra@vger.kernel.org
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, mperttunen@nvidia.com,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

On 07/07/2026 09:13, Jiqi JQ9 Li wrote:
>>>>
>>>> Why do you need bootargs? stdout property does not work?
>>>>
>>>> Best regards,
>>>> Krzysztof
>>>
>>> Regarding bootargs – I checked tegra194-p3668.dtsi (which
>>> is included by tegra194-p3668-0001.dtsi) and it already
>>> defines the chosen node. Following the NVIDIA reference
>>> (e.g., tegra194-p2888.dtsi), I'll define it in the main DTS:
>>>
>>> chosen {
>>>     bootargs = "console=ttyTCU0,115200";
>>>     stdout-path = "serial0:115200n8";
>>
>> No, you only need stdout-path. Drop the bootargs.
>>
>>> };
>>>
>>> This ensures compatibility while aligning with the existing
>>> Tegra device tree convention.
>>
>> There is no such thing as compatibility with convention.
>>
>> Every modern upstream DTS uses stdout-path, not bootargs.
>>
>> Best regards,
>> Krzysztof
> 
> Hi Krzysztof,
> 
> Just a gentle ping on this series. The v3 patches were applied to the
> CI baseline last week and have been waiting for review.
> 

You received comments here, implement them please.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-07-07  8:04           ` Krzysztof Kozlowski
@ 2026-07-07  8:21             ` Jiqi JQ9 Li
  2026-07-07  8:25               ` Krzysztof Kozlowski
  0 siblings, 1 reply; 15+ messages in thread
From: Jiqi JQ9 Li @ 2026-07-07  8:21 UTC (permalink / raw)
  To: Krzysztof Kozlowski, linux-tegra@vger.kernel.org
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, mperttunen@nvidia.com,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

>>>>>
>>>>> Why do you need bootargs? stdout property does not work?
>>>>>
>>>>> Best regards,
>>>>> Krzysztof
>>>>
>>>> Regarding bootargs – I checked tegra194-p3668.dtsi (which
>>>> is included by tegra194-p3668-0001.dtsi) and it already
>>>> defines the chosen node. Following the NVIDIA reference
>>>> (e.g., tegra194-p2888.dtsi), I'll define it in the main DTS:
>>>>
>>>> chosen {
>>>>     bootargs = "console=ttyTCU0,115200";
>>>>     stdout-path = "serial0:115200n8";
>>>
>>> No, you only need stdout-path. Drop the bootargs.
>>>
>>>> };
>>>>
>>>> This ensures compatibility while aligning with the existing
>>>> Tegra device tree convention.
>>>
>>> There is no such thing as compatibility with convention.
>>>
>>> Every modern upstream DTS uses stdout-path, not bootargs.
>>>
>>> Best regards,
>>> Krzysztof
>>
>> Hi Krzysztof,
>>
>> Just a gentle ping on this series. The v3 patches were applied to the
>> CI baseline last week and have been waiting for review.
>>
>
>You received comments here, implement them please.
>
>Best regards,
>Krzysztof

Hi Krzysztof,

Thank you for your quick reply.

I just wanted to follow up and confirm that the v3 series is now
available on Patchwork and has passed the automated Sashiko AI review.

You can see the series here:
https://patchwork.ozlabs.org/project/linux-tegra/list/?series=511518

As requested, the key changes from v2 version you reviewed are:
1. The baseboard DTSI content has been merged into the main DTS file.
2. The bootargs property has been removed from the chosen node; only
   stdout-path is used.

Could you please take another look when you have a moment? 

Best regards,
Jiqi Li

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-07-07  8:21             ` Jiqi JQ9 Li
@ 2026-07-07  8:25               ` Krzysztof Kozlowski
  0 siblings, 0 replies; 15+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-07  8:25 UTC (permalink / raw)
  To: Jiqi JQ9 Li, linux-tegra@vger.kernel.org
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, mperttunen@nvidia.com,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

On 07/07/2026 10:21, Jiqi JQ9 Li wrote:
>>>>>>
>>>>>> Why do you need bootargs? stdout property does not work?
>>>>>>
>>>>>> Best regards,
>>>>>> Krzysztof
>>>>>
>>>>> Regarding bootargs – I checked tegra194-p3668.dtsi (which
>>>>> is included by tegra194-p3668-0001.dtsi) and it already
>>>>> defines the chosen node. Following the NVIDIA reference
>>>>> (e.g., tegra194-p2888.dtsi), I'll define it in the main DTS:
>>>>>
>>>>> chosen {
>>>>>     bootargs = "console=ttyTCU0,115200";
>>>>>     stdout-path = "serial0:115200n8";
>>>>
>>>> No, you only need stdout-path. Drop the bootargs.
>>>>
>>>>> };
>>>>>
>>>>> This ensures compatibility while aligning with the existing
>>>>> Tegra device tree convention.
>>>>
>>>> There is no such thing as compatibility with convention.
>>>>
>>>> Every modern upstream DTS uses stdout-path, not bootargs.
>>>>
>>>> Best regards,
>>>> Krzysztof
>>>
>>> Hi Krzysztof,
>>>
>>> Just a gentle ping on this series. The v3 patches were applied to the
>>> CI baseline last week and have been waiting for review.
>>>
>>
>> You received comments here, implement them please.
>>
>> Best regards,
>> Krzysztof
> 
> Hi Krzysztof,
> 
> Thank you for your quick reply.
> 
> I just wanted to follow up and confirm that the v3 series is now
> available on Patchwork and has passed the automated Sashiko AI review.
> 
> You can see the series here:
> https://patchwork.ozlabs.org/project/linux-tegra/list/?series=511518
> 
> As requested, the key changes from v2 version you reviewed are:
> 1. The baseboard DTSI content has been merged into the main DTS file.
> 2. The bootargs property has been removed from the chosen node; only
>    stdout-path is used.
> 
> Could you please take another look when you have a moment? 

I don't use that Patchwork and maybe you mistaken my role here. So to
clarify: you got everything needed from DT maintainers, so I do not need
to do the same work. You also ping me 6 days after posting, which is
pretty non acceptable ping time. For example my patches for Tegra:
https://lore.kernel.org/all/20260406064935.27968-4-krzysztof.kozlowski@oss.qualcomm.com/
https://lore.kernel.org/all/20260429165626.243471-4-krzysztof.kozlowski@oss.qualcomm.com/
are unanswered for 3 months...

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support
  2026-07-01  9:06 [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support Jiqi Li
  2026-07-01  9:06 ` [PATCH 1/2] dt-bindings: arm: tegra: Add lenovo,thinkedge-se70 compatible string Jiqi Li
  2026-07-01  9:06 ` [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree Jiqi Li
@ 2026-07-08  1:58 ` Mikko Perttunen
  2026-07-08  3:04   ` [External] " Jiqi JQ9 Li
  2 siblings, 1 reply; 15+ messages in thread
From: Mikko Perttunen @ 2026-07-08  1:58 UTC (permalink / raw)
  To: linux-tegra, Jiqi Li
  Cc: devicetree, robh+dt, krzk+dt, conor+dt, krzk, jonathanh,
	thierry.reding, mpearson-lenovo, Jiqi Li

On Wednesday, July 1, 2026 6:06 PM Jiqi Li wrote:
> This patch set introduces device tree binding and standalone DTS file
> for Lenovo ThinkEdge SE70, a fanless industrial edge gateway powered by
> the NVIDIA Jetson Xavier NX module (P3668-0001) on a custom carrier board.
> 
> Patch 1 updates tegra.yaml bindings to add the three-stage compatible
> string matching board + SOM + SoC, following the existing Tegra
> carrier board convention.
> 
> Patch 2 adds the complete carrier board device tree, including:
> - 40-pin expansion header pinmux configuration
> - External Micro SD card slot with dedicated 3.3V regulator
> - I2C bus for 40-pin header
> 
> All static device tree checks pass: dtbs compile and dt_binding_check
> complete without errors.
> 
> Jiqi Li (2):
>   dt-bindings: arm: tegra: Add lenovo,thinkedge-se70 compatible string
>   arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
> 
>  .../devicetree/bindings/arm/tegra.yaml        |   5 +
>  arch/arm64/boot/dts/nvidia/Makefile           |   1 +
>  .../nvidia/tegra194-lenovo-thinkedge-se70.dts | 113 ++++++++++++++++++
>  3 files changed, 119 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
> 
> -- 
> 2.43.0
> 
> 

Your patch email formatting is off. The individual patch subjects should
include the series version. That's what you should get out of the box
with git send-email.

Also, please don't restart series numbering. The above two make it hard
to track the series.

My strong recommendation is to use the 'b4' tool to manage and submit
your patches. It will by default result in emails that are easier for
maintainers to work with.

Thank you
Mikko




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-07-01  9:06 ` [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree Jiqi Li
@ 2026-07-08  2:22   ` Mikko Perttunen
  2026-07-08  3:17     ` [External] " Jiqi JQ9 Li
  0 siblings, 1 reply; 15+ messages in thread
From: Mikko Perttunen @ 2026-07-08  2:22 UTC (permalink / raw)
  To: linux-tegra, Jiqi Li
  Cc: devicetree, robh+dt, krzk+dt, conor+dt, krzk, jonathanh,
	thierry.reding, mpearson-lenovo, Jiqi Li

On Wednesday, July 1, 2026 6:06 PM Jiqi Li wrote:
> Add initial device tree support for the Lenovo ThinkEdge SE70, an
> industrial edge gateway based on the NVIDIA Jetson Xavier NX module
> (P3668-0001) with a custom carrier board.
> 
> This initial submission includes:
> - 40-pin expansion header pinmux configuration
> - External Micro SD card slot with dedicated 3.3V regulator
> - I2C bus for 40-pin header
> 
> Static verification passed: dt_binding_check and dtbs compilation
> complete without errors.
> 
> Signed-off-by: Jiqi Li <lijq9@lenovo.com>
> ---
> Changes in v2:
> - Remove unused input-related headers from baseboard DTSI
> 
> Changes in v3:
> - Merge baseboard content into main DTS, drop separate baseboard DTSI
> - Use stdout-path instead of bootargs in chosen node
> ---
>  arch/arm64/boot/dts/nvidia/Makefile           |   1 +
>  .../nvidia/tegra194-lenovo-thinkedge-se70.dts | 113 ++++++++++++++++++
>  2 files changed, 114 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
> 
> diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile
> index 72c0cb5efa47..736a3f8a923f 100644
> --- a/arch/arm64/boot/dts/nvidia/Makefile
> +++ b/arch/arm64/boot/dts/nvidia/Makefile
> @@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p3509-0000+p3636-0001.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0000.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0001.dtb
> +dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-lenovo-thinkedge-se70.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-sim-vdk.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0000.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0008.dtb
> diff --git a/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
> new file mode 100644
> index 000000000000..530d5bcaeba7
> --- /dev/null
> +++ b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
> @@ -0,0 +1,113 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/dts-v1/;
> +
> +#include "tegra194-p3668-0001.dtsi"
> +
> +#include <dt-bindings/gpio/tegra194-gpio.h>
> +
> +/ {
> +	model = "Lenovo ThinkEdge SE70";
> +	compatible = "lenovo,thinkedge-se70", "nvidia,p3668-0001", "nvidia,tegra194";
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	vdd_5v0_sys: regulator-vdd-5v0-sys {
> +		compatible = "regulator-fixed";
> +		regulator-name = "VDD_5V_SYS";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};

Nothing currently references this regulator. Should e.g. the SD
regulator below supply from it, or should it be removed?

> +
> +	/* Fixed 3.3V power supply regulator for external Micro SD slot */
> +	vdd_3v3_sd: regulator-sd-3v3 {

Should be called regulator-vdd-3v3-sd.

Also, please move the regulator nodes to the bottom of the file
matching other device trees (alphabetical order).

Thank you!
Mikko

> +		compatible = "regulator-fixed";
> +		regulator-name = "VDD_3V3_SD";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&gpio TEGRA194_MAIN_GPIO(Q, 5) GPIO_ACTIVE_HIGH>;
> +		regulator-boot-on;
> +		enable-active-high;
> +	};
> +
> +	bus@0 {
> +		/* 40-pin expansion header custom pinmux configuration */
> +		pinmux@2430000 {
> +			status = "okay";
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&pinmux_hdr40>;
> +
> +			pinmux_hdr40: pinmux-hdr40 {
> +				pin7 {
> +					nvidia,pins = "aud_mclk_ps4";
> +					nvidia,function = "aud";
> +					nvidia,pull = <TEGRA_PIN_PULL_NONE>;
> +					nvidia,tristate = <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input = <TEGRA_PIN_DISABLE>;
> +				};
> +				pin11 {
> +					nvidia,pins = "uart1_rts_pr4";
> +					nvidia,function = "uarta";
> +					nvidia,pull = <TEGRA_PIN_PULL_NONE>;
> +					nvidia,tristate = <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input = <TEGRA_PIN_DISABLE>;
> +				};
> +				pin12 {
> +					nvidia,pins = "dap5_sclk_pt5";
> +					nvidia,function = "i2s5";
> +					nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
> +					nvidia,tristate = <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
> +				};
> +				pin35 {
> +					nvidia,pins = "dap5_fs_pu0";
> +					nvidia,function = "i2s5";
> +					nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
> +					nvidia,tristate = <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
> +				};
> +				pin36 {
> +					nvidia,pins = "uart1_cts_pr5";
> +					nvidia,function = "uarta";
> +					nvidia,pull = <TEGRA_PIN_PULL_UP>;
> +					nvidia,tristate = <TEGRA_PIN_ENABLE>;
> +					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
> +				};
> +				pin38 {
> +					nvidia,pins = "dap5_din_pt7";
> +					nvidia,function = "i2s5";
> +					nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
> +					nvidia,tristate = <TEGRA_PIN_ENABLE>;
> +					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
> +				};
> +				pin40 {
> +					nvidia,pins = "dap5_dout_pt6";
> +					nvidia,function = "i2s5";
> +					nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
> +					nvidia,tristate = <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input = <TEGRA_PIN_DISABLE>;
> +				};
> +			};
> +		};
> +
> +		/* Configure i2c bus clock to 400kHz for carrier board peripherals */
> +		i2c@3160000 {
> +			clock-frequency = <400000>;
> +			status = "okay";
> +		};
> +
> +		/* SDMMC3: External Micro SD card slot */
> +		mmc@3440000 {
> +			bus-width = <4>;
> +			cd-gpios = <&gpio_aon TEGRA194_AON_GPIO(CC, 4) GPIO_ACTIVE_LOW>;
> +			disable-wp;
> +			no-1-8-v;
> +			vmmc-supply = <&vdd_3v3_sd>;
> +			status = "okay";
> +		};
> +
> +	};
> +};
> -- 
> 2.43.0
> 
> 





^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [External] Re: [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support
  2026-07-08  1:58 ` [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support Mikko Perttunen
@ 2026-07-08  3:04   ` Jiqi JQ9 Li
  0 siblings, 0 replies; 15+ messages in thread
From: Jiqi JQ9 Li @ 2026-07-08  3:04 UTC (permalink / raw)
  To: Mikko Perttunen, linux-tegra@vger.kernel.org
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, krzk@kernel.org,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

>> This patch set introduces device tree binding and standalone DTS file
>> for Lenovo ThinkEdge SE70, a fanless industrial edge gateway powered by
>> the NVIDIA Jetson Xavier NX module (P3668-0001) on a custom carrier board.
>>
>> Patch 1 updates tegra.yaml bindings to add the three-stage compatible
>> string matching board + SOM + SoC, following the existing Tegra
>> carrier board convention.
>>
>> Patch 2 adds the complete carrier board device tree, including:
>> - 40-pin expansion header pinmux configuration
>> - External Micro SD card slot with dedicated 3.3V regulator
>> - I2C bus for 40-pin header
>>
>> All static device tree checks pass: dtbs compile and dt_binding_check
>> complete without errors.
>>
>> Jiqi Li (2):
>>   dt-bindings: arm: tegra: Add lenovo,thinkedge-se70 compatible string
>>   arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
>>
>>  .../devicetree/bindings/arm/tegra.yaml        |   5 +
>>  arch/arm64/boot/dts/nvidia/Makefile           |   1 +
>>  .../nvidia/tegra194-lenovo-thinkedge-se70.dts | 113 ++++++++++++++++++
>>  3 files changed, 119 insertions(+)
>>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
>>
>> --
>> 2.43.0
>>
>>
>
>Your patch email formatting is off. The individual patch subjects should
>include the series version. That's what you should get out of the box
>with git send-email.
>
>Also, please don't restart series numbering. The above two make it hard
>to track the series.
>
>My strong recommendation is to use the 'b4' tool to manage and submit
>your patches. It will by default result in emails that are easier for
>maintainers to work with.
>
>Thank you
>Mikko

Hi Mikko,

Thank you for pointing out the formatting issues. I understand that the
individual patch subjects should include the series version (e.g.,
[PATCH v3 1/2]), and that I should not restart series numbering.

I will prepare a v4 version with the following fixes:
- Use `git format-patch --subject-prefix="PATCH v4"` to ensure all
  patches have the correct subject prefix.
- Keep the same series numbering and clearly mention in the cover
  letter that this is v4 with no code changes (only format fixes).

I will also look into using the 'b4' tool as you recommended for future
submissions to make the process smoother.

Thank you for your guidance.

Best regards,
Jiqi Li

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-07-08  2:22   ` Mikko Perttunen
@ 2026-07-08  3:17     ` Jiqi JQ9 Li
  2026-07-08  5:55       ` Mikko Perttunen
  0 siblings, 1 reply; 15+ messages in thread
From: Jiqi JQ9 Li @ 2026-07-08  3:17 UTC (permalink / raw)
  To: Mikko Perttunen, linux-tegra@vger.kernel.org
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, krzk@kernel.org,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

>> Add initial device tree support for the Lenovo ThinkEdge SE70, an
>> industrial edge gateway based on the NVIDIA Jetson Xavier NX module
>> (P3668-0001) with a custom carrier board.
>>
>> This initial submission includes:
>> - 40-pin expansion header pinmux configuration
>> - External Micro SD card slot with dedicated 3.3V regulator
>> - I2C bus for 40-pin header
>>
>> Static verification passed: dt_binding_check and dtbs compilation
>> complete without errors.
>>
>> Signed-off-by: Jiqi Li <lijq9@lenovo.com>
>> ---
>> Changes in v2:
>> - Remove unused input-related headers from baseboard DTSI
>>
>> Changes in v3:
>> - Merge baseboard content into main DTS, drop separate baseboard DTSI
>> - Use stdout-path instead of bootargs in chosen node
>> ---
>>  arch/arm64/boot/dts/nvidia/Makefile           |   1 +
>>  .../nvidia/tegra194-lenovo-thinkedge-se70.dts | 113 ++++++++++++++++++
>>  2 files changed, 114 insertions(+)
>>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
>>
>> diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile
>> index 72c0cb5efa47..736a3f8a923f 100644
>> --- a/arch/arm64/boot/dts/nvidia/Makefile
>> +++ b/arch/arm64/boot/dts/nvidia/Makefile
>> @@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p3509-0000+p3636-0001.dtb
>>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
>>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0000.dtb
>>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0001.dtb
>> +dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-lenovo-thinkedge-se70.dtb
>>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-sim-vdk.dtb
>>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0000.dtb
>>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0008.dtb
>> diff --git a/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
>> new file mode 100644
>> index 000000000000..530d5bcaeba7
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
>> @@ -0,0 +1,113 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/dts-v1/;
>> +
>> +#include "tegra194-p3668-0001.dtsi"
>> +
>> +#include <dt-bindings/gpio/tegra194-gpio.h>
>> +
>> +/ {
>> +     model = "Lenovo ThinkEdge SE70";
>> +     compatible = "lenovo,thinkedge-se70", "nvidia,p3668-0001", "nvidia,tegra194";
>> +
>> +     chosen {
>> +             stdout-path = "serial0:115200n8";
>> +     };
>> +
>> +     vdd_5v0_sys: regulator-vdd-5v0-sys {
>> +             compatible = "regulator-fixed";
>> +             regulator-name = "VDD_5V_SYS";
>> +             regulator-min-microvolt = <5000000>;
>> +             regulator-max-microvolt = <5000000>;
>> +             regulator-always-on;
>> +             regulator-boot-on;
>> +     };
>
>Nothing currently references this regulator. Should e.g. the SD
>regulator below supply from it, or should it be removed?
>
>> +
>> +     /* Fixed 3.3V power supply regulator for external Micro SD slot */
>> +     vdd_3v3_sd: regulator-sd-3v3 {
>
>Should be called regulator-vdd-3v3-sd.
>
>Also, please move the regulator nodes to the bottom of the file
>matching other device trees (alphabetical order).
>
>Thank you!
>Mikko
>

Hi Mikko,

Thank you for the detailed review of the regulator nodes.

I have addressed your comments for the upcoming v4 as follows:

1. Regulator naming and placement:
   - I will rename `vdd_3v3_sd: regulator-sd-3v3` to
     `regulator-vdd-3v3-sd` to follow the naming convention.
   - I will move both regulator nodes to the bottom of the file and
     order them alphabetically (regulator-vdd-3v3-sd then
     regulator-vdd-5v0-sys).

2. Regarding `vdd_5v0_sys`:
   - After removing it, I encountered compilation errors because it is
     referenced by nodes in `tegra194.dtsi` (USB padctl) and
     `tegra194-p3668.dtsi` (PMIC regulators). Therefore, it must be
     kept in the file. I will add a comment to clarify it is a system
     supply required by the SoM and SoC layers.

I will submit v4 shortly with these changes incorporated.

Best regards,
Jiqi Li

>> +             compatible = "regulator-fixed";
>> +             regulator-name = "VDD_3V3_SD";
>> +             regulator-min-microvolt = <3300000>;
>> +             regulator-max-microvolt = <3300000>;
>> +             gpio = <&gpio TEGRA194_MAIN_GPIO(Q, 5) GPIO_ACTIVE_HIGH>;
>> +             regulator-boot-on;
>> +             enable-active-high;
>> +     };
>> +
>> +     bus@0 {
>> +             /* 40-pin expansion header custom pinmux configuration */
>> +             pinmux@2430000 {
>> +                     status = "okay";
>> +                     pinctrl-names = "default";
>> +                     pinctrl-0 = <&pinmux_hdr40>;
>> +
>> +                     pinmux_hdr40: pinmux-hdr40 {
>> +                             pin7 {
>> +                                     nvidia,pins = "aud_mclk_ps4";
>> +                                     nvidia,function = "aud";
>> +                                     nvidia,pull = <TEGRA_PIN_PULL_NONE>;
>> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
>> +                                     nvidia,enable-input = <TEGRA_PIN_DISABLE>;
>> +                             };
>> +                             pin11 {
>> +                                     nvidia,pins = "uart1_rts_pr4";
>> +                                     nvidia,function = "uarta";
>> +                                     nvidia,pull = <TEGRA_PIN_PULL_NONE>;
>> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
>> +                                     nvidia,enable-input = <TEGRA_PIN_DISABLE>;
>> +                             };
>> +                             pin12 {
>> +                                     nvidia,pins = "dap5_sclk_pt5";
>> +                                     nvidia,function = "i2s5";
>> +                                     nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
>> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
>> +                                     nvidia,enable-input = <TEGRA_PIN_ENABLE>;
>> +                             };
>> +                             pin35 {
>> +                                     nvidia,pins = "dap5_fs_pu0";
>> +                                     nvidia,function = "i2s5";
>> +                                     nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
>> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
>> +                                     nvidia,enable-input = <TEGRA_PIN_ENABLE>;
>> +                             };
>> +                             pin36 {
>> +                                     nvidia,pins = "uart1_cts_pr5";
>> +                                     nvidia,function = "uarta";
>> +                                     nvidia,pull = <TEGRA_PIN_PULL_UP>;
>> +                                     nvidia,tristate = <TEGRA_PIN_ENABLE>;
>> +                                     nvidia,enable-input = <TEGRA_PIN_ENABLE>;
>> +                             };
>> +                             pin38 {
>> +                                     nvidia,pins = "dap5_din_pt7";
>> +                                     nvidia,function = "i2s5";
>> +                                     nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
>> +                                     nvidia,tristate = <TEGRA_PIN_ENABLE>;
>> +                                     nvidia,enable-input = <TEGRA_PIN_ENABLE>;
>> +                             };
>> +                             pin40 {
>> +                                     nvidia,pins = "dap5_dout_pt6";
>> +                                     nvidia,function = "i2s5";
>> +                                     nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
>> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
>> +                                     nvidia,enable-input = <TEGRA_PIN_DISABLE>;
>> +                             };
>> +                     };
>> +             };
>> +
>> +             /* Configure i2c bus clock to 400kHz for carrier board peripherals */
>> +             i2c@3160000 {
>> +                     clock-frequency = <400000>;
>> +                     status = "okay";
>> +             };
>> +
>> +             /* SDMMC3: External Micro SD card slot */
>> +             mmc@3440000 {
>> +                     bus-width = <4>;
>> +                     cd-gpios = <&gpio_aon TEGRA194_AON_GPIO(CC, 4) GPIO_ACTIVE_LOW>;
>> +                     disable-wp;
>> +                     no-1-8-v;
>> +                     vmmc-supply = <&vdd_3v3_sd>;
>> +                     status = "okay";
>> +             };
>> +
>> +     };
>> +};
>> --
>> 2.43.0
>>
>>
>




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
  2026-07-08  3:17     ` [External] " Jiqi JQ9 Li
@ 2026-07-08  5:55       ` Mikko Perttunen
  0 siblings, 0 replies; 15+ messages in thread
From: Mikko Perttunen @ 2026-07-08  5:55 UTC (permalink / raw)
  To: linux-tegra@vger.kernel.org, Jiqi JQ9 Li
  Cc: devicetree@vger.kernel.org, robh+dt@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, krzk@kernel.org,
	jonathanh@nvidia.com, thierry.reding@gmail.com,
	mpearson-lenovo@squebb.ca

On Wednesday, July 8, 2026 12:17 PM Jiqi JQ9 Li wrote:
> >> Add initial device tree support for the Lenovo ThinkEdge SE70, an
> >> industrial edge gateway based on the NVIDIA Jetson Xavier NX module
> >> (P3668-0001) with a custom carrier board.
> >>
> >> This initial submission includes:
> >> - 40-pin expansion header pinmux configuration
> >> - External Micro SD card slot with dedicated 3.3V regulator
> >> - I2C bus for 40-pin header
> >>
> >> Static verification passed: dt_binding_check and dtbs compilation
> >> complete without errors.
> >>
> >> Signed-off-by: Jiqi Li <lijq9@lenovo.com>
> >> ---
> >> Changes in v2:
> >> - Remove unused input-related headers from baseboard DTSI
> >>
> >> Changes in v3:
> >> - Merge baseboard content into main DTS, drop separate baseboard DTSI
> >> - Use stdout-path instead of bootargs in chosen node
> >> ---
> >>  arch/arm64/boot/dts/nvidia/Makefile           |   1 +
> >>  .../nvidia/tegra194-lenovo-thinkedge-se70.dts | 113 ++++++++++++++++++
> >>  2 files changed, 114 insertions(+)
> >>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
> >>
> >> diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile
> >> index 72c0cb5efa47..736a3f8a923f 100644
> >> --- a/arch/arm64/boot/dts/nvidia/Makefile
> >> +++ b/arch/arm64/boot/dts/nvidia/Makefile
> >> @@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p3509-0000+p3636-0001.dtb
> >>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
> >>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0000.dtb
> >>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0001.dtb
> >> +dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-lenovo-thinkedge-se70.dtb
> >>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-sim-vdk.dtb
> >>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0000.dtb
> >>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0008.dtb
> >> diff --git a/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
> >> new file mode 100644
> >> index 000000000000..530d5bcaeba7
> >> --- /dev/null
> >> +++ b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
> >> @@ -0,0 +1,113 @@
> >> +// SPDX-License-Identifier: GPL-2.0
> >> +/dts-v1/;
> >> +
> >> +#include "tegra194-p3668-0001.dtsi"
> >> +
> >> +#include <dt-bindings/gpio/tegra194-gpio.h>
> >> +
> >> +/ {
> >> +     model = "Lenovo ThinkEdge SE70";
> >> +     compatible = "lenovo,thinkedge-se70", "nvidia,p3668-0001", "nvidia,tegra194";
> >> +
> >> +     chosen {
> >> +             stdout-path = "serial0:115200n8";
> >> +     };
> >> +
> >> +     vdd_5v0_sys: regulator-vdd-5v0-sys {
> >> +             compatible = "regulator-fixed";
> >> +             regulator-name = "VDD_5V_SYS";
> >> +             regulator-min-microvolt = <5000000>;
> >> +             regulator-max-microvolt = <5000000>;
> >> +             regulator-always-on;
> >> +             regulator-boot-on;
> >> +     };
> >
> >Nothing currently references this regulator. Should e.g. the SD
> >regulator below supply from it, or should it be removed?
> >
> >> +
> >> +     /* Fixed 3.3V power supply regulator for external Micro SD slot */
> >> +     vdd_3v3_sd: regulator-sd-3v3 {
> >
> >Should be called regulator-vdd-3v3-sd.
> >
> >Also, please move the regulator nodes to the bottom of the file
> >matching other device trees (alphabetical order).
> >
> >Thank you!
> >Mikko
> >
> 
> Hi Mikko,
> 
> Thank you for the detailed review of the regulator nodes.
> 
> I have addressed your comments for the upcoming v4 as follows:
> 
> 1. Regulator naming and placement:
>    - I will rename `vdd_3v3_sd: regulator-sd-3v3` to
>      `regulator-vdd-3v3-sd` to follow the naming convention.
>    - I will move both regulator nodes to the bottom of the file and
>      order them alphabetically (regulator-vdd-3v3-sd then
>      regulator-vdd-5v0-sys).
> 
> 2. Regarding `vdd_5v0_sys`:
>    - After removing it, I encountered compilation errors because it is
>      referenced by nodes in `tegra194.dtsi` (USB padctl) and
>      `tegra194-p3668.dtsi` (PMIC regulators). Therefore, it must be
>      kept in the file. I will add a comment to clarify it is a system
>      supply required by the SoM and SoC layers.

Ah, indeed. That's fine then. I agree that a brief comment would be
helpful.

> 
> I will submit v4 shortly with these changes incorporated.
> 
> Best regards,
> Jiqi Li
> 
> >> +             compatible = "regulator-fixed";
> >> +             regulator-name = "VDD_3V3_SD";
> >> +             regulator-min-microvolt = <3300000>;
> >> +             regulator-max-microvolt = <3300000>;
> >> +             gpio = <&gpio TEGRA194_MAIN_GPIO(Q, 5) GPIO_ACTIVE_HIGH>;
> >> +             regulator-boot-on;
> >> +             enable-active-high;
> >> +     };
> >> +
> >> +     bus@0 {
> >> +             /* 40-pin expansion header custom pinmux configuration */
> >> +             pinmux@2430000 {
> >> +                     status = "okay";
> >> +                     pinctrl-names = "default";
> >> +                     pinctrl-0 = <&pinmux_hdr40>;
> >> +
> >> +                     pinmux_hdr40: pinmux-hdr40 {
> >> +                             pin7 {
> >> +                                     nvidia,pins = "aud_mclk_ps4";
> >> +                                     nvidia,function = "aud";
> >> +                                     nvidia,pull = <TEGRA_PIN_PULL_NONE>;
> >> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
> >> +                                     nvidia,enable-input = <TEGRA_PIN_DISABLE>;
> >> +                             };
> >> +                             pin11 {
> >> +                                     nvidia,pins = "uart1_rts_pr4";
> >> +                                     nvidia,function = "uarta";
> >> +                                     nvidia,pull = <TEGRA_PIN_PULL_NONE>;
> >> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
> >> +                                     nvidia,enable-input = <TEGRA_PIN_DISABLE>;
> >> +                             };
> >> +                             pin12 {
> >> +                                     nvidia,pins = "dap5_sclk_pt5";
> >> +                                     nvidia,function = "i2s5";
> >> +                                     nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
> >> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
> >> +                                     nvidia,enable-input = <TEGRA_PIN_ENABLE>;
> >> +                             };
> >> +                             pin35 {
> >> +                                     nvidia,pins = "dap5_fs_pu0";
> >> +                                     nvidia,function = "i2s5";
> >> +                                     nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
> >> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
> >> +                                     nvidia,enable-input = <TEGRA_PIN_ENABLE>;
> >> +                             };
> >> +                             pin36 {
> >> +                                     nvidia,pins = "uart1_cts_pr5";
> >> +                                     nvidia,function = "uarta";
> >> +                                     nvidia,pull = <TEGRA_PIN_PULL_UP>;
> >> +                                     nvidia,tristate = <TEGRA_PIN_ENABLE>;
> >> +                                     nvidia,enable-input = <TEGRA_PIN_ENABLE>;
> >> +                             };
> >> +                             pin38 {
> >> +                                     nvidia,pins = "dap5_din_pt7";
> >> +                                     nvidia,function = "i2s5";
> >> +                                     nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
> >> +                                     nvidia,tristate = <TEGRA_PIN_ENABLE>;
> >> +                                     nvidia,enable-input = <TEGRA_PIN_ENABLE>;
> >> +                             };
> >> +                             pin40 {
> >> +                                     nvidia,pins = "dap5_dout_pt6";
> >> +                                     nvidia,function = "i2s5";
> >> +                                     nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
> >> +                                     nvidia,tristate = <TEGRA_PIN_DISABLE>;
> >> +                                     nvidia,enable-input = <TEGRA_PIN_DISABLE>;
> >> +                             };
> >> +                     };
> >> +             };
> >> +
> >> +             /* Configure i2c bus clock to 400kHz for carrier board peripherals */
> >> +             i2c@3160000 {
> >> +                     clock-frequency = <400000>;
> >> +                     status = "okay";
> >> +             };
> >> +
> >> +             /* SDMMC3: External Micro SD card slot */
> >> +             mmc@3440000 {
> >> +                     bus-width = <4>;
> >> +                     cd-gpios = <&gpio_aon TEGRA194_AON_GPIO(CC, 4) GPIO_ACTIVE_LOW>;
> >> +                     disable-wp;
> >> +                     no-1-8-v;
> >> +                     vmmc-supply = <&vdd_3v3_sd>;
> >> +                     status = "okay";
> >> +             };
> >> +
> >> +     };
> >> +};
> >> --
> >> 2.43.0
> >>
> >>
> >
> 
> 
> 





^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2026-07-08  5:55 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-01  9:06 [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support Jiqi Li
2026-07-01  9:06 ` [PATCH 1/2] dt-bindings: arm: tegra: Add lenovo,thinkedge-se70 compatible string Jiqi Li
2026-07-01  9:06 ` [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree Jiqi Li
2026-07-08  2:22   ` Mikko Perttunen
2026-07-08  3:17     ` [External] " Jiqi JQ9 Li
2026-07-08  5:55       ` Mikko Perttunen
2026-07-08  1:58 ` [PATCH v3 0/2] Add Lenovo ThinkEdge SE70 carrier board support Mikko Perttunen
2026-07-08  3:04   ` [External] " Jiqi JQ9 Li
  -- strict thread matches above, loose matches on Subject: below --
2026-06-30  9:17 [PATCH v2 " Jiqi Li
2026-06-30  9:17 ` [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree Jiqi Li
2026-06-30 10:02   ` Krzysztof Kozlowski
2026-06-30 11:04     ` [External] " Jiqi JQ9 Li
2026-06-30 11:11       ` Krzysztof Kozlowski
2026-06-30 11:17         ` Jiqi JQ9 Li
2026-07-07  7:13         ` Jiqi JQ9 Li
2026-07-07  8:04           ` Krzysztof Kozlowski
2026-07-07  8:21             ` Jiqi JQ9 Li
2026-07-07  8:25               ` Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox