diff mbox series

rockchip: rk3568-generic: Enable eMMC HS200 mode

Message ID 20240131220716.117135-1-jonas@kwiboo.se
State Accepted
Commit 363cbd578169d65ef900d4585d0fbff3cc558002
Delegated to: Kever Yang
Headers show
Series rockchip: rk3568-generic: Enable eMMC HS200 mode | expand

Commit Message

Jonas Karlman Jan. 31, 2024, 10:07 p.m. UTC
Writing to eMMC using HS200 mode work more reliably then other modes on
RK356x boards.

Add device tree props and enable Kconfig options for eMMC HS200 mode on
the generic RK3566/RK3568 board. Also enable the pinctrl driver in SPL
and add missing rk3568-generic.dtb to Makefile.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
This patch depends on the following series:
- rockchip: rk35xx: Sync device tree with linux v6.8-rc1 [1]
- rockchip: rk35xx: Fix writing to eMMC [2]

[1] https://patchwork.ozlabs.org/cover/1891669/
[2] https://patchwork.ozlabs.org/cover/1891692/
---
 arch/arm/dts/Makefile            |  1 +
 arch/arm/dts/rk3568-generic.dts  | 12 +++++++++++-
 configs/generic-rk3568_defconfig |  5 ++++-
 3 files changed, 16 insertions(+), 2 deletions(-)

Comments

