Devicetree
 help / color / mirror / Atom feed
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
>
>
>

      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