Re: [External] Re: [PATCH v4 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
Jiqi JQ9 Li <[email protected]> Fri, 31 Jul 2026 09:24:33 +0000
| Newsgroups | org.kernel.vger.linux-tegra,org.kernel.vger.linux-devicetree |
|---|---|
| Message-ID | <JH0PR03MB8637489B10DD45D2C3EBD4BF83C82@JH0PR03MB8637.apcprd03.prod.outlook.com> |
>> Add initial device tree support for the Lenovo ThinkEdge SE70, an=0A= >> industrial edge gateway based on the NVIDIA Jetson Xavier NX module=0A= >> (P3668-0001) with a custom carrier board.=0A= >>=0A= >> This initial submission includes:=0A= >> - 40-pin expansion header pinmux configuration=0A= >> - External Micro SD card slot with dedicated 3.3V regulator=0A= >> - I2C bus for 40-pin header=0A= >>=0A= >> Static verification passed: dt_binding_check and dtbs compilation=0A= >> complete without errors.=0A= >>=0A= >> Signed-off-by: Jiqi Li <[email protected]>=0A= >> ---=0A= >> Changes in v2:=0A= >> - Remove unused input-related headers from baseboard DTSI=0A= >>=0A= >> Changes in v3:=0A= >> - Merge baseboard content into main DTS, drop separate baseboard DTSI=0A= >> - Use stdout-path instead of bootargs in chosen node=0A= >>=0A= >> Changes in v4:=0A= >> - Rename regulator node from regulator-sd-3v3 to regulator-vdd-3v3-sd=0A= >> to follow the naming convention (requested by Mikko).=0A= >> - Move regulator nodes to the bottom of the file and order=0A= >> alphabetically.=0A= >> - Keep vdd_5v0_sys as it is referenced by USB and PMIC nodes in the=0A= >> SoC and SOM layers (required for compilation).=0A= >> ---=0A= >> arch/arm64/boot/dts/nvidia/Makefile | 1 +=0A= >> .../nvidia/tegra194-lenovo-thinkedge-se70.dts | 113 ++++++++++++++++++= =0A= >> 2 files changed, 114 insertions(+)=0A= >> create mode 100644 arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge= -se70.dts=0A= >>=0A= >> diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/n= vidia/Makefile=0A= >> index 72c0cb5efa47..736a3f8a923f 100644=0A= >> --- a/arch/arm64/boot/dts/nvidia/Makefile=0A= >> +++ b/arch/arm64/boot/dts/nvidia/Makefile=0A= >> @@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_TEGRA_186_SOC) +=3D tegra186-p3509-0= 000+p3636-0001.dtb=0A= >> dtb-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra194-p2972-0000.dtb=0A= >> dtb-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra194-p3509-0000+p3668-0000.dt= b=0A= >> dtb-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra194-p3509-0000+p3668-0001.dt= b=0A= >> +dtb-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra194-lenovo-thinkedge-se70.dt= b=0A= >> dtb-$(CONFIG_ARCH_TEGRA_234_SOC) +=3D tegra234-sim-vdk.dtb=0A= >> dtb-$(CONFIG_ARCH_TEGRA_234_SOC) +=3D tegra234-p3737-0000+p3701-0000.dt= b=0A= >> dtb-$(CONFIG_ARCH_TEGRA_234_SOC) +=3D tegra234-p3737-0000+p3701-0008.dt= b=0A= >> diff --git a/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.d= ts b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts=0A= >> new file mode 100644=0A= >> index 000000000000..02ac645a7784=0A= >> --- /dev/null=0A= >> +++ b/arch/arm64/boot/dts/nvidia/tegra194-lenovo-thinkedge-se70.dts=0A= >> @@ -0,0 +1,113 @@=0A= >> +// SPDX-License-Identifier: GPL-2.0=0A= >> +/dts-v1/;=0A= >> +=0A= >> +#include "tegra194-p3668-0001.dtsi"=0A= >> +=0A= >> +#include <dt-bindings/gpio/tegra194-gpio.h>=0A= >> +=0A= >> +/ {=0A= >> + model =3D "Lenovo ThinkEdge SE70";=0A= >> + compatible =3D "lenovo,thinkedge-se70", "nvidia,p3668-0001", "nvid= ia,tegra194";=0A= >> +=0A= >> + chosen {=0A= >> + stdout-path =3D "serial0:115200n8";=0A= >> + };=0A= >=0A= >Unnecessary: the P3668-0001 dtsi already includes this.=0A= >=0A= >> +=0A= >> + bus@0 {=0A= >> + /* 40-pin expansion header custom pinmux configuration */= =0A= >> + pinmux@2430000 {=0A= >> + status =3D "okay";=0A= >=0A= >The pinmux node is already enabled.=0A= >=0A= >> + pinctrl-names =3D "default";=0A= >> + pinctrl-0 =3D <&pinmux_hdr40>;=0A= >> +=0A= >> + pinmux_hdr40: pinmux-hdr40 {=0A= >> + pin7 {=0A= >> + nvidia,pins =3D "aud_mclk_ps4";=0A= >> + nvidia,function =3D "aud";=0A= >> + nvidia,pull =3D <TEGRA_PIN_PULL_NO= NE>;=0A= >> + nvidia,tristate =3D <TEGRA_PIN_DIS= ABLE>;=0A= >> + nvidia,enable-input =3D <TEGRA_PIN= _DISABLE>;=0A= >> + };=0A= >> + pin11 {=0A= >> + nvidia,pins =3D "uart1_rts_pr4";= =0A= >> + nvidia,function =3D "uarta";=0A= >> + nvidia,pull =3D <TEGRA_PIN_PULL_NO= NE>;=0A= >> + nvidia,tristate =3D <TEGRA_PIN_DIS= ABLE>;=0A= >> + nvidia,enable-input =3D <TEGRA_PIN= _DISABLE>;=0A= >> + };=0A= >> + pin12 {=0A= >> + nvidia,pins =3D "dap5_sclk_pt5";= =0A= >> + nvidia,function =3D "i2s5";=0A= >> + nvidia,pull =3D <TEGRA_PIN_PULL_DO= WN>;=0A= >> + nvidia,tristate =3D <TEGRA_PIN_DIS= ABLE>;=0A= >> + nvidia,enable-input =3D <TEGRA_PIN= _ENABLE>;=0A= >> + };=0A= >> + pin35 {=0A= >> + nvidia,pins =3D "dap5_fs_pu0";=0A= >> + nvidia,function =3D "i2s5";=0A= >> + nvidia,pull =3D <TEGRA_PIN_PULL_DO= WN>;=0A= >> + nvidia,tristate =3D <TEGRA_PIN_DIS= ABLE>;=0A= >> + nvidia,enable-input =3D <TEGRA_PIN= _ENABLE>;=0A= >> + };=0A= >> + pin36 {=0A= >> + nvidia,pins =3D "uart1_cts_pr5";= =0A= >> + nvidia,function =3D "uarta";=0A= >> + nvidia,pull =3D <TEGRA_PIN_PULL_UP= >;=0A= >> + nvidia,tristate =3D <TEGRA_PIN_ENA= BLE>;=0A= >> + nvidia,enable-input =3D <TEGRA_PIN= _ENABLE>;=0A= >> + };=0A= >> + pin38 {=0A= >> + nvidia,pins =3D "dap5_din_pt7";=0A= >> + nvidia,function =3D "i2s5";=0A= >> + nvidia,pull =3D <TEGRA_PIN_PULL_DO= WN>;=0A= >> + nvidia,tristate =3D <TEGRA_PIN_ENA= BLE>;=0A= >> + nvidia,enable-input =3D <TEGRA_PIN= _ENABLE>;=0A= >> + };=0A= >> + pin40 {=0A= >> + nvidia,pins =3D "dap5_dout_pt6";= =0A= >> + nvidia,function =3D "i2s5";=0A= >> + nvidia,pull =3D <TEGRA_PIN_PULL_DO= WN>;=0A= >> + nvidia,tristate =3D <TEGRA_PIN_DIS= ABLE>;=0A= >> + nvidia,enable-input =3D <TEGRA_PIN= _DISABLE>;=0A= >> + };=0A= >> + };=0A= >> + };=0A= >> +=0A= >> + /* Configure i2c bus clock to 400kHz for carrier board per= ipherals */=0A= >> + i2c@3160000 {=0A= >> + clock-frequency =3D <400000>;=0A= >> + status =3D "okay";=0A= >=0A= >This is also already enabled.=0A= >=0A= >> + };=0A= >> +=0A= >> + /* SDMMC3: External Micro SD card slot */=0A= >> + mmc@3440000 {=0A= >> + bus-width =3D <4>;=0A= >> + cd-gpios =3D <&gpio_aon TEGRA194_AON_GPIO(CC, 4) G= PIO_ACTIVE_LOW>;=0A= >> + disable-wp;=0A= >> + no-1-8-v;=0A= >> + vmmc-supply =3D <&vdd_3v3_sd>;=0A= >> + status =3D "okay";=0A= >> + };=0A= >=0A= >Perhaps you want to add an mmc1 alias for this in /aliases.=0A= >=0A= >> + };=0A= >> +=0A= >> + /* Fixed 3.3V power supply regulator for external Micro SD slot */= =0A= >> + vdd_3v3_sd: regulator-vdd-3v3-sd {=0A= >> + compatible =3D "regulator-fixed";=0A= >> + regulator-name =3D "VDD_3V3_SD";=0A= >> + regulator-min-microvolt =3D <3300000>;=0A= >> + regulator-max-microvolt =3D <3300000>;=0A= >> + gpio =3D <&gpio TEGRA194_MAIN_GPIO(Q, 5) GPIO_ACTIVE_HIGH>= ;=0A= >> + regulator-boot-on;=0A= >> + enable-active-high;=0A= >> + };=0A= >> +=0A= >> + /* System 5V main supply, referenced by SOM and USB nodes */=0A= >> + vdd_5v0_sys: regulator-vdd-5v0-sys {=0A= >> + compatible =3D "regulator-fixed";=0A= >> + regulator-name =3D "VDD_5V_SYS";=0A= >> + regulator-min-microvolt =3D <5000000>;=0A= >> + regulator-max-microvolt =3D <5000000>;=0A= >> + regulator-always-on;=0A= >> + regulator-boot-on;=0A= >> + };=0A= >> +};=0A= >> --=0A= >> 2.43.0=0A= >>=0A= >>=0A= >=0A= >So some nits, but overall:=0A= >=0A= >Reviewed-by: Mikko Perttunen <[email protected]>=0A= >=0A= >Thank you!=0A= =0A= Hi Mikko,=0A= =0A= Thanks for the review! I've fixed the nits you pointed out:=0A= - Dropped the redundant chosen node=0A= - Removed unnecessary status=3D"okay"=0A= - Added mmc1 alias=0A= =0A= I'll send v5 shortly.=0A= =0A= Best regards,=0A= Jiqi Li=0A=