All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v9 0/3] arm: dts: altera: add Draeger M48 CPU board
@ 2026-10-14 13:02 Petko Manolov
  2026-10-14 13:02 ` [PATCH v9 1/3] dt-bindings: vendor-prefixes: add Draeger AG Petko Manolov
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Petko Manolov @ 2026-10-14 13:02 UTC (permalink / raw)
  To: linux-kernel
  Cc: devicetree, robh, krzk+dt, conor+dt, dinguyen,
	arnemaximilian.richter, martynas.grybauskas, Petko Manolov

Adding the device trees for “Dräger M48 on NXP i.MX6 (Q) and Intel/Altera
SoCFPGA Cyclone V” board variant.  It has both (the SoC and FPGA) on the
same carrier and they are cross-monitoring each other.  The SoCFPGA boots
independently off qspi flash.

This is the SoCFPGA devicetree part.

news for v9:

  - remove the name property from the memory node;
  - fix a typo in a comment;
  - attached phy-specific skew properties to dedicated mdio phy sub-node;
  - add Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

now in v8:

  - modified draeger,m48 to draeger,socfpga-48 because it is more consistent;
    with its other imx counterparts imx6q-m48 and imx6dl-m48;
  - dropped gpio3 and gpio4 bindings;

new in v7:

  - replaced module with board as this seems to be confusing to some;
  - add Acked-by: Conor Dooley <conor.dooley@microchip.com> tag;

Petko Manolov (3):
  dt-bindings: vendor-prefixes: add Draeger AG
  dt-bindings: arm: altera: add Draeger M48 dual-cpu board
  arm: dts: altera: add Draeger M48 CPU Module

 .../devicetree/bindings/arm/altera.yaml       |   1 +
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/arm/boot/dts/intel/socfpga/Makefile      |   1 +
 .../socfpga/socfpga_cyclone5_draeger_m48.dts  | 100 ++++++++++++++++++
 4 files changed, 104 insertions(+)
 create mode 100644 arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_draeger_m48.dts

-- 
2.47.3


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v9 1/3] dt-bindings: vendor-prefixes: add Draeger AG
  2026-10-14 13:02 [PATCH v9 0/3] arm: dts: altera: add Draeger M48 CPU board Petko Manolov
@ 2026-10-14 13:02 ` Petko Manolov
  2026-10-14 13:02 ` [PATCH v9 2/3] dt-bindings: arm: altera: add Draeger M48 dual-cpu board Petko Manolov
  2026-10-14 13:02 ` [PATCH v9 3/3] arm: dts: altera: add Draeger M48 CPU Module Petko Manolov
  2 siblings, 0 replies; 5+ messages in thread
From: Petko Manolov @ 2026-10-14 13:02 UTC (permalink / raw)
  To: linux-kernel
  Cc: devicetree, robh, krzk+dt, conor+dt, dinguyen,
	arnemaximilian.richter, martynas.grybauskas, Petko Manolov,
	Conor Dooley

Add a vendor prefix for Draegar AG, which is Draegerwerk AG & Co. KGaA
Link: https://www.draeger.com/de_de/Home

Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
---
 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 ba2002969373..276d62b848d5 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -467,6 +467,8 @@ patternProperties:
     description: DPTechnics
   "^dptel,.*":
     description: Guangdong Dapu Telecom Co., Ltd.
