From: Frank Li <Frank.li@oss.nxp.com>
To: vjardin@free.fr
Cc: Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Shawn Guo <shawnguo@kernel.org>, Frank Li <Frank.Li@nxp.com>,
Sascha Hauer <s.hauer@pengutronix.de>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Fabio Estevam <festevam@gmail.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 3/3] arm64: dts: freescale: add Nodebox v3 CPU Module
Date: Fri, 11 Sep 2026 09:42:03 -0500 [thread overview]
Message-ID: <aqQTOx4M3FqSJAYZ@SMW015318> (raw)
In-Reply-To: <20260911-for-upstream-nbxv3-dts-v4-3-2fd07d5575ab@free.fr>
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
>
>
>
prev parent reply other threads:[~2026-09-11 14:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
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 message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aqQTOx4M3FqSJAYZ@SMW015318 \
--to=frank.li@oss.nxp.com \
--cc=Frank.Li@nxp.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=imx@lists.linux.dev \
--cc=kernel@pengutronix.de \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=vjardin@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox