Skip to contentSkip to conversation

Add eMMC support for Stratix 10 SoCDK

PATCH Superseded [email protected] 3 participants 7 messages Jan 20 – Jan 21

Subsystems (2)

v1 of 6 Superseded Latest is v6 →

lore
Share & tools
lore
#0 lore raw

cover Add eMMC support for Stratix 10 SoCDK

From: Ng Tze Yee <[email protected]>

The first patch adds the device tree binding documentation for the new board compatible string. The second patch introduces the device tree file for the eMMC configuration along with necessary build system changes.

Ng Tze Yee (2):
dt-bindings: altera: document Stratix 10 eMMC compatible
arm64: dts: socfpga: stratix10: Add emmc support

 .../devicetree/bindings/arm/altera.yaml       |   1 +
 arch/arm64/boot/dts/altera/Makefile           |   1 +
 .../altera/socfpga_stratix10_socdk_emmc.dts   | 155 ++++++++++++++++++
 3 files changed, 157 insertions(+)
 create mode 100644 arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts
Signature · 1 line
2.25.1
#1 lore raw

PATCH 1/2 dt-bindings: altera: document Stratix 10 eMMC compatible

From: Ng Tze Yee <[email protected]>

Stratix 10 devkit support a separate eMMC daughter card. Document Stratix 10 eMMC daughter board compatible.

---
 Documentation/devicetree/bindings/arm/altera.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/altera.yaml +1 -0
index db61537b7115..2a8bc85e9be9 100644
@@ -78,6 +78,7 @@ properties:
         items:
           - enum:
               - altr,socfpga-stratix10-socdk
+              - altr,socfpga-stratix10-socdk-emmc
               - altr,socfpga-stratix10-swvp
           - const: altr,socfpga-stratix10
 
Signature · 1 line
2.25.1
#2 lore raw

Re: [PATCH 1/2] dt-bindings: altera: document Stratix 10 eMMC compatible

Quoted 4 lines · On Tue, Jan 20, 2026 at 05:54:45AM -0800, [email protected] wrote:

From: Ng Tze Yee <[email protected]>

Stratix 10 devkit support a separate eMMC daughter card. Document Stratix 10 eMMC daughter board compatible.

This makes it seem like stratix10-socdk should be a fallback for this emmc device, if the new compatible only describes the combination device.

Quoted 21 lines
---
 Documentation/devicetree/bindings/arm/altera.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/altera.yaml +1 -0
index db61537b7115..2a8bc85e9be9 100644
@@ -78,6 +78,7 @@ properties:
         items:
           - enum:
               - altr,socfpga-stratix10-socdk
+              - altr,socfpga-stratix10-socdk-emmc
               - altr,socfpga-stratix10-swvp
           - const: altr,socfpga-stratix10
 
Signature · 1 line
2.25.1
#3 lore raw

Re: [PATCH 1/2] dt-bindings: altera: document Stratix 10 eMMC compatible

Quoted 3 lines · Conor Dooley

