arm64: dts: rockchip: limit clock rate of eMMC for rk3328 boards
diff mbox series

Message ID 1567068062-174383-1-git-send-email-shawn.lin@rock-chips.com
State New
Headers show
Series
  • arm64: dts: rockchip: limit clock rate of eMMC for rk3328 boards
Related show

Commit Message

Shawn Lin Aug. 29, 2019, 8:41 a.m. UTC
max-frequency is missing for rk3328-evb and rk3328-rock64, so the
eMMC will run into 200MHz bus clock in HS200 mode. The IO can only
support up to 150MHz for rk3228 Soc, so now rk3328 boards are not
always boot properly.

Fixes: 955bebde057e ("arm64: dts: rockchip: add rk3328-rock64 board")
Fixes: 0c1f8546753f ("arm64: dts: rockchip: add RK3328 eavluation board devicetree")
Cc: Liang Chen <cl@rock-chips.com>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

 arch/arm64/boot/dts/rockchip/rk3328-evb.dts    | 1 +
 arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 1 +
 2 files changed, 2 insertions(+)

Comments

Robin Murphy Aug. 29, 2019, 11:18 a.m. UTC | #1
On 29/08/2019 09:41, Shawn Lin wrote:
> max-frequency is missing for rk3328-evb and rk3328-rock64, so the
> eMMC will run into 200MHz bus clock in HS200 mode. The IO can only
> support up to 150MHz for rk3228 Soc, so now rk3328 boards are not
> always boot properly.

Hmm, if 150MHz is a fundamental limitation of the SoC, maybe we should 
just add it to the .dtsi? Board-level files could still override it with 
a lower value if need be, but it would obviate the worry of missing it 
when adding new boards.

Robin.

> Fixes: 955bebde057e ("arm64: dts: rockchip: add rk3328-rock64 board")
> Fixes: 0c1f8546753f ("arm64: dts: rockchip: add RK3328 eavluation board devicetree")
> Cc: Liang Chen <cl@rock-chips.com>
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
> 
>   arch/arm64/boot/dts/rockchip/rk3328-evb.dts    | 1 +
>   arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 1 +
>   2 files changed, 2 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3328-evb.dts b/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
> index 49c4b96..a5d8b0c 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
> @@ -73,6 +73,7 @@
>   &emmc {
>   	bus-width = <8>;
>   	cap-mmc-highspeed;
> +	max-frequency = <150000000>;
>   	non-removable;
>   	pinctrl-names = "default";
>   	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
> diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
> index 62936b4..e99e22e 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
> @@ -132,6 +132,7 @@
>   &emmc {
>   	bus-width = <8>;
>   	cap-mmc-highspeed;
> +	max-frequency = <150000000>;
>   	mmc-hs200-1_8v;
>   	non-removable;
>   	pinctrl-names = "default";
>

Patch
diff mbox series

diff --git a/arch/arm64/boot/dts/rockchip/rk3328-evb.dts b/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
index 49c4b96..a5d8b0c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
@@ -73,6 +73,7 @@ 
 &emmc {
 	bus-width = <8>;
 	cap-mmc-highspeed;
+	max-frequency = <150000000>;
 	non-removable;
 	pinctrl-names = "default";
 	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
index 62936b4..e99e22e 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
@@ -132,6 +132,7 @@ 
 &emmc {
 	bus-width = <8>;
 	cap-mmc-highspeed;
+	max-frequency = <150000000>;
 	mmc-hs200-1_8v;
 	non-removable;
 	pinctrl-names = "default";