On Tue, 2 Mar 2021 at 08:48, Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> wrote: > > sdhci based synopsys MMC IP is also used on some rockchip platforms, > so add a basic support here. > > Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> > --- > > drivers/mmc/host/sdhci-of-dwcmshc.c | 220 ++++++++++++++++++++++++++++++++++-- > 1 file changed, 213 insertions(+), 7 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c > index 59d8d96..959084c 100644 > --- a/drivers/mmc/host/sdhci-of-dwcmshc.c > +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c [...] > +static int rockchip_pltf_init(struct sdhci_host *host, struct dwcmshc_priv *priv) > +{ > + int err; > + > + priv->rockchip_clks[0].id = "axi"; > + priv->rockchip_clks[1].id = "block"; > + priv->rockchip_clks[2].id = "timer"; > + err = devm_clk_bulk_get_optional(mmc_dev(host->mmc), ROCKCHIP_MAX_CLKS, > + priv->rockchip_clks); These clocks need to be properly described in the DT docs. > + if (err) { > + dev_err(mmc_dev(host->mmc), "failed to get clocks %d\n", err); > + return err; > + } > + > + err = clk_bulk_prepare_enable(ROCKCHIP_MAX_CLKS, priv->rockchip_clks); > + if (err) { > + dev_err(mmc_dev(host->mmc), "failed to enable clocks %d\n", err); > + return err; > + } > + > + if (of_property_read_u32(mmc_dev(host->mmc)->of_node, "rockchip,txclk-tapnum", > + &priv->txclk_tapnum)) > + priv->txclk_tapnum = DLL_TXCLK_TAPNUM_DEFAULT; > + > + /* Disable cmd conflict check */ > + sdhci_writel(host, 0x0, DWCMSHC_HOST_CTRL3); > + /* Reset previous settings */ > + sdhci_writel(host, 0, DWCMSHC_EMMC_DLL_TXCLK); > + sdhci_writel(host, 0, DWCMSHC_EMMC_DLL_STRBIN); > + > + return 0; > +} > + > +static const struct of_device_id sdhci_dwcmshc_dt_ids[] = { > + { > + .compatible = "snps,dwcmshc-sdhci", > + .data = &sdhci_dwcmshc_pdata, > + }, > + { > + .compatible = "rockchip,dwcmshc-sdhci", > + .data = &sdhci_dwcmshc_rk_pdata, > + }, > + {}, > +}; Speaking about DT docs. I have recently started to reject changes to existing txt based DT docs. Can you plese convert the existing DT bindings into the yaml formal - and then add the new compatible for the new Rockchip variant on top? [...] Kind regards Uffe