On 7/10/23 22:00, David Hewitt wrote: > This is required for correct booting of the PINE64 PineTab2. If > PWREN is pulled high on this device, the SD card cannot be detected. > > This is required in other PINE64 devices (e.g. Quartz64 Model A) too. > > See commit ba33172a36f298641f51a5e6b855c3e89e3f5d3e in > https://github.com/CounterPillow/u-boot-quartz64 > > Signed-off-by: David Hewitt <davidmhew...@gmail.com> > Cc: Simon Glass <s...@chromium.org> > Cc: Philipp Tomsich <philipp.toms...@vrull.eu> > Cc: Kever Yang <kever.y...@rock-chips.com> > Cc: Peng Fan <peng....@nxp.com> > Cc: Jaehoon Chung <jh80.ch...@samsung.com>
Reviewed-by: Jaehoon Chung <jh80.ch...@samsung.com> Best Regards, Jaehoon Chung > --- > Changes for v2: > - Removed an unrelated change > > drivers/mmc/dw_mmc.c | 3 ++- > drivers/mmc/rockchip_dw_mmc.c | 3 +++ > include/dwmmc.h | 1 + > 3 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c > index 5085a3b491..cb1d99132f 100644 > --- a/drivers/mmc/dw_mmc.c > +++ b/drivers/mmc/dw_mmc.c > @@ -530,7 +530,8 @@ static int dwmci_init(struct mmc *mmc) > if (host->board_init) > host->board_init(host); > > - dwmci_writel(host, DWMCI_PWREN, 1); > + if (!(host->quirks & DWMCI_QUIRK_DISABLE_PWREN)) > + dwmci_writel(host, DWMCI_PWREN, 1); > > if (!dwmci_wait_reset(host, DWMCI_RESET_ALL)) { > debug("%s[%d] Fail-reset!!\n", __func__, __LINE__); > diff --git a/drivers/mmc/rockchip_dw_mmc.c b/drivers/mmc/rockchip_dw_mmc.c > index 72c820ee63..af6ac59a46 100644 > --- a/drivers/mmc/rockchip_dw_mmc.c > +++ b/drivers/mmc/rockchip_dw_mmc.c > @@ -78,6 +78,9 @@ static int rockchip_dwmmc_of_to_plat(struct udevice *dev) > else > host->dev_index = 1; > > + if (dev_read_bool(dev, "rockchip,disable-pwren-quirk")) > + host->quirks |= DWMCI_QUIRK_DISABLE_PWREN; > + > priv->fifo_depth = dev_read_u32_default(dev, "fifo-depth", 0); > > if (priv->fifo_depth < 0) > diff --git a/include/dwmmc.h b/include/dwmmc.h > index 136a95b8cd..98aebb46f1 100644 > --- a/include/dwmmc.h > +++ b/include/dwmmc.h > @@ -141,6 +141,7 @@ > > /* quirks */ > #define DWMCI_QUIRK_DISABLE_SMU (1 << 0) > +#define DWMCI_QUIRK_DISABLE_PWREN (1 << 1) > > /** > * struct dwmci_host - Information about a designware MMC host