+  "^draeger,.*":
+    description: Draegerwerk AG & Co. KGaA
   "^dragino,.*":
     description: Dragino Technology Co., Limited
   "^dream,.*":
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v9 2/3] dt-bindings: arm: altera: add Draeger M48 dual-cpu board
  2026-10-14 13:02 [PATCH v9 0/3] arm: dts: altera: add Draeger M48 CPU board Petko Manolov
  2026-10-14 13:02 ` [PATCH v9 1/3] dt-bindings: vendor-prefixes: add Draeger AG Petko Manolov
@ 2026-10-14 13:02 ` Petko Manolov
  2026-10-14 13:02 ` [PATCH v9 3/3] arm: dts: altera: add Draeger M48 CPU Module Petko Manolov
  2 siblings, 0 replies; 5+ messages in thread
From: Petko Manolov @ 2026-10-14 13:02 UTC (permalink / raw)
  To: linux-kernel
  Cc: devicetree, robh, krzk+dt, conor+dt, dinguyen,
	arnemaximilian.richter, martynas.grybauskas, Petko Manolov,
	Krzysztof Kozlowski

M48 is a heterogeneous board made by Draeger that is based on two
independent cpus, that are monitoring each other.  One of them is
imx6, the other is Altera SoCFPGA Cyclone 5.  The latter is booting
independently off qspi.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
---
 Documentation/devicetree/bindings/arm/altera.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/altera.yaml b/Documentation/devicetree/bindings/arm/altera.yaml
index 3030cf46fe74..b67dc10b0a11 100644
--- a/Documentation/devicetree/bindings/arm/altera.yaml
+++ b/Documentation/devicetree/bindings/arm/altera.yaml
@@ -47,6 +47,7 @@ properties:
           - enum:
               - altr,socfpga-cyclone5-socdk
               - denx,mcvevk
+              - draeger,socfpga-m48
               - ebv,socrates
               - macnica,sodia
               - novtech,chameleon96
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v9 3/3] arm: dts: altera: add Draeger M48 CPU Module
  2026-10-14 13:02 [PATCH v9 0/3] arm: dts: altera: add Draeger M48 CPU board Petko Manolov
  2026-10-14 13:02 ` [PATCH v9 1/3] dt-bindings: vendor-prefixes: add Draeger AG Petko Manolov
  2026-10-14 13:02 ` [PATCH v9 2/3] dt-bindings: arm: altera: add Draeger M48 dual-cpu board Petko Manolov
@ 2026-10-14 13:02 ` Petko Manolov
  2026-10-14 13:23   ` sashiko-bot
  2 siblings, 1 reply; 5+ messages in thread
From: Petko Manolov @ 2026-10-14 13:02 UTC (permalink / raw)
  To: linux-kernel
  Cc: devicetree, robh, krzk+dt, conor+dt, dinguyen,
	arnemaximilian.richter, martynas.grybauskas, Petko Manolov

M48 is a heterogeneous board made by Draeger that is based on two
independent cpus, that are monitoring each other.  One of them is
imx6, the other is Altera SoCFPGA Cyclone 5.  The latter is booting
independently off qspi.

This one adds the DT for the Altera SoCFPGA part of M48.

Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
---
 arch/arm/boot/dts/intel/socfpga/Makefile      |   1 +
 .../socfpga/socfpga_cyclone5_draeger_m48.dts  | 100 ++++++++++++++++++
 2 files changed, 101 insertions(+)
 create mode 100644 arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_draeger_m48.dts

diff --git a/arch/arm/boot/dts/intel/socfpga/Makefile b/arch/arm/boot/dts/intel/socfpga/Makefile
index 8df0976da01c..cdcea11abdfa 100644
--- a/arch/arm/boot/dts/intel/socfpga/Makefile
+++ b/arch/arm/boot/dts/intel/socfpga/Makefile
@@ -11,6 +11,7 @@ dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += \
 	socfpga_arria10_mercury_aa1_st1_emmc.dtb \
 	socfpga_arria10_mercury_aa1_st1_qspi.dtb \
 	socfpga_arria10_mercury_aa1_st1_sdmmc.dtb \
+	socfpga_cyclone5_draeger_m48.dtb \
 	socfpga_cyclone5_mercury_sa1_pe1_emmc.dtb \
 	socfpga_cyclone5_mercury_sa1_pe1_qspi.dtb \
 	socfpga_cyclone5_mercury_sa1_pe1_sdmmc.dtb \
diff --git a/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_draeger_m48.dts b/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_draeger_m48.dts
new file mode 100644
index 000000000000..bc1909126e19
--- /dev/null
+++ b/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_draeger_m48.dts
@@ -0,0 +1,100 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ *  (C) Copyright 2020 Draeger and Licensors, info@draeger.com
+ */
+#include "socfpga_cyclone5.dtsi"
+
+/ {
+	model = "Draeger M48 Cyclone V SoC";
+	compatible = "draeger,socfpga-m48", "altr,socfpga-cyclone5", "altr,socfpga";
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	memory@0 {
+		reg = <0x0 0x40000000>;
+	};
+
+	aliases {
+		/* this allow the ethaddr uboot environment variable contents
+		 * to be added to the gmac0 device tree blob.
+		 */
+		ethernet0 = &gmac0;
+	};
+};
+
+&gmac0 {
+	status = "okay";
+	phy-mode = "rgmii";
+	phy-handle = <&ethphy>;
+
+	mdio0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "snps,dwmac-mdio";
+
+		ethphy: ethernet-phy@0 {
+			reg = <0>;
+			rxc-skew-ps  = <1860>;
+			rxd0-skew-ps = <0>;
+			rxd1-skew-ps = <0>;
+			rxd2-skew-ps = <0>;
+			rxd3-skew-ps = <0>;
+			rxdv-skew-ps = <0>;
+			txc-skew-ps  = <900>;
+			txd0-skew-ps = <0>;
+			txd1-skew-ps = <0>;
+			txd2-skew-ps = <0>;
+			txd3-skew-ps = <0>;
+			txen-skew-ps = <0>;
+		};
+	};
+};
+
+&gpio0 {
+	status = "okay";
+};
+
+&gpio1 {
+	status = "okay";
+};
+
+&gpio2 {
+	status = "okay";
+};
+
+&i2c0 {
+	status = "okay";
+	clock-frequency = <100000>;
+
+	eeprom_mac: eeprom@50 {
+		compatible = "atmel,24c08";
+		reg = <0x50>;
+		pagesize = <16>;
+	};
+};
+
+&mmc0 {
+	status = "okay";
+};
+
+&qspi {
+	status = "okay";
+
+	flash: flash@0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "micron,n25q256a", "jedec,spi-nor";
+		reg = <0>;
+
+		/* chip select */
+		spi-max-frequency = <100000000>;
+		m25p,fast-read;
+		cdns,read-delay = <4>;
+		cdns,tshsl-ns = <50>;
+		cdns,tsd2d-ns = <50>;
+		cdns,tchsh-ns = <4>;
+		cdns,tslch-ns = <4>;
+	};
+};
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v9 3/3] arm: dts: altera: add Draeger M48 CPU Module
  2026-10-14 13:02 ` [PATCH v9 3/3] arm: dts: altera: add Draeger M48 CPU Module Petko Manolov
