Re: [PATCH v4 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree

Mikko Perttunen <[email protected]> Fri, 31 Jul 2026 16:51:26 +0900
Newsgroups org.kernel.vger.linux-tegra,org.kernel.vger.linux-devicetree
Message-ID <[email protected]>
On Wednesday, July 8, 2026 6:20=E2=80=AFPM 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.
>=20
> 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
>=20
> Static verification passed: dt_binding_check and dtbs compilation
> complete without errors.
>=20
> Signed-off-by: Jiqi Li <[email protected]>
> ---
> Changes in v2:
> - Remove unused input-related headers from baseboard DTSI
>=20
> Changes in v3:
> - Merge baseboard content into main DTS, drop separate baseboard DTSI
> - Use stdout-path instead of bootargs in chosen node
>=20
> Changes in v4:
> - Rename regulator node from regulator-sd-3v3 to regulator-vdd-3v3-sd
>   to follow the naming convention (requested by Mikko).
> - Move regulator nodes to the bottom of the file and order
>   alphabetically.
> - Keep vdd_5v0_sys as it is referenced by USB and PMIC nodes in the
>   SoC and SOM layers (required for compilation).
> ---
>  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
>=20
> diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nv=
idia/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) +=3D tegra186-p3509-00=
00+p3636-0001.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra194-p2972-0000.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra194-p3509-0000+p3668-0000.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra194-p3509-0000+p3668-0001.dtb
> +dtb-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra194-lenovo-thinkedge-se70.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) +=3D tegra234-sim-vdk.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) +=3D tegra234-p3737-0000+p3701-0000.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_234_SOC) +=3D tegra234-p3737-0000+p3701-0008.dtb
> diff --git a/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dt=
s b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts
> new file mode 100644
> index 000000000000..02ac645a7784
> --- /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 =3D "Lenovo ThinkEdge SE70";
> +	compatible =3D "lenovo,thinkedge-se70", "nvidia,p3668-0001", "nvidia,te=
gra194";
> +
> +	chosen {
> +		stdout-path =3D "serial0:115200n8";
> +	};

Unnecessary: the P3668-0001 dtsi already includes this.

> +
> +	bus@0 {
> +		/* 40-pin expansion header custom pinmux configuration */
> +		pinmux@2430000 {
> +			status =3D "okay";

The pinmux node is already enabled.

> +			pinctrl-names =3D "default";
> +			pinctrl-0 =3D <&pinmux_hdr40>;
> +
> +			pinmux_hdr40: pinmux-hdr40 {
> +				pin7 {
> +					nvidia,pins =3D "aud_mclk_ps4";
> +					nvidia,function =3D "aud";
> +					nvidia,pull =3D <TEGRA_PIN_PULL_NONE>;
> +					nvidia,tristate =3D <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input =3D <TEGRA_PIN_DISABLE>;
> +				};
> +				pin11 {
> +					nvidia,pins =3D "uart1_rts_pr4";
> +					nvidia,function =3D "uarta";
> +					nvidia,pull =3D <TEGRA_PIN_PULL_NONE>;
> +					nvidia,tristate =3D <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input =3D <TEGRA_PIN_DISABLE>;
> +				};
> +				pin12 {
> +					nvidia,pins =3D "dap5_sclk_pt5";
> +					nvidia,function =3D "i2s5";
> +					nvidia,pull =3D <TEGRA_PIN_PULL_DOWN>;
> +					nvidia,tristate =3D <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input =3D <TEGRA_PIN_ENABLE>;
> +				};
> +				pin35 {
> +					nvidia,pins =3D "dap5_fs_pu0";
> +					nvidia,function =3D "i2s5";
> +					nvidia,pull =3D <TEGRA_PIN_PULL_DOWN>;
> +					nvidia,tristate =3D <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input =3D <TEGRA_PIN_ENABLE>;
> +				};
> +				pin36 {
> +					nvidia,pins =3D "uart1_cts_pr5";
> +					nvidia,function =3D "uarta";
> +					nvidia,pull =3D <TEGRA_PIN_PULL_UP>;
> +					nvidia,tristate =3D <TEGRA_PIN_ENABLE>;
> +					nvidia,enable-input =3D <TEGRA_PIN_ENABLE>;
> +				};
> +				pin38 {
> +					nvidia,pins =3D "dap5_din_pt7";
> +					nvidia,function =3D "i2s5";
> +					nvidia,pull =3D <TEGRA_PIN_PULL_DOWN>;
> +					nvidia,tristate =3D <TEGRA_PIN_ENABLE>;
> +					nvidia,enable-input =3D <TEGRA_PIN_ENABLE>;
> +				};
> +				pin40 {
> +					nvidia,pins =3D "dap5_dout_pt6";
> +					nvidia,function =3D "i2s5";
> +					nvidia,pull =3D <TEGRA_PIN_PULL_DOWN>;
> +					nvidia,tristate =3D <TEGRA_PIN_DISABLE>;
> +					nvidia,enable-input =3D <TEGRA_PIN_DISABLE>;
> +				};
> +			};
> +		};
> +
> +		/* Configure i2c bus clock to 400kHz for carrier board peripherals */
> +		i2c@3160000 {
> +			clock-frequency =3D <400000>;
> +			status =3D "okay";

This is also already enabled.=20

> +		};
> +
> +		/* SDMMC3: External Micro SD card slot */
> +		mmc@3440000 {
> +			bus-width =3D <4>;
> +			cd-gpios =3D <&gpio_aon TEGRA194_AON_GPIO(CC, 4) GPIO_ACTIVE_LOW>;
> +			disable-wp;
> +			no-1-8-v;
> +			vmmc-supply =3D <&vdd_3v3_sd>;
> +			status =3D "okay";
> +		};

Perhaps you want to add an mmc1 alias for this in /aliases.

> +	};
> +
> +	/* Fixed 3.3V power supply regulator for external Micro SD slot */
> +	vdd_3v3_sd: regulator-vdd-3v3-sd {
> +		compatible =3D "regulator-fixed";
> +		regulator-name =3D "VDD_3V3_SD";
> +		regulator-min-microvolt =3D <3300000>;
> +		regulator-max-microvolt =3D <3300000>;
> +		gpio =3D <&gpio TEGRA194_MAIN_GPIO(Q, 5) GPIO_ACTIVE_HIGH>;
> +		regulator-boot-on;
> +		enable-active-high;
> +	};
> +
> +	/* System 5V main supply, referenced by SOM and USB nodes */
> +	vdd_5v0_sys: regulator-vdd-5v0-sys {
> +		compatible =3D "regulator-fixed";
> +		regulator-name =3D "VDD_5V_SYS";
> +		regulator-min-microvolt =3D <5000000>;
> +		regulator-max-microvolt =3D <5000000>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
> +};
> --=20
> 2.43.0
>=20
>=20

So some nits, but overall:

Reviewed-by: Mikko Perttunen <[email protected]>

Thank you!