[PATCH 0/5] arm64: dts: rockchip: rk3568-evb1-v10: add sd card support
STALE1839d
Revision v1 of 3 in this series.
9 messages,
2 authors,
2021-08-04 · open the first message on its own page
Hi all,
This series enables the SD card reader on the RK3568 EVB1
and completes the support for the on-board eMMC.
As the PMU IO domains are required, this depends on the
patch "soc: rockchip: io-domain: add rk3568 support" [1].
Best regards,
Michael
[1] https://patchwork.kernel.org/project/linux-rockchip/patch/20210527072917.1425321-1-jay.xu@rock-chips.com/
Michael Riesch (5):
arm64: dts: rockchip: rk3568-evb1-v10: add regulators of rk809 pmic
arm64: dts: rockchip: enable io domains for rk356x
arm64: dts: rockchip: rk3568-evb1-v10: enable io domains
arm64: dts: rockchip: rk3568-evb1-v10: add pinctrl and alias to emmc
node
arm64: dts: rockchip: rk3568-evb1-v10: add node for sd card
.../boot/dts/rockchip/rk3568-evb1-v10.dts | 237 ++++++++++++++++++
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 5 +
2 files changed, 242 insertions(+)
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
.../boot/dts/rockchip/rk3568-evb1-v10.dts | 206 ++++++++++++++++++
1 file changed, 206 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index 65e536c78d2e..f682144a1892 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -104,6 +104,203 @@
status = "okay" ;
};
+ & i2c0 {
+ status = "okay" ;
+
+ rk809 : pmic @ 20 {
+ compatible = "rockchip,rk809" ;
+ reg = < 0x20 > ;
+ interrupt-parent = <& gpio0 > ;
+ interrupts = < RK_PA3 IRQ_TYPE_LEVEL_LOW > ;
+ # clock-cells = < 1 > ;
+ pinctrl-names = "default" ;
+ pinctrl-0 = <& pmic_int > ;
+ rockchip , system-power-controller ;
+ wakeup-source ;
+
+ vcc1-supply = <& vcc3v3_sys > ;
+ vcc2-supply = <& vcc3v3_sys > ;
+ vcc3-supply = <& vcc3v3_sys > ;
+ vcc4-supply = <& vcc3v3_sys > ;
+ vcc5-supply = <& vcc3v3_sys > ;
+ vcc6-supply = <& vcc3v3_sys > ;
+ vcc7-supply = <& vcc3v3_sys > ;
+ vcc8-supply = <& vcc3v3_sys > ;
+ vcc9-supply = <& vcc3v3_sys > ;
+
+ regulators {
+ vdd_logic : DCDC_REG1 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 500000 > ;
+ regulator-max-microvolt = < 1350000 > ;
+ regulator-init-microvolt = < 900000 > ;
+ regulator-ramp-delay = < 6001 > ;
+ regulator-initial-mode = < 0x2 > ;
+ regulator-name = "vdd_logic" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vdd_gpu : DCDC_REG2 {
+ regulator-min-microvolt = < 500000 > ;
+ regulator-max-microvolt = < 1350000 > ;
+ regulator-init-microvolt = < 900000 > ;
+ regulator-ramp-delay = < 6001 > ;
+ regulator-initial-mode = < 0x2 > ;
+ regulator-name = "vdd_gpu" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc_ddr : DCDC_REG3 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-initial-mode = < 0x2 > ;
+ regulator-name = "vcc_ddr" ;
+ regulator-state-mem {
+ regulator-on-in-suspend ;
+ };
+ };
+
+ vdd_npu : DCDC_REG4 {
+ regulator-min-microvolt = < 500000 > ;
+ regulator-max-microvolt = < 1350000 > ;
+ regulator-init-microvolt = < 900000 > ;
+ regulator-ramp-delay = < 6001 > ;
+ regulator-initial-mode = < 0x2 > ;
+ regulator-name = "vdd_npu" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc_1v8 : DCDC_REG5 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 1800000 > ;
+ regulator-name = "vcc_1v8" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vdda0v9_image : LDO_REG1 {
+ regulator-min-microvolt = < 900000 > ;
+ regulator-max-microvolt = < 900000 > ;
+ regulator-name = "vdda0v9_image" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vdda_0v9 : LDO_REG2 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 900000 > ;
+ regulator-max-microvolt = < 900000 > ;
+ regulator-name = "vdda_0v9" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vdda0v9_pmu : LDO_REG3 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 900000 > ;
+ regulator-max-microvolt = < 900000 > ;
+ regulator-name = "vdda0v9_pmu" ;
+ regulator-state-mem {
+ regulator-on-in-suspend ;
+ regulator-suspend-microvolt = < 900000 > ;
+ };
+ };
+
+ vccio_acodec : LDO_REG4 {
+ regulator-min-microvolt = < 3300000 > ;
+ regulator-max-microvolt = < 3300000 > ;
+ regulator-name = "vccio_acodec" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vccio_sd : LDO_REG5 {
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 3300000 > ;
+ regulator-name = "vccio_sd" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc3v3_pmu : LDO_REG6 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 3300000 > ;
+ regulator-max-microvolt = < 3300000 > ;
+ regulator-name = "vcc3v3_pmu" ;
+ regulator-state-mem {
+ regulator-on-in-suspend ;
+ regulator-suspend-microvolt = < 3300000 > ;
+ };
+ };
+
+ vcca_1v8 : LDO_REG7 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 1800000 > ;
+ regulator-name = "vcca_1v8" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcca1v8_pmu : LDO_REG8 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 1800000 > ;
+ regulator-name = "vcca1v8_pmu" ;
+ regulator-state-mem {
+ regulator-on-in-suspend ;
+ regulator-suspend-microvolt = < 1800000 > ;
+ };
+ };
+
+ vcca1v8_image : LDO_REG9 {
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 1800000 > ;
+ regulator-name = "vcca1v8_image" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc_3v3 : SWITCH_REG1 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-name = "vcc_3v3" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc3v3_sd : SWITCH_REG2 {
+ regulator-name = "vcc3v3_sd" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+ };
+ };
+ };
+
& mdio0 {
rgmii_phy0 : ethernet-phy @ 0 {
compatible = "ethernet-phy-ieee802.3-c22" ; @@ -124,6 +321,15 @@
};
};
+ & pinctrl {
+ pmic {
+ pmic_int : pmic_int {
+ rockchip , pins =
+ < 0 RK_PA3 RK_FUNC_GPIO & pcfg_pull_up > ;
+ };
+ };
+ };
+
& sdhci {
bus-width = < 8 > ;
max-frequency = < 200000000 > ; --
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
index 3e90a8832bb9..834863940eba 100644
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi @@ -203,6 +203,11 @@
pmugrf : syscon @ fdc20000 {
compatible = "rockchip,rk3568-pmugrf" , "syscon" , "simple-mfd" ;
reg = < 0x0 0xfdc20000 0x0 0x10000 > ;
+
+ pmu_io_domains : io-domains {
+ compatible = "rockchip,rk3568-pmu-io-voltage-domain" ;
+ status = "disabled" ;
+ };
};
grf : syscon @ fdc60000 { --
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index f682144a1892..f3fd4a6813a2 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -330,6 +330,19 @@
};
};
+ & pmu_io_domains {
+ pmuio1-supply = <& vcc3v3_pmu > ;
+ pmuio2-supply = <& vcc3v3_pmu > ;
+ vccio1-supply = <& vccio_acodec > ;
+ vccio2-supply = <& vcc_1v8 > ;
+ vccio3-supply = <& vccio_sd > ;
+ vccio4-supply = <& vcc_1v8 > ;
+ vccio5-supply = <& vcc_3v3 > ;
+ vccio6-supply = <& vcc_1v8 > ;
+ vccio7-supply = <& vcc_3v3 > ;
+ status = "okay" ;
+ };
+
& sdhci {
bus-width = < 8 > ;
max-frequency = < 200000000 > ; --
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index f3fd4a6813a2..3ac70a8183c4 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -16,6 +16,7 @@
aliases {
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ;
+ emmc = & sdhci ;
};
chosen : chosen { @@ -347,6 +348,8 @@
bus-width = < 8 > ;
max-frequency = < 200000000 > ;
non-removable ;
+ pinctrl-names = "default" ;
+ pinctrl-0 = <& emmc_bus8 & emmc_clk & emmc_cmd & emmc_datastrobe > ;
status = "okay" ;
};
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index 3ac70a8183c4..b0f5aa8c979c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -17,6 +17,7 @@
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ;
emmc = & sdhci ;
+ sd = & sdmmc0 ;
};
chosen : chosen { @@ -353,6 +354,20 @@
status = "okay" ;
};
+ & sdmmc0 {
+ bus-width = < 4 > ;
+ cap-sd-highspeed ;
+ cd-gpios = <& gpio0 RK_PA4 GPIO_ACTIVE_LOW > ;
+ disable-wp ;
+ pinctrl-names = "default" ;
+ pinctrl-0 = <& sdmmc0_bus4 & sdmmc0_clk & sdmmc0_cmd & sdmmc0_det > ;
+ sd-uhs-sdr104 ;
+ supports-sd ;
+ vmmc-supply = <& vcc3v3_sd > ;
+ vqmmc-supply = <& vccio_sd > ;
+ status = "okay" ;
+ };
+
& uart2 {
status = "okay" ;
}; --
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Am Dienstag, 3. August 2021, 20:53:08 CEST schrieb Michael Riesch: quoted hunk Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index f3fd4a6813a2..3ac70a8183c4 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -16,6 +16,7 @@
aliases {
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ;
+ emmc = & sdhci ;
what is this supposed to do?
I don't think "emmc" is defined as any form of alias, instead
mmc aliases generally are more "mmcX" for X 0,1,etc .
Heiko
quoted hunk };
chosen: chosen { @@ -347,6 +348,8 @@
bus-width = <8>;
max-frequency = <200000000>;
non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
status = "okay";
};
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Am Dienstag, 3. August 2021, 20:53:09 CEST schrieb Michael Riesch: quoted hunk Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index 3ac70a8183c4..b0f5aa8c979c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -17,6 +17,7 @@
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ;
emmc = & sdhci ;
+ sd = & sdmmc0 ;
same thing as in the previous patch.
I guess you may want something like
mmc0 = &sdhci;
mmc1 = &sdmmc0;
maybe?
Heiko
quoted hunk };
chosen: chosen { @@ -353,6 +354,20 @@
status = "okay";
};
+ &sdmmc0 {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+ disable-wp;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+ sd-uhs-sdr104;
+ supports-sd;
+ vmmc-supply = <&vcc3v3_sd>;
+ vqmmc-supply = <&vccio_sd>;
+ status = "okay";
+ };
+
&uart2 {
status = "okay";
};
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Hi Heiko,
On 8/3/21 10:48 PM, Heiko Stübner wrote: Am Dienstag, 3. August 2021, 20:53:09 CEST schrieb Michael Riesch: quoted Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index 3ac70a8183c4..b0f5aa8c979c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -17,6 +17,7 @@
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ;
emmc = & sdhci ;
+ sd = & sdmmc0 ;
same thing as in the previous patch.
I guess you may want something like
mmc0 = &sdhci;
mmc1 = &sdmmc0;
maybe?
Thanks for the suggestion, I'll include it in the v2.
Regards, Michael
Heiko
quoted };
chosen: chosen { @@ -353,6 +354,20 @@
status = "okay";
};
+ &sdmmc0 {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+ disable-wp;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+ sd-uhs-sdr104;
+ supports-sd;
+ vmmc-supply = <&vcc3v3_sd>;
+ vqmmc-supply = <&vccio_sd>;
+ status = "okay";
+ };
+
&uart2 {
status = "okay";
};
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel