Re: [External] Re: [PATCH 2/2] arm64: tegra: Add Lenovo ThinkEdge SE70 device tree
Jiqi JQ9 Li <[email protected]> Thu, 23 Jul 2026 08:39:30 +0000
| Newsgroups | org.kernel.vger.linux-tegra,org.kernel.vger.linux-devicetree |
|---|---|
| Message-ID | <JH0PR03MB863784014DC41494B229033083C02@JH0PR03MB8637.apcprd03.prod.outlook.com> |
>> >> 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 <[email protected]> >> >> --- >> >> 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. Hi Mikko, Just a gentle ping on this series. Based on your previous feedback, the v4 patches were sent on July 8 and addressed all your comments: - Renamed regulator-sd-3v3 to regulator-vdd-3v3-sd - Moved regulator nodes to the bottom and sorted them alphabetically - Added a comment to vdd_5v0_sys clarifying it is required by the SoM and SoC layers (as it is referenced by USB and PMIC nodes) Could you please take another look when you have a moment? Patchwork link for reference: https://patchwork.ozlabs.org/project/linux-tegra/list/?series=512658 Best regards, Jiqi Li > >> >> 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 >> >> >> >> >> > >> >> >>