@ 2026-10-14 13:23   ` sashiko-bot
  0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-10-14 13:23 UTC (permalink / raw)
  To: Petko Manolov; +Cc: devicetree, robh, conor+dt

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] dts: missing device_type = "memory" in memory node
- [Low] dt-bindings: missing PHY compatible string triggers dtbs_check warnings
--

commit d855694f7a7cff3fb10eeb71af859efb7af1158a
Author: Petko Manolov <petko.manolov@konsulko.com>

arm: dts: altera: add Draeger M48 CPU Module

This commit adds the device tree for the Altera SoCFPGA part of the
heterogeneous Draeger M48 board. The Cyclone V boots independently off
QSPI and monitors an i.MX6 CPU on the same module.

> diff --git a/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_draeger_m48.dts b/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_draeger_m48.dts
> new file mode 100644
> index 0000000000000..bc1909126e195
> --- /dev/null
> +++ b/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_draeger_m48.dts
> @@ -0,0 +1,100 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + *  (C) Copyright 2020 Draeger and Licensors, info@draeger.com
> + */
> +#include "socfpga_cyclone5.dtsi"
> +
> +/ {
> +	model = "Draeger M48 Cyclone V SoC";
> +	compatible = "draeger,socfpga-m48", "altr,socfpga-cyclone5", "altr,socfpga";
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	memory@0 {
> +		reg = <0x0 0x40000000>;
> +	};

[Severity: Medium]
Should the memory@0 node include a device_type = "memory" property?

The Device Tree Specification mandates that memory nodes must include a
device_type = "memory" property. The kernel's early_init_dt_scan_memory()
explicitly checks for this property, and nodes lacking it are ignored.

While bootloaders like U-Boot often dynamically fix up or create the memory
node and its properties before passing the DT to the kernel, omitting it in
the source DTS is incorrect, triggers dtc and schema warnings, and could
lead to boot failure if the bootloader fails to inject the property.

[ ... ]

> +&gmac0 {
> +	status = "okay";
> +	phy-mode = "rgmii";
> +	phy-handle = <&ethphy>;
> +
> +	mdio0 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		compatible = "snps,dwmac-mdio";
> +
> +		ethphy: ethernet-phy@0 {
> +			reg = <0>;
> +			rxc-skew-ps  = <1860>;
> +			rxd0-skew-ps = <0>;

[Severity: Low]
Could a compatible string be added to this PHY node?

The newly added ethernet PHY node uses vendor-specific skew properties
like rxc-skew-ps which are defined in micrel,gigabit.yaml. Because it
lacks a matching compatible string (such as ethernet-phy-id0022.1610),
the dt-schema validation tool does not apply the Micrel binding schema
to this node.

As a result, it falls back to the generic ethernet-phy.yaml schema, causing
dtbs_check to emit unevaluated property warnings for all the skew
properties. While the Linux kernel's MDIO bus will auto-detect the PHY ID
at runtime and apply the skews correctly via the Micrel driver, devicetree
validation requires the explicit compatible string.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261014130228.2780803-1-petko.manolov@konsulko.com?part=3

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-10-14 13:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-14 13:02 [PATCH v9 0/3] arm: dts: altera: add Draeger M48 CPU board Petko Manolov
2026-10-14 13:02 ` [PATCH v9 1/3] dt-bindings: vendor-prefixes: add Draeger AG Petko Manolov
2026-10-14 13:02 ` [PATCH v9 2/3] dt-bindings: arm: altera: add Draeger M48 dual-cpu board Petko Manolov
2026-10-14 13:02 ` [PATCH v9 3/3] arm: dts: altera: add Draeger M48 CPU Module Petko Manolov
2026-10-14 13:23   ` sashiko-bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.