status = "disabled";
};
- combophy0: combophy@0 {
- #phy-cells = <0>;
- phy-type = <1>;
- compatible = "cdns,combophy";
- reg = <0x10808000 0x1000>;
- resets = <&rst COMBOPHY_RESET>;
- reset-names = "reset";
- status = "disabled";
+ 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>;
};
mmc: mmc0@10808000 {
#address-cells = <1>;
#size-cells = <0>;
- compatible = "cdns,sd4hc";
+ compatible = "altr,agilex5-sd6hc", "cdns,sd6hc";
reg = <0x10808000 0x1000>;
interrupts = <0 96 4>;
- phys = <&combophy0>;
- phy-names = "combo-phy";
clocks = <&clkmgr AGILEX5_L4_MP_CLK>,
<&clkmgr AGILEX5_SDMMC_CLK>;
clock-names = "biu", "ciu";
fifo-depth = <0x800>;
- resets = <&rst SDMMC_RESET>;
- reset-names = "reset";
iommus = <&smmu 5>;
status = "disabled";
};
bootph-all;
};
-&mmc {
- status = "okay";
- bus-width = <4>;
- sd-uhs-sdr50;
- cap-mmc-highspeed;
+&gpio1 {
+ portb: gpio-controller@0 {
+ bootph-all;
+ };
+};
+
+&sd_emmc_power {
bootph-all;
};
-&combophy0 {
+&sd_io_1v8_reg {
+ gpios = <&portb 3 GPIO_ACTIVE_HIGH>;
+ bootph-all;
+};
+
+&mmc {
status = "okay";
+
+ no-mmc;
+ no-1-8-v;
+ disable-wp;
+ cap-sd-highspeed;
+ vmmc-supply = <&sd_emmc_power>;
+ vqmmc-supply = <&sd_io_1v8_reg>;
+ max-frequency = <200000000>;
+
+ /* SD card default speed (DS) and UHS-I SDR12 mode timing configuration */
+ cdns,phy-dqs-timing-delay-sd-ds = <0x00780000>;
+ cdns,phy-gate-lpbk_ctrl-delay-sd-ds = <0x81a40040>;
+ cdns,phy-dll-slave-ctrl-sd-ds = <0x00a000fe>;
+ cdns,phy-dq-timing-delay-sd-ds = <0x28000001>;
+
+ /* SD card high speed and UHS-I SDR25 mode timing configuration */
+ cdns,phy-dqs-timing-delay-sd-hs = <0x780001>;
+ cdns,phy-gate-lpbk_ctrl-delay-sd-hs = <0x81a40040>;
+ cdns,phy-dq-timing-delay-sd-hs = <0x10000001>;
+ cdns,ctrl-hrs16-slave-ctrl-sd-hs = <0x101>;
+ cdns,ctrl-hrs07-timing-delay-sd-hs = <0xA0001>;
+
bootph-all;
- cdns,phy-use-ext-lpbk-dqs = <1>;
- cdns,phy-use-lpbk-dqs = <1>;
- cdns,phy-use-phony-dqs = <1>;
- cdns,phy-use-phony-dqs-cmd = <1>;
- cdns,phy-io-mask-always-on = <0>;
- cdns,phy-io-mask-end = <5>;
- cdns,phy-io-mask-start = <0>;
- cdns,phy-data-select-oe-end = <1>;
- cdns,phy-sync-method = <1>;
- cdns,phy-sw-half-cycle-shift = <0>;
- cdns,phy-rd-del-sel = <52>;
- cdns,phy-underrun-suppress = <1>;
- cdns,phy-gate-cfg-always-on = <1>;
- cdns,phy-param-dll-bypass-mode = <1>;
- cdns,phy-param-phase-detect-sel = <2>;
- cdns,phy-param-dll-start-point = <254>;
- cdns,phy-read-dqs-cmd-delay = <0>;
- cdns,phy-clk-wrdqs-delay = <0>;
- cdns,phy-clk-wr-delay = <0>;
- cdns,phy-read-dqs-delay = <0>;
- cdns,phy-phony-dqs-timing = <0>;
- cdns,hrs09-rddata-en = <1>;
- cdns,hrs09-rdcmd-en = <1>;
- cdns,hrs09-extended-wr-mode = <1>;
- cdns,hrs09-extended-rd-mode = <1>;
- cdns,hrs10-hcsdclkadj = <3>;
- cdns,hrs16-wrdata1-sdclk-dly = <0>;
- cdns,hrs16-wrdata0-sdclk-dly = <0>;
- cdns,hrs16-wrcmd1-sdclk-dly = <0>;
- cdns,hrs16-wrcmd0-sdclk-dly = <0>;
- cdns,hrs16-wrdata1-dly = <0>;
- cdns,hrs16-wrdata0-dly = <0>;
- cdns,hrs16-wrcmd1-dly = <0>;
- cdns,hrs16-wrcmd0-dly = <0>;
- cdns,hrs07-rw-compensate = <10>;
- cdns,hrs07-idelay-val = <0>;
};
&qspi {