Kever Yang Feb. 5, 2024, 7:05 a.m. UTC | #1
On 2024/2/1 06:07, Jonas Karlman wrote:
> Writing to eMMC using HS200 mode work more reliably then other modes on
> RK356x boards.
>
> Add device tree props and enable Kconfig options for eMMC HS200 mode on
> the generic RK3566/RK3568 board. Also enable the pinctrl driver in SPL
> and add missing rk3568-generic.dtb to Makefile.
>
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
> This patch depends on the following series:
> - rockchip: rk35xx: Sync device tree with linux v6.8-rc1 [1]
> - rockchip: rk35xx: Fix writing to eMMC [2]
>
> [1] https://patchwork.ozlabs.org/cover/1891669/
> [2] https://patchwork.ozlabs.org/cover/1891692/
> ---
>   arch/arm/dts/Makefile            |  1 +
>   arch/arm/dts/rk3568-generic.dts  | 12 +++++++++++-
>   configs/generic-rk3568_defconfig |  5 ++++-
>   3 files changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 50f35e3db3f0..0fcae77cefe3 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -181,6 +181,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \
>   	rk3566-soquartz-model-a.dtb \
>   	rk3568-bpi-r2-pro.dtb \
>   	rk3568-evb.dtb \
> +	rk3568-generic.dtb \
>   	rk3568-lubancat-2.dtb \
>   	rk3568-nanopi-r5c.dtb \
>   	rk3568-nanopi-r5s.dtb \
> diff --git a/arch/arm/dts/rk3568-generic.dts b/arch/arm/dts/rk3568-generic.dts
> index 1006ea55bb98..88eb1bfd2aab 100644
> --- a/arch/arm/dts/rk3568-generic.dts
> +++ b/arch/arm/dts/rk3568-generic.dts
> @@ -10,7 +10,12 @@
>   	model = "Generic RK3566/RK3568";
>   	compatible = "rockchip,rk3568";
>   
> -	chosen: chosen {
> +	aliases {
> +		mmc0 = &sdhci;
> +		mmc1 = &sdmmc;
> +	};
> +
> +	chosen {
>   		stdout-path = "serial2:1500000n8";
>   	};
>   };
> @@ -18,6 +23,9 @@
>   &sdhci {
>   	bus-width = <8>;
>   	cap-mmc-highspeed;
> +	mmc-hs200-1_8v;
> +	no-sd;
> +	no-sdio;
>   	non-removable;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
> @@ -28,6 +36,8 @@
>   	bus-width = <4>;
>   	cap-sd-highspeed;
>   	disable-wp;
> +	no-mmc;
> +	no-sdio;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd>;
>   	status = "okay";
> diff --git a/configs/generic-rk3568_defconfig b/configs/generic-rk3568_defconfig
> index 8f0a9c8c449f..18a62b0033a0 100644
> --- a/configs/generic-rk3568_defconfig
> +++ b/configs/generic-rk3568_defconfig
> @@ -42,7 +42,7 @@ CONFIG_CMD_MMC=y
>   # CONFIG_SPL_DOS_PARTITION is not set
>   CONFIG_SPL_OF_CONTROL=y
>   CONFIG_OF_LIVE=y
> -CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
> +CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
>   CONFIG_SPL_DM_SEQ_ALIAS=y
>   CONFIG_SPL_REGMAP=y
>   CONFIG_SPL_SYSCON=y
> @@ -51,11 +51,14 @@ CONFIG_ROCKCHIP_GPIO=y
>   CONFIG_MISC=y
>   # CONFIG_ROCKCHIP_IODOMAIN is not set
>   CONFIG_SUPPORT_EMMC_RPMB=y
> +CONFIG_MMC_HS200_SUPPORT=y
> +CONFIG_SPL_MMC_HS200_SUPPORT=y
>   CONFIG_MMC_DW=y
>   CONFIG_MMC_DW_ROCKCHIP=y
>   CONFIG_MMC_SDHCI=y
>   CONFIG_MMC_SDHCI_SDMA=y
>   CONFIG_MMC_SDHCI_ROCKCHIP=y
> +CONFIG_SPL_PINCTRL=y
>   CONFIG_SPL_RAM=y
>   CONFIG_BAUDRATE=1500000
>   CONFIG_DEBUG_UART_SHIFT=2
diff mbox series

Patch

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 50f35e3db3f0..0fcae77cefe3 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -181,6 +181,7 @@  dtb-$(CONFIG_ROCKCHIP_RK3568) += \
 	rk3566-soquartz-model-a.dtb \
 	rk3568-bpi-r2-pro.dtb \
 	rk3568-evb.dtb \
+	rk3568-generic.dtb \
 	rk3568-lubancat-2.dtb \
 	rk3568-nanopi-r5c.dtb \
 	rk3568-nanopi-r5s.dtb \
diff --git a/arch/arm/dts/rk3568-generic.dts b/arch/arm/dts/rk3568-generic.dts
index 1006ea55bb98..88eb1bfd2aab 100644
--- a/arch/arm/dts/rk3568-generic.dts
+++ b/arch/arm/dts/rk3568-generic.dts
@@ -10,7 +10,12 @@ 
 	model = "Generic RK3566/RK3568";
 	compatible = "rockchip,rk3568";
 
-	chosen: chosen {
+	aliases {
+		mmc0 = &sdhci;
+		mmc1 = &sdmmc;
+	};
+
+	chosen {
 		stdout-path = "serial2:1500000n8";
 	};
 };
@@ -18,6 +23,9 @@ 
 &sdhci {
 	bus-width = <8>;
 	cap-mmc-highspeed;
+	mmc-hs200-1_8v;
+	no-sd;
+	no-sdio;
 	non-removable;
 	pinctrl-names = "default";
 	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
@@ -28,6 +36,8 @@ 
 	bus-width = <4>;
 	cap-sd-highspeed;
 	disable-wp;
+	no-mmc;
+	no-sdio;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd>;
 	status = "okay";
diff --git a/configs/generic-rk3568_defconfig b/configs/generic-rk3568_defconfig
index 8f0a9c8c449f..18a62b0033a0 100644
--- a/configs/generic-rk3568_defconfig
+++ b/configs/generic-rk3568_defconfig
@@ -42,7 +42,7 @@  CONFIG_CMD_MMC=y
 # CONFIG_SPL_DOS_PARTITION is not set
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_OF_LIVE=y
-CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_SPL_REGMAP=y
 CONFIG_SPL_SYSCON=y
@@ -51,11 +51,14 @@  CONFIG_ROCKCHIP_GPIO=y
 CONFIG_MISC=y
 # CONFIG_ROCKCHIP_IODOMAIN is not set
 CONFIG_SUPPORT_EMMC_RPMB=y
+CONFIG_MMC_HS200_SUPPORT=y
+CONFIG_SPL_MMC_HS200_SUPPORT=y
 CONFIG_MMC_DW=y
 CONFIG_MMC_DW_ROCKCHIP=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_MMC_SDHCI_ROCKCHIP=y
+CONFIG_SPL_PINCTRL=y
 CONFIG_SPL_RAM=y
 CONFIG_BAUDRATE=1500000
 CONFIG_DEBUG_UART_SHIFT=2