RK3328 / Rock64 eMMC regression
Huang-Huang Bao
i at eh5.me
Mon Jul 8 20:06:06 PDT 2024
Hi Richard,
I think I have figured out where the problem is, the wrong IOMUX_WIDTH_
flag(0) caused all pinmux offsets after GPIO2-B to be calculated wrong.
The patch below should fixes the issue.
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 3f56991f5b89..f6da91941fbd 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -3813,7 +3813,7 @@ static struct rockchip_pin_bank rk3328_pin_banks[] = {
PIN_BANK_IOMUX_FLAGS(0, 32, "gpio0", 0, 0, 0, 0),
PIN_BANK_IOMUX_FLAGS(1, 32, "gpio1", 0, 0, 0, 0),
PIN_BANK_IOMUX_FLAGS(2, 32, "gpio2", 0,
- 0,
+ IOMUX_WIDTH_2BIT,
IOMUX_WIDTH_3BIT,
0),
PIN_BANK_IOMUX_FLAGS(3, 32, "gpio3",
Please let me know if this works. I will send a formal patch later.
Sorry for the incident,
Bao
On 7/8/24 02:45, richard at kojedz.in wrote:
> Dear developers,
>
> I am using a Rock64 board with an emmc module. I've upgraded kernel from
> 5.15.161 to .162, and since then the board wont boot up. Kernel messages
> show:
>
> [ 49.117131] mmc1: switch to bus width 8 failed
> [ 49.124709] mmc1: mmc_select_hs200 failed, error -110
> [ 49.125190] mmc1: error -110 whilst initialising MMC card
> [ 49.139566] mmc_host mmc1: Bus speed (slot 0) = 300000Hz (slot req
> 300000Hz, actual 300000HZ div = 0)
> [ 105.437111] mmc1: switch to bus width 8 failed
> [ 105.446739] mmc1: mmc_select_hs200 failed, error -110
> [ 105.447246] mmc1: error -110 whilst initialising MMC card
> [ 105.461639] mmc_host mmc1: Bus speed (slot 0) = 200000Hz (slot req
> 200000Hz, actual 200000HZ div = 0)
>
> I am using rk3328-rock64.dts from the kernel.
>
> Bisecting the kernel revealed 96903ed0e846 as first bad commit.
> Reverting this commit on top of v5.15.162 makes my board bootup again.
>
> Can you please take a look?
>
> Thanks in advance,
> Richard
More information about the Linux-rockchip
mailing list