* [PATCH v4 0/3] arm64: dts: freescale: add Free Mobile Nodebox v3 CPU Module (LX2160A)
@ 2026-09-11 0:08 Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 1/3] dt-bindings: vendor-prefixes: add Free Mobile Vincent Jardin via B4 Relay
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Vincent Jardin via B4 Relay @ 2026-09-11 0:08 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Vincent Jardin,
Krzysztof Kozlowski
The Nodebox v3 is a Free Mobile CPU module built around the NXP LX2160A
(16x Cortex-A72, DPAA2).
The same fsl-lx2160a-nbxv3.dtsi shall be used verbatim by the
U-Boot port, sent in parallel to the U-Boot list, so the two trees
cannot drift.
Dependency:
the DTS uses gpio hogs on the QorIQ GPIO controllers, which
needs the commit
78c0baf85cd0 ("dt-bindings: gpio: fsl,qoriq-gpio: allow gpio-hog child nodes")
already in gpio/for-next and that will likely arrive in v7.4-rc1.
Until it lands, dtbs_check reports the five hog nodes, the rest of the
tree validates clean against the current schemas.
Signed-off-by: Vincent Jardin <vjardin@free.fr>
---
Changes in v4:
- dt-bindings: arm: fsl: commit message like the other ones (Krzysztof Kozlowski)
- Acked-by on the vendor prefix
- Drop U-Boot comments from the DTS commit message (Frank Li)
- Boot NOR reset: reset-gpios on flash@0 instead of a gpio hog (Frank Li)
- ethsw-mdio-en: regulator-fixed instead of a gpio hog (Frank Li)
- ethsw-reset#: hog dropped (Frank Li)
- pltrst#: platform without consumer node
- Link to v3: https://lore.kernel.org/r/20260908-for-upstream-nbxv3-dts-v3-0-1d88b2c11680@free.fr
Changes in v3:
- Drop the thermtrip hog on gpio1 line 23, should have been clean'd
before
- Link to v2: https://lore.kernel.org/r/20260907-for-upstream-nbxv3-dts-v2-0-6b4afd36180b@free.fr
Changes in v2: (from Sashiko's comments)
- Makefile: dtb entry in alphabetical order (before qds).
- Move the XSPI1_A_DATA[7:4] GPIO mux group from &fspi to &gpio1, so
the reset hogs on gpio1 do not depend on the fspi probe.
- gpio hogs: describe ethsw-reset# and ethsw-mdio-en with their
active-low polarity (GPIO_ACTIVE_LOW), same electrical levels.
- Link to v1: https://lore.kernel.org/r/20260907-for-upstream-nbxv3-dts-v1-0-f43fd0028b78@free.fr
---
Vincent Jardin (3):
dt-bindings: vendor-prefixes: add Free Mobile
dt-bindings: arm: fsl: add Free Mobile Nodebox v3 CPU Module
arm64: dts: freescale: add Nodebox v3 CPU Module
Documentation/devicetree/bindings/arm/fsl.yaml | 6 +
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
arch/arm64/boot/dts/freescale/Makefile | 2 +
.../arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dts | 34 +++
.../boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi | 321 +++++++++++++++++++++
5 files changed, 365 insertions(+)
---
base-commit: df2908090cda368b01ff43709f51890076c56157
change-id: 20260907-for-upstream-nbxv3-dts-bbecd04038a2
Best regards,
--
Vincent Jardin <vjardin@free.fr>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v4 1/3] dt-bindings: vendor-prefixes: add Free Mobile
2026-09-11 0:08 [PATCH v4 0/3] arm64: dts: freescale: add Free Mobile Nodebox v3 CPU Module (LX2160A) Vincent Jardin via B4 Relay
@ 2026-09-11 0:08 ` Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 2/3] dt-bindings: arm: fsl: add Free Mobile Nodebox v3 CPU Module Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 3/3] arm64: dts: freescale: add " Vincent Jardin via B4 Relay
2 siblings, 0 replies; 6+ messages in thread
From: Vincent Jardin via B4 Relay @ 2026-09-11 0:08 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Vincent Jardin,
Krzysztof Kozlowski
From: Vincent Jardin <vjardin@free.fr>
Free Mobile is a French mobile network operator. Add its vendor
prefix, used by the Nodebox v3 CPU Module (freemobile,nbxv3).
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Vincent Jardin <vjardin@free.fr>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index ba20029693734..e467da45cd7ac 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -626,6 +626,8 @@ patternProperties:
description: Freebox SAS
"^freecom,.*":
description: Freecom Gmbh
+ "^freemobile,.*":
+ description: Free Mobile
"^frida,.*":
description: Shenzhen Frida LCD Co., Ltd.
"^friendlyarm,.*":
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v4 2/3] dt-bindings: arm: fsl: add Free Mobile Nodebox v3 CPU Module
2026-09-11 0:08 [PATCH v4 0/3] arm64: dts: freescale: add Free Mobile Nodebox v3 CPU Module (LX2160A) Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 1/3] dt-bindings: vendor-prefixes: add Free Mobile Vincent Jardin via B4 Relay
@ 2026-09-11 0:08 ` Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 3/3] arm64: dts: freescale: add " Vincent Jardin via B4 Relay
2 siblings, 0 replies; 6+ messages in thread
From: Vincent Jardin via B4 Relay @ 2026-09-11 0:08 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Vincent Jardin
From: Vincent Jardin <vjardin@free.fr>
Add DT compatible string for the Free Mobile Nodebox v3 CPU Module, an
NXP LX2160A based board.
Signed-off-by: Vincent Jardin <vjardin@free.fr>
---
Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 656f2596e1d53..baff4f4159b29 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -1937,6 +1937,12 @@ properties:
- fsl,lx2162a-qds
- const: fsl,lx2160a
+ - description: Free Mobile LX2160A based Boards
+ items:
+ - enum:
+ - freemobile,nbxv3
+ - const: fsl,lx2160a
+
- description: SolidRun LX2160A CEX-7 based Boards
items:
- enum:
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v4 3/3] arm64: dts: freescale: add Nodebox v3 CPU Module
2026-09-11 0:08 [PATCH v4 0/3] arm64: dts: freescale: add Free Mobile Nodebox v3 CPU Module (LX2160A) Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 1/3] dt-bindings: vendor-prefixes: add Free Mobile Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 2/3] dt-bindings: arm: fsl: add Free Mobile Nodebox v3 CPU Module Vincent Jardin via B4 Relay
@ 2026-09-11 0:08 ` Vincent Jardin via B4 Relay
2026-09-11 7:06 ` sashiko-bot
2026-09-11 14:42 ` Frank Li
2 siblings, 2 replies; 6+ messages in thread
From: Vincent Jardin via B4 Relay @ 2026-09-11 0:08 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Vincent Jardin
From: Vincent Jardin <vjardin@free.fr>
The Nodebox v3 is a Free Mobile CPU module built around the NXP
LX2160A (16x Cortex-A72, DPAA2).
Signed-off-by: Vincent Jardin <vjardin@free.fr>
---
arch/arm64/boot/dts/freescale/Makefile | 2 +
.../arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dts | 34 +++
.../boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi | 321 +++++++++++++++++++++
3 files changed, 357 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 95ae85ab4adf5..faab8bf0e1676 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -55,6 +55,8 @@ DTC_FLAGS_fsl-lx2160a-half-twins := -Wno-interrupt_map
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-half-twins.dtb
DTC_FLAGS_fsl-lx2160a-honeycomb := -Wno-interrupt_map
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-honeycomb.dtb
+DTC_FLAGS_fsl-lx2160a-nbxv3 := -Wno-interrupt_map
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-nbxv3.dtb
DTC_FLAGS_fsl-lx2160a-qds := -Wno-interrupt_map
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
DTC_FLAGS_fsl-lx2160a-rdb := -Wno-interrupt_map
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dts b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dts
new file mode 100644
index 0000000000000..b07e9def0a529
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dts
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Free Mobile Nodebox v3 CPU Module (LX2160A)
+ *
+ * Copyright 2026 Free Mobile, Vincent Jardin
+ */
+
+/dts-v1/;
+
+#include "fsl-lx2160a-rev2.dtsi"
+#include "fsl-lx2160a-nbxv3.dtsi"
+
+/ {
+ model = "Free Mobile Nodebox v3 CPU Module (LX2160A)";
+ compatible = "freemobile,nbxv3", "fsl,lx2160a";
+};
+
+&fspi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&fspi_dqs_sck_cs10_pins>, <&fspi_data30_pins>;
+};
+
+&gpio1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio1_31_28_pins>;
+};
+
+&pcs_mdio13 {
+ status = "okay";
+};
+
+&pcs_mdio14 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi
new file mode 100644
index 0000000000000..143b24d69d629
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi
@@ -0,0 +1,321 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Free Mobile Nodebox v3 CPU Module (LX2160A)
+ *
+ * Copyright 2026 Free Mobile, Vincent Jardin
+ *
+ * This file is shared by the Linux kernel and U-Boot.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio-restart {
+ compatible = "gpio-restart";
+ gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+ priority = <128>;
+ };
+
+ reg_ethsw_mdio: regulator-ethsw-mdio {
+ compatible = "regulator-fixed";
+ regulator-name = "ethsw-mdio-en";
+ gpio = <&gpio3 25 GPIO_ACTIVE_LOW>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+};
+
+&crypto {
+ status = "okay";
+};
+
+&dspi0 {
+ status = "okay";
+
+ dpll@0 {
+ compatible = "microchip,zl30733";
+ reg = <0>;
+ spi-max-frequency = <12500000>;
+ };
+};
+
+&dspi2 {
+ status = "okay";
+};
+
+&dpmac13 {
+ status = "okay";
+ phy-handle = <&lan8023_phy_s0>;
+ phy-connection-type = "10gbase-r";
+};
+
+&dpmac14 {
+ status = "okay";
+ phy-handle = <&lan8023_phy_s1>;
+ phy-connection-type = "10gbase-r";
+};
+
+&dpmac17 {
+ status = "okay";
+ phy-handle = <&rtl8211fd>;
+ phy-connection-type = "rgmii-id";
+};
+
+&emdio1 {
+ status = "okay";
+
+ /* Microchip LAN8023 dual 10G PCS/retimer, Clause 45 only, one address per slice */
+ lan8023_phy_s0: ethernet-phy@2 {
+ compatible = "ethernet-phy-ieee802.3-c45";
+ reg = <2>;
+ };
+
+ lan8023_phy_s1: ethernet-phy@3 {
+ compatible = "ethernet-phy-ieee802.3-c45";
+ reg = <3>;
+ };
+
+ rtl8211fd: ethernet-phy@6 {
+ compatible = "ethernet-phy-id001c.c916";
+ reg = <6>;
+ };
+};
+
+&emdio2 {
+ status = "okay";
+};
+
+&esdhc1 {
+ status = "okay";
+ bus-width = <8>;
+ non-removable;
+ mmc-hs200-1_8v;
+ mmc-hs400-1_8v;
+};
+
+&fspi {
+ status = "okay";
+
+ /* GigaDevice GD55LB02GF, 256 MiB boot NOR */
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <150000000>;
+ spi-rx-bus-width = <1>;
+ spi-tx-bus-width = <1>;
+ reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&fsl_mc {
+ status = "okay";
+};
+
+&gpio0 {
+ status = "okay";
+ gpio-line-names =
+ "", "",
+ "altfn:iic1-sda", "altfn:iic1-scl",
+ "altfn:uart4-sin", "altfn:uart4-sout",
+ "altfn:uart2-sin", "altfn:uart2-sout",
+ "altfn:uart3-sin", "altfn:uart3-sout",
+ "altfn:uart1-sin", "altfn:uart1-sout",
+ "altfn:spi3-pcs3", "altfn:spi3-pcs2",
+ "altfn:spi3-pcs1", "altfn:spi3-pcs0",
+ "altfn:spi1-sck", "altfn:spi1-sin",
+ "altfn:spi1-pcs2", "altfn:spi1-pcs1",
+ "altfn:spi1-pcs0", "altfn:spi1-sout",
+ "altfn:iic6-sda", "altfn:iic6-scl",
+ "altfn:spi3-sin", "altfn:spi3-sout",
+ "altfn:iic4-sda", "altfn:iic4-scl",
+ "altfn:iic3-sda", "altfn:iic3-scl",
+ "altfn:iic2-sda", "altfn:iic2-scl";
+};
+
+&gpio1 {
+ status = "okay";
+ gpio-line-names =
+ "", "", "", "", "", "",
+ "cfg-rcw-src2", "cfg-rcw-src3",
+ "reset-req-b",
+ "altfn:sdhc2-clk", "altfn:sdhc2-ds",
+ "altfn:sdhc2-dat0", "altfn:sdhc2-dat1",
+ "altfn:sdhc2-dat2", "altfn:sdhc2-dat3",
+ "altfn:sdhc2-dat4", "altfn:sdhc2-dat5",
+ "altfn:sdhc2-dat6", "altfn:sdhc2-dat7",
+ "altfn:sdhc2-cmd",
+ "cfg-svr1",
+ "altfn:xspi1-cs0", "altfn:xspi1-sck",
+ "altfn:xspi1-dqs",
+ "altfn:xspi1-data0", "altfn:xspi1-data1",
+ "", "",
+ "flash-reset#", "pltrst#", "", "ethsw-reset#";
+
+ /* Platform reset, no consumer node: released at boot */
+ pltrst-hog {
+ gpio-hog;
+ gpios = <29 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "pltrst#";
+ };
+};
+
+&gpio2 {
+ status = "okay";
+ gpio-line-names =
+ "lan8023-mdint",
+ "i2c2-alert#", "i2c4-alert#", "i2c6-alert#",
+ "u800-tca9539-int#",
+ "spi3-alert#",
+ "wake0", "wake1",
+ "carrier-hot#",
+ "u1300-rtl8211fd-int#",
+ "ethsw-int#",
+ "", "",
+ "u1700-zl30733-clk-gpio0", "u1700-zl30733-clk-gpio1",
+ "u1700-zl30733-clk-gpio2", "u1700-zl30733-clk-gpio3",
+ "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "";
+};
+
+&gpio3 {
+ status = "okay";
+ gpio-line-names =
+ "altfn:ec1-txd3", "altfn:ec1-txd2",
+ "altfn:ec1-txd1", "altfn:ec1-txd0",
+ "altfn:ec1-tx-en", "altfn:ec1-gtx-clk",
+ "altfn:ec1-rxd3", "altfn:ec1-rxd2",
+ "altfn:ec1-rxd1", "altfn:ec1-rxd0",
+ "altfn:ec1-rx-clk", "altfn:ec1-rx-dv",
+ "", "",
+ "ptp-refclk-in",
+ "", "", "", "", "", "", "", "",
+ "u1700-zl30733-pps-out",
+ "",
+ "ethsw-mdio-en",
+ "usb01-oc#", /* USB1_PWRFAULT and USB2_PWRFAULT share one net */
+ "",
+ "usb01-oc#",
+ "altfn:spi3-sck",
+ "", "";
+};
+
+/* On-module management bus */
+&i2c0 {
+ status = "okay";
+
+ eeprom@52 {
+ compatible = "atmel,24c32";
+ reg = <0x52>;
+ pagesize = <32>;
+ };
+
+ /* Board ID straps */
+ gpio@74 {
+ compatible = "ti,tca9539";
+ reg = <0x74>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-line-names =
+ "boardid-0x0001", "boardid-0x0002",
+ "boardid-0x0004", "boardid-0x0008",
+ "boardid-0x0010", "boardid-0x0020",
+ "boardid-0x0040", "boardid-0x0080",
+ "boardid-0x0100", "boardid-0x0200",
+ "boardid-0x0400", "boardid-0x0800",
+ "boardid-0x1000", "boardid-0x2000",
+ "boardid-0x4000", "boardid-0x8000";
+ };
+
+ u800: gpio@75 {
+ compatible = "ti,tca9539";
+ reg = <0x75>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+ gpio-line-names =
+ "carrier-gpio0", "carrier-gpio1",
+ "carrier-gpio2", "carrier-gpio3",
+ "carrier-gpio4", "carrier-gpio5",
+ "carrier-gpio6", "carrier-gpio7",
+ "carrier-gpio8", "carrier-gpio9",
+ "carrier-gpio10", "carrier-gpio11",
+ "", "", "",
+ "lan8023-rst";
+ };
+
+ /* +0V8_VDD core rail, MPS MPQ8646 (MPQ8785 core) over PMBus */
+ vdd08: regulator@10 {
+ compatible = "mps,mpq8646";
+ reg = <0x10>;
+ };
+
+ /* SO-DIMM SPD temperature sensors */
+ temperature-sensor@18 {
+ compatible = "jedec,jc-42.4-temp";
+ reg = <0x18>;
+ };
+
+ temperature-sensor@19 {
+ compatible = "jedec,jc-42.4-temp";
+ reg = <0x19>;
+ };
+};
+
+&i2c1 {
+ status = "okay";
+};
+
+&i2c2 {
+ status = "okay";
+};
+
+&i2c3 {
+ status = "okay";
+};
+
+&i2c5 {
+ status = "okay";
+};
+
+&pcie3 {
+ status = "okay";
+};
+
+&pcie4 {
+ status = "okay";
+};
+
+&pcie5 {
+ status = "okay";
+};
+
+&pcie6 {
+ status = "okay";
+};
+
+&uart0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+};
+
+&usb1 {
+ status = "okay";
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: freescale: add Nodebox v3 CPU Module
2026-09-11 0:08 ` [PATCH v4 3/3] arm64: dts: freescale: add " Vincent Jardin via B4 Relay
@ 2026-09-11 7:06 ` sashiko-bot
2026-09-11 14:42 ` Frank Li
1 sibling, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-09-11 7:06 UTC (permalink / raw)
To: Vincent Jardin; +Cc: conor+dt, devicetree, robh, imx, Frank.Li
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Ethernet PHY reset and interrupt lines are defined in GPIO controllers but not consumed by the PHY nodes.
--
commit 74f5aff92f5e16bafbb9e87c062e7805112769f9
Author: Vincent Jardin <vjardin@free.fr>
arm64: dts: freescale: add Nodebox v3 CPU Module
This commit adds the device tree for the Free Mobile Nodebox v3 CPU module
built around the NXP LX2160A SoC.
> diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi
> new file mode 100644
> index 0000000000000..143b24d69d629
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi
[ ... ]
> +&emdio1 {
> + status = "okay";
> +
> + /* Microchip LAN8023 dual 10G PCS/retimer, Clause 45 only, one address per slice */
> + lan8023_phy_s0: ethernet-phy@2 {
> + compatible = "ethernet-phy-ieee802.3-c45";
> + reg = <2>;
> + };
> +
> + lan8023_phy_s1: ethernet-phy@3 {
> + compatible = "ethernet-phy-ieee802.3-c45";
> + reg = <3>;
> + };
> +
> + rtl8211fd: ethernet-phy@6 {
> + compatible = "ethernet-phy-id001c.c916";
> + reg = <6>;
> + };
> +};
[Severity: Medium]
Should these PHY nodes consume the reset and interrupt GPIOs defined elsewhere
in this device tree?
The lines "lan8023-mdint", "lan8023-rst", and "u1300-rtl8211fd-int#" are
explicitly defined in other GPIO controllers in this file. Without the
reset-gpios and interrupts properties in the PHY nodes, the PHY framework
cannot reset the hardware during probe (which can lead to initialization
failures if the PHY is left in an unknown state by the bootloader) and
silently falls back to polling mode for link state changes.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260911-for-upstream-nbxv3-dts-v4-0-2fd07d5575ab@free.fr?part=3
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 3/3] arm64: dts: freescale: add Nodebox v3 CPU Module
2026-09-11 0:08 ` [PATCH v4 3/3] arm64: dts: freescale: add " Vincent Jardin via B4 Relay
2026-09-11 7:06 ` sashiko-bot
@ 2026-09-11 14:42 ` Frank Li
1 sibling, 0 replies; 6+ messages in thread
From: Frank Li @ 2026-09-11 14:42 UTC (permalink / raw)
To: vjardin
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
devicetree, linux-kernel, imx, linux-arm-kernel
On Fri, Sep 11, 2026 at 02:08:35AM +0200, Vincent Jardin via B4 Relay wrote:
> From: Vincent Jardin <vjardin@free.fr>
>
> The Nodebox v3 is a Free Mobile CPU module built around the NXP
> LX2160A (16x Cortex-A72, DPAA2).
>
> Signed-off-by: Vincent Jardin <vjardin@free.fr>
> ---
> arch/arm64/boot/dts/freescale/Makefile | 2 +
> .../arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dts | 34 +++
> .../boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi | 321 +++++++++++++++++++++
> 3 files changed, 357 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index 95ae85ab4adf5..faab8bf0e1676 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -55,6 +55,8 @@ DTC_FLAGS_fsl-lx2160a-half-twins := -Wno-interrupt_map
> dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-half-twins.dtb
> DTC_FLAGS_fsl-lx2160a-honeycomb := -Wno-interrupt_map
> dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-honeycomb.dtb
> +DTC_FLAGS_fsl-lx2160a-nbxv3 := -Wno-interrupt_map
> +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-nbxv3.dtb
> DTC_FLAGS_fsl-lx2160a-qds := -Wno-interrupt_map
> dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
> DTC_FLAGS_fsl-lx2160a-rdb := -Wno-interrupt_map
> diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dts b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dts
> new file mode 100644
> index 0000000000000..b07e9def0a529
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dts
> @@ -0,0 +1,34 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Free Mobile Nodebox v3 CPU Module (LX2160A)
> + *
> + * Copyright 2026 Free Mobile, Vincent Jardin
> + */
> +
> +/dts-v1/;
> +
> +#include "fsl-lx2160a-rev2.dtsi"
> +#include "fsl-lx2160a-nbxv3.dtsi"
> +
> +/ {
> + model = "Free Mobile Nodebox v3 CPU Module (LX2160A)";
> + compatible = "freemobile,nbxv3", "fsl,lx2160a";
> +};
> +
> +&fspi {
> + pinctrl-names = "default";
> + pinctrl-0 = <&fspi_dqs_sck_cs10_pins>, <&fspi_data30_pins>;
> +};
> +
> +&gpio1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&gpio1_31_28_pins>;
> +};
> +
> +&pcs_mdio13 {
> + status = "okay";
> +};
> +
> +&pcs_mdio14 {
> + status = "okay";
> +};
> diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi
> new file mode 100644
> index 0000000000000..143b24d69d629
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-nbxv3.dtsi
> @@ -0,0 +1,321 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Free Mobile Nodebox v3 CPU Module (LX2160A)
> + *
> + * Copyright 2026 Free Mobile, Vincent Jardin
> + *
> + * This file is shared by the Linux kernel and U-Boot.
> + */
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +
> +/ {
> + aliases {
> + serial0 = &uart0;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + gpio-restart {
> + compatible = "gpio-restart";
> + gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
> + priority = <128>;
> + };
> +
> + reg_ethsw_mdio: regulator-ethsw-mdio {
> + compatible = "regulator-fixed";
> + regulator-name = "ethsw-mdio-en";
> + gpio = <&gpio3 25 GPIO_ACTIVE_LOW>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +};
> +
> +&crypto {
> + status = "okay";
> +};
> +
> +&dspi0 {
> + status = "okay";
> +
> + dpll@0 {
> + compatible = "microchip,zl30733";
> + reg = <0>;
> + spi-max-frequency = <12500000>;
> + };
> +};
> +
> +&dspi2 {
> + status = "okay";
> +};
> +
> +&dpmac13 {
> + status = "okay";
status should be last property before child nodes, check others.
Frank
> + phy-handle = <&lan8023_phy_s0>;
> + phy-connection-type = "10gbase-r";
> +};
> +
> +&dpmac14 {
> + status = "okay";
> + phy-handle = <&lan8023_phy_s1>;
> + phy-connection-type = "10gbase-r";
> +};
> +
> +&dpmac17 {
> + status = "okay";
> + phy-handle = <&rtl8211fd>;
> + phy-connection-type = "rgmii-id";
> +};
> +
> +&emdio1 {
> + status = "okay";
> +
> + /* Microchip LAN8023 dual 10G PCS/retimer, Clause 45 only, one address per slice */
> + lan8023_phy_s0: ethernet-phy@2 {
> + compatible = "ethernet-phy-ieee802.3-c45";
> + reg = <2>;
> + };
> +
> + lan8023_phy_s1: ethernet-phy@3 {
> + compatible = "ethernet-phy-ieee802.3-c45";
> + reg = <3>;
> + };
> +
> + rtl8211fd: ethernet-phy@6 {
> + compatible = "ethernet-phy-id001c.c916";
> + reg = <6>;
> + };
> +};
> +
> +&emdio2 {
> + status = "okay";
> +};
> +
> +&esdhc1 {
> + status = "okay";
> + bus-width = <8>;
> + non-removable;
> + mmc-hs200-1_8v;
> + mmc-hs400-1_8v;
> +};
> +
> +&fspi {
> + status = "okay";
> +
> + /* GigaDevice GD55LB02GF, 256 MiB boot NOR */
> + flash@0 {
> + compatible = "jedec,spi-nor";
> + reg = <0>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + spi-max-frequency = <150000000>;
> + spi-rx-bus-width = <1>;
> + spi-tx-bus-width = <1>;
> + reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
> + };
> +};
> +
> +&fsl_mc {
> + status = "okay";
> +};
> +
> +&gpio0 {
> + status = "okay";
> + gpio-line-names =
> + "", "",
> + "altfn:iic1-sda", "altfn:iic1-scl",
> + "altfn:uart4-sin", "altfn:uart4-sout",
> + "altfn:uart2-sin", "altfn:uart2-sout",
> + "altfn:uart3-sin", "altfn:uart3-sout",
> + "altfn:uart1-sin", "altfn:uart1-sout",
> + "altfn:spi3-pcs3", "altfn:spi3-pcs2",
> + "altfn:spi3-pcs1", "altfn:spi3-pcs0",
> + "altfn:spi1-sck", "altfn:spi1-sin",
> + "altfn:spi1-pcs2", "altfn:spi1-pcs1",
> + "altfn:spi1-pcs0", "altfn:spi1-sout",
> + "altfn:iic6-sda", "altfn:iic6-scl",
> + "altfn:spi3-sin", "altfn:spi3-sout",
> + "altfn:iic4-sda", "altfn:iic4-scl",
> + "altfn:iic3-sda", "altfn:iic3-scl",
> + "altfn:iic2-sda", "altfn:iic2-scl";
> +};
> +
> +&gpio1 {
> + status = "okay";
> + gpio-line-names =
> + "", "", "", "", "", "",
> + "cfg-rcw-src2", "cfg-rcw-src3",
> + "reset-req-b",
> + "altfn:sdhc2-clk", "altfn:sdhc2-ds",
> + "altfn:sdhc2-dat0", "altfn:sdhc2-dat1",
> + "altfn:sdhc2-dat2", "altfn:sdhc2-dat3",
> + "altfn:sdhc2-dat4", "altfn:sdhc2-dat5",
> + "altfn:sdhc2-dat6", "altfn:sdhc2-dat7",
> + "altfn:sdhc2-cmd",
> + "cfg-svr1",
> + "altfn:xspi1-cs0", "altfn:xspi1-sck",
> + "altfn:xspi1-dqs",
> + "altfn:xspi1-data0", "altfn:xspi1-data1",
> + "", "",
> + "flash-reset#", "pltrst#", "", "ethsw-reset#";
> +
> + /* Platform reset, no consumer node: released at boot */
> + pltrst-hog {
> + gpio-hog;
> + gpios = <29 GPIO_ACTIVE_LOW>;
> + output-low;
> + line-name = "pltrst#";
> + };
> +};
> +
> +&gpio2 {
> + status = "okay";
> + gpio-line-names =
> + "lan8023-mdint",
> + "i2c2-alert#", "i2c4-alert#", "i2c6-alert#",
> + "u800-tca9539-int#",
> + "spi3-alert#",
> + "wake0", "wake1",
> + "carrier-hot#",
> + "u1300-rtl8211fd-int#",
> + "ethsw-int#",
> + "", "",
> + "u1700-zl30733-clk-gpio0", "u1700-zl30733-clk-gpio1",
> + "u1700-zl30733-clk-gpio2", "u1700-zl30733-clk-gpio3",
> + "", "", "", "", "", "", "", "",
> + "", "", "", "", "", "", "";
> +};
> +
> +&gpio3 {
> + status = "okay";
> + gpio-line-names =
> + "altfn:ec1-txd3", "altfn:ec1-txd2",
> + "altfn:ec1-txd1", "altfn:ec1-txd0",
> + "altfn:ec1-tx-en", "altfn:ec1-gtx-clk",
> + "altfn:ec1-rxd3", "altfn:ec1-rxd2",
> + "altfn:ec1-rxd1", "altfn:ec1-rxd0",
> + "altfn:ec1-rx-clk", "altfn:ec1-rx-dv",
> + "", "",
> + "ptp-refclk-in",
> + "", "", "", "", "", "", "", "",
> + "u1700-zl30733-pps-out",
> + "",
> + "ethsw-mdio-en",
> + "usb01-oc#", /* USB1_PWRFAULT and USB2_PWRFAULT share one net */
> + "",
> + "usb01-oc#",
> + "altfn:spi3-sck",
> + "", "";
> +};
> +
> +/* On-module management bus */
> +&i2c0 {
> + status = "okay";
> +
> + eeprom@52 {
> + compatible = "atmel,24c32";
> + reg = <0x52>;
> + pagesize = <32>;
> + };
> +
> + /* Board ID straps */
> + gpio@74 {
> + compatible = "ti,tca9539";
> + reg = <0x74>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-line-names =
> + "boardid-0x0001", "boardid-0x0002",
> + "boardid-0x0004", "boardid-0x0008",
> + "boardid-0x0010", "boardid-0x0020",
> + "boardid-0x0040", "boardid-0x0080",
> + "boardid-0x0100", "boardid-0x0200",
> + "boardid-0x0400", "boardid-0x0800",
> + "boardid-0x1000", "boardid-0x2000",
> + "boardid-0x4000", "boardid-0x8000";
> + };
> +
> + u800: gpio@75 {
> + compatible = "ti,tca9539";
> + reg = <0x75>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
> + gpio-line-names =
> + "carrier-gpio0", "carrier-gpio1",
> + "carrier-gpio2", "carrier-gpio3",
> + "carrier-gpio4", "carrier-gpio5",
> + "carrier-gpio6", "carrier-gpio7",
> + "carrier-gpio8", "carrier-gpio9",
> + "carrier-gpio10", "carrier-gpio11",
> + "", "", "",
> + "lan8023-rst";
> + };
> +
> + /* +0V8_VDD core rail, MPS MPQ8646 (MPQ8785 core) over PMBus */
> + vdd08: regulator@10 {
> + compatible = "mps,mpq8646";
> + reg = <0x10>;
> + };
> +
> + /* SO-DIMM SPD temperature sensors */
> + temperature-sensor@18 {
> + compatible = "jedec,jc-42.4-temp";
> + reg = <0x18>;
> + };
> +
> + temperature-sensor@19 {
> + compatible = "jedec,jc-42.4-temp";
> + reg = <0x19>;
> + };
> +};
> +
> +&i2c1 {
> + status = "okay";
> +};
> +
> +&i2c2 {
> + status = "okay";
> +};
> +
> +&i2c3 {
> + status = "okay";
> +};
> +
> +&i2c5 {
> + status = "okay";
> +};
> +
> +&pcie3 {
> + status = "okay";
> +};
> +
> +&pcie4 {
> + status = "okay";
> +};
> +
> +&pcie5 {
> + status = "okay";
> +};
> +
> +&pcie6 {
> + status = "okay";
> +};
> +
> +&uart0 {
> + status = "okay";
> +};
> +
> +&usb0 {
> + status = "okay";
> +};
> +
> +&usb1 {
> + status = "okay";
> +};
>
> --
> 2.43.0
>
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-09-11 14:42 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 0:08 [PATCH v4 0/3] arm64: dts: freescale: add Free Mobile Nodebox v3 CPU Module (LX2160A) Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 1/3] dt-bindings: vendor-prefixes: add Free Mobile Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 2/3] dt-bindings: arm: fsl: add Free Mobile Nodebox v3 CPU Module Vincent Jardin via B4 Relay
2026-09-11 0:08 ` [PATCH v4 3/3] arm64: dts: freescale: add " Vincent Jardin via B4 Relay
2026-09-11 7:06 ` sashiko-bot
2026-09-11 14:42 ` Frank Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox