Hello, liang.yang@xxxxxxxxxxx wrote on Mon, 18 Apr 2022 11:40:10 +0800: > Hi Miquel, > > i have some confusion when i prepare the patches. for DT compatibility, it falls back to the old DT when failed to get resource by the new DT, but there is some points: > a. old DT depends on MMC sub clock driver, but it never be merged, so it can't work. I don't get what you mean here, sorry. I believe there is a new way to describe this clock but grabbing the one from the MMC still works, does not it? > b. if it falls back to the old DT, beside the regmap lookup below, it seems that we have to preserve the code of the old clock setting in nfc_clk_init(). Yes, probably. > do we still need to avoid break DT compatibility? We should try our best to avoid breaking the DT, yes. > > Thanks. > > On 2022/4/11 10:40, Liang Yang wrote: > >>> nfc->dev = dev; > >>> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > >>> - nfc->reg_base = devm_ioremap_resource(dev, res); > >>> + nfc->reg_base = devm_platform_ioremap_resource_byname(pdev, "nfc"); > >> > >> This change seems unrelated. > > > > To be consistent with the following > devm_platform_ioremap_resource_byname(pdev, "emmc"). do you mean that we > don't need it?> > >>> if (IS_ERR(nfc->reg_base)) > >>> return PTR_ERR(nfc->reg_base); > >>> - nfc->reg_clk = > >>> - syscon_regmap_lookup_by_phandle(dev->of_node, > >>> - "amlogic,mmc-syscon"); > >>> - if (IS_ERR(nfc->reg_clk)) { > >>> - dev_err(dev, "Failed to lookup clock base\n"); > >>> - return PTR_ERR(nfc->reg_clk); > >>> - } > >>> + nfc->sd_emmc_clock = devm_platform_ioremap_resource_byname(pdev, >>> "emmc"); > >>> + if (IS_ERR(nfc->sd_emmc_clock)) > >>> + return PTR_ERR(nfc->sd_emmc_clock); > >> > >> While I agree this is much better than the previous solution, we cannot > >> break DT compatibility, so you need to try getting the emmc clock, but > >> if it fails you should fallback to the regmap lookup. > > > > ok, i will fix it next version. thanks. > > > >> > >>> irq = platform_get_irq(pdev, 0); Thanks, Miquèl