[You don't often get email from [email protected]. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]

[CAUTION: This email is from outside your organization. Unless you trust the sender, do not click on links or open attachments as it may be a fraudulent email attempting to steal your information and/or compromise your computer.]

Hi Conor,

Just to confirm I understand correctly, would you like me to update both:

1. The binding schema (altera.yaml) to split the Stratix 10 boards into two patterns, with the eMMC variant having a fallback chain?

- description: Stratix 10 boards
items:
- enum:
- altr,socfpga-stratix10-socdk
- altr,socfpga-stratix10-swvp
- const: altr,socfpga-stratix10

- description: Stratix 10 SoCDK eMMC variant items:
- const: altr,socfpga-stratix10-socdk-emmc
- const: altr,socfpga-stratix10-socdk
- const: altr,socfpga-stratix10

2. The device tree (socfpga_stratix10_socdk_emmc.dts) to update the compatible property

from:
compatible = "altr,socfpga-stratix10-socdk-emmc", "altr,socfpga-stratix10";

to:
compatible = "altr,socfpga-stratix10-socdk-emmc",
"altr,socfpga-stratix10-socdk",
"altr,socfpga-stratix10";

Please let me know if this is the expected approach, or if you had something different in mind.

#4 lore raw

Re: [PATCH 1/2] dt-bindings: altera: document Stratix 10 eMMC compatible

Quoted 30 lines · Tze Yee
Quoted 3 lines · Conor Dooley

[You don't often get email from [email protected]. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]

[CAUTION: This email is from outside your organization. Unless you trust the sender, do not click on links or open attachments as it may be a fraudulent email attempting to steal your information and/or compromise your computer.]

Hi Conor,

Just to confirm I understand correctly, would you like me to update both:

1. The binding schema (altera.yaml) to split the Stratix 10 boards into two patterns, with the eMMC variant having a fallback chain?

- description: Stratix 10 boards
items:
- enum:
- altr,socfpga-stratix10-socdk
- altr,socfpga-stratix10-swvp
- const: altr,socfpga-stratix10

- description: Stratix 10 SoCDK eMMC variant items:
- const: altr,socfpga-stratix10-socdk-emmc
- const: altr,socfpga-stratix10-socdk
- const: altr,socfpga-stratix10

2. The device tree (socfpga_stratix10_socdk_emmc.dts) to update the compatible property

from:
compatible = "altr,socfpga-stratix10-socdk-emmc", "altr,socfpga-stratix10";

Quoted 7 lines

to:
compatible = "altr,socfpga-stratix10-socdk-emmc",
"altr,socfpga-stratix10-socdk",
"altr,socfpga-stratix10";

Please let me know if this is the expected approach, or if you had something different in mind.

Yes, that's effectively what I had in mind.

#5 lore raw

PATCH 2/2 arm64: dts: socfpga: stratix10: Add emmc support

In reply to [email protected]

From: Ng Tze Yee <[email protected]>

The Stratix10 devkit supports a separate eMMC daughter card. The eMMC daughter card replaces the SDMMC slot that is on the default daughter card and thus requires a separate board dts file.

---
 arch/arm64/boot/dts/altera/Makefile           |   1 +
 .../altera/socfpga_stratix10_socdk_emmc.dts   | 155 ++++++++++++++++++
 2 files changed, 156 insertions(+)
 create mode 100644 arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts
arch/arm64/boot/dts/altera/Makefile +1 -0
index 1bf0c472f6b4..540bb5ae746b 100644
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
 dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += socfpga_stratix10_socdk.dtb \
+				socfpga_stratix10_socdk_emmc.dtb \
 				socfpga_stratix10_socdk_nand.dtb \
 				socfpga_stratix10_swvp.dtb
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts new file +155 -0

155 lines not on this page · raw message

Signature · 1 line
2.25.1
#6 lore raw

Re: [PATCH 2/2] arm64: dts: socfpga: stratix10: Add emmc support

arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts

Quoted 28 lines · On Tue, Jan 20, 2026 at 05:54:46AM -0800, [email protected] wrote:

From: Ng Tze Yee <[email protected]>

The Stratix10 devkit supports a separate eMMC daughter card. The eMMC daughter card replaces the SDMMC slot that is on the default daughter card and thus requires a separate board dts file.

---
 arch/arm64/boot/dts/altera/Makefile           |   1 +
 .../altera/socfpga_stratix10_socdk_emmc.dts   | 155 ++++++++++++++++++
 2 files changed, 156 insertions(+)
 create mode 100644 arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts
arch/arm64/boot/dts/altera/Makefile +1 -0
index 1bf0c472f6b4..540bb5ae746b 100644
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
 dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += socfpga_stratix10_socdk.dtb \
+				socfpga_stratix10_socdk_emmc.dtb \
 				socfpga_stratix10_socdk_nand.dtb \
 				socfpga_stratix10_swvp.dtb
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts new file +0 -0
new file mode 100644
index 000000000000..01694920afaf

90% of this new file appears to duplicate the base device, I think that should be extracted to a common file.

Quoted 46 lines
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts new file +45 -0
@@ -0,0 +1,155 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright Altera Corporation (C) 2026. All rights reserved.
+ */
+
+#include "socfpga_stratix10.dtsi"
+
+/ {
+	model = "SoCFPGA Stratix 10 SoCDK eMMC daughter board";
+	compatible = "altr,socfpga-stratix10-socdk-emmc", "altr,socfpga-stratix10";
+
+	aliases {
+		serial0 = &uart0;
+		ethernet0 = &gmac0;
+		ethernet1 = &gmac1;
+		ethernet2 = &gmac2;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		led-hps0 {
+			label = "hps_led0";
+			gpios = <&portb 20 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-hps1 {
+			label = "hps_led1";
+			gpios = <&portb 19 GPIO_ACTIVE_HIGH>;
+		};
+
+		led-hps2 {
+			label = "hps_led2";
+			gpios = <&portb 21 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	memory@80000000 {
+		device_type = "memory";
+		/* We expect the bootloader to fill in the reg */
+		reg = <0 0x80000000 0 0>;
+	};

arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts line 55

Quoted 10 lines
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts new file +10 -0
+
+	ref_033v: regulator-0v33-ref {
+		compatible = "regulator-fixed";
+		regulator-name = "0.33V";
+		regulator-min-microvolt = <330000>;
+		regulator-max-microvolt = <330000>;
+	};
+
+	soc@0 {
+		eccmgr {

This eccmgr node already exists, you should access it by label.

Quoted 103 lines
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_emmc.dts new file +100 -0
+			sdmmca-ecc@ff8c8c00 {
+				compatible = "altr,socfpga-s10-sdmmc-ecc",
+					     "altr,socfpga-sdmmc-ecc";
+				reg = <0xff8c8c00 0x100>;
+				altr,ecc-parent = <&mmc>;
+				interrupts = <14 4>,
+					     <15 4>;
+			};
+		};
+	};
+};
+
+&gpio1 {
+	status = "okay";
+};
+
+&gmac2 {
+	status = "okay";
+	/* PHY delays is configured via skew properties */
+	phy-mode = "rgmii";
+	phy-handle = <&phy0>;
+
+	max-frame-size = <9000>;
+
+	mdio0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "snps,dwmac-mdio";
+		phy0: ethernet-phy@4 {
+			reg = <4>;
+
+			txd0-skew-ps = <0>; /* -420ps */
+			txd1-skew-ps = <0>; /* -420ps */
+			txd2-skew-ps = <0>; /* -420ps */
+			txd3-skew-ps = <0>; /* -420ps */
+			rxd0-skew-ps = <420>; /* 0ps */
+			rxd1-skew-ps = <420>; /* 0ps */
+			rxd2-skew-ps = <420>; /* 0ps */
+			rxd3-skew-ps = <420>; /* 0ps */
+			txen-skew-ps = <0>; /* -420ps */
+			txc-skew-ps = <900>; /* 0ps */
+			rxdv-skew-ps = <420>; /* 0ps */
+			rxc-skew-ps = <1680>; /* 780ps */
+		};
+	};
+};
+
+&mmc {
+	status = "okay";
+	cap-mmc-highspeed;
+	broken-cd;
+	bus-width = <4>;
+	clk-phase-sd-hs = <0>, <135>;
+};
+
+&osc1 {
+	clock-frequency = <25000000>;
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&usb0 {
+	status = "okay";
+	disable-over-current;
+};
+
+&watchdog0 {
+	status = "okay";
+};
+
+&i2c2 {
+	status = "okay";
+	clock-frequency = <100000>;
+	i2c-sda-falling-time-ns = <890>;  /* hcnt */
+	i2c-scl-falling-time-ns = <890>;  /* lcnt */
+
+	adc@14 {
+		compatible = "lltc,ltc2497";
+		reg = <0x14>;
+		vref-supply = <&ref_033v>;
+	};
+
+	temp@4c {
+		compatible = "maxim,max1619";
+		reg = <0x4c>;
+	};
+
+	eeprom@51 {
+		compatible = "atmel,24c32";
+		reg = <0x51>;
+		pagesize = <32>;
+	};
+
+	rtc@68 {
+		compatible = "dallas,ds1339";
+		reg = <0x68>;
+	};
+};
Signature · 1 line
2.25.1