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!