From: Tanmay Kathpalia <tanmay.kathpalia@altera.com>
To: linux-mmc@vger.kernel.org
Cc: ulf.hansson@linaro.org,
Tanmay Kathpalia <tanmay.kathpalia@altera.com>,
Dinh Nguyen <dinguyen@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v1 3/9] arm64: dts: agilex5: add Cadence SD6HC controller and SOCDK enablement
Date: Mon, 11 May 2026 13:21:25 -0700 [thread overview]
Message-ID: <20260511202132.5597-4-tanmay.kathpalia@altera.com> (raw)
In-Reply-To: <20260511202132.5597-1-tanmay.kathpalia@altera.com>
The Agilex5 SoC device tree gains an SD/MMC controller node backed by
the Cadence SD6HC, with IOMMU integration via the system SMMU. Card
power is supplied by a fixed 3.3V regulator and I/O voltage switching
between 1.8V and 3.3V is handled by a GPIO-controlled regulator.
The SOCDK board enables the controller for SD-only operation in 4-bit
bus width with high-speed and SDR104 UHS-I modes at 200 MHz maximum
clock. SDHCI capability overrides clear the SDR50 tuning flag and
override the clock base mask to report 200 MHz.
Signed-off-by: Tanmay Kathpalia <tanmay.kathpalia@altera.com>
---
.../arm64/boot/dts/intel/socfpga_agilex5.dtsi | 38 +++++++++++++++++++
.../boot/dts/intel/socfpga_agilex5_socdk.dts | 26 +++++++++++++
2 files changed, 64 insertions(+)
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
index 352c96d144a8..7e080f13166f 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
@@ -300,6 +300,44 @@ portb: gpio-controller@0 {
};
};
+ sd_emmc_power: regulator-fixed-3p3v {
+ compatible = "regulator-fixed";
+ regulator-name = "card-power";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ sd_io_1v8_reg: regulator-1p8v {
+ compatible = "regulator-gpio";
+ regulator-name = "sd-bus-io-power";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ states = <1800000 0x1>,
+ <3300000 0x0>;
+ };
+
+ emmc: mmc@10808000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "altr,agilex5-sd6hc", "cdns,sd6hc";
+ reg = <0x10808000 0x1000>;
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+ fifo-depth = <0x800>;
+ resets = <&rst SDMMC_RESET>, <&rst COMBOPHY_RESET>, <&rst SDMMC_OCP_RESET>;
+ reset-names = "sdhc-reset", "combophy", "sdmmc-ocp";
+ /*
+ * "ciu" (SDMCLK) is listed first so it is selected as the
+ * primary clock by the SDHCI platform layer; the SD6HC PHY
+ * timing calculations are derived from this clock rate.
+ */
+ clocks = <&clkmgr AGILEX5_SDMCLK>, <&clkmgr AGILEX5_L4_MP_CLK>;
+ clock-names = "ciu", "biu";
+ iommus = <&smmu 5>;
+ dma-coherent;
+ status = "disabled";
+ };
+
nand: nand-controller@10b80000 {
compatible = "cdns,hp-nfc";
reg = <0x10b80000 0x10000>,
diff --git a/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts b/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts
index 262bb3e8e5c7..a9de824e292a 100644
--- a/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts
+++ b/arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts
@@ -98,6 +98,32 @@ root: partition@4200000 {
};
};
+&sd_io_1v8_reg {
+ gpios = <&portb 3 GPIO_ACTIVE_HIGH>;
+};
+
+&emmc {
+ status = "okay";
+
+ no-mmc;
+ disable-wp;
+ bus-width = <4>;
+ cap-sd-highspeed;
+ sd-uhs-sdr104;
+ vmmc-supply = <&sd_emmc_power>;
+ vqmmc-supply = <&sd_io_1v8_reg>;
+ max-frequency = <200000000>;
+ /*
+ * SDHCI capability overrides:
+ * - caps_mask[0] 0x0000ff00 / caps[0] 0x0000c800:
+ * Override SDHCI_CLOCK_BASE_MASK to 0xc8 (200 MHz).
+ * - caps_mask[1] 0x00002000 / caps[1] 0:
+ * Clear SDHCI_USE_SDR50_TUNING; SDR50 tuning is unsupported.
+ */
+ sdhci-caps = <0x00000000 0x0000c800>;
+ sdhci-caps-mask = <0x00002000 0x0000ff00>;
+};
+
&uart0 {
status = "okay";
};
--
2.43.7
next prev parent reply other threads:[~2026-05-11 20:21 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260511202132.5597-1-tanmay.kathpalia@altera.com>
2026-05-11 20:21 ` [PATCH v1 1/9] dt-bindings: reset: altr: add COMBOPHY_RESET for Agilex5 Tanmay Kathpalia
2026-05-12 17:33 ` Conor Dooley
2026-05-11 20:21 ` [PATCH v1 2/9] dt-bindings: mmc: cdns,sdhci: add SD6HC support and PHY properties Tanmay Kathpalia
2026-05-12 17:33 ` Conor Dooley
2026-05-13 0:23 ` sashiko-bot
2026-05-11 20:21 ` Tanmay Kathpalia [this message]
2026-05-13 0:43 ` [PATCH v1 3/9] arm64: dts: agilex5: add Cadence SD6HC controller and SOCDK enablement sashiko-bot
2026-05-13 6:34 ` Kathpalia, Tanmay
2026-05-11 20:21 ` [PATCH v1 4/9] dt-bindings: arm: intel: add Agilex5 SOCDK eMMC board variant Tanmay Kathpalia
2026-05-11 20:21 ` [PATCH v1 5/9] arm64: dts: agilex5: add SOCDK eMMC daughter board support Tanmay Kathpalia
2026-05-13 1:22 ` sashiko-bot
2026-05-13 6:25 ` Kathpalia, Tanmay
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=20260511202132.5597-4-tanmay.kathpalia@altera.com \
--to=tanmay.kathpalia@altera.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dinguyen@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=robh@kernel.org \
--cc=ulf.hansson@linaro.org \
/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