On 2020/02/11 Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote: > On Mon, Feb 10, 2020 at 06:33:30AM +0000, Horia Geanta wrote: > > On 2/10/2020 4:03 AM, Robin Gong wrote: > > > On 2020/02/10 Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote: > > >> On Fri, Feb 07, 2020 at 08:10:22AM +0000, Horia Geanta wrote: > > >>> On 1/30/2020 10:45 PM, André Draszik wrote: > > >>>> @@ -140,6 +148,25 @@ static int imx_snvs_pwrkey_probe(struct > > >> platform_device *pdev) > > >>>> if (pdata->irq < 0) > > >>>> return -EINVAL; > > >>>> > > >>>> + pdata->clk = devm_clk_get(&pdev->dev, "snvs-pwrkey"); > > >>>> + if (IS_ERR(pdata->clk)) { > > >>>> + pdata->clk = NULL; > > >>> Using devm_clk_get_optional() would simplify error handling. > > >> > > >> It sounds to me that this clock is not at all optional and the > > >> driver currently "works" only by accident and therefore optional is not > suitable here. > > > Yes, then we need to add all snvs clk in dts for on legacy i.MX > > > chips in this patchset to avoid any potential function broken. > > How many are there? I am not too terribly opposed of having the driver handle > missing clk if there are very many legacy DTSes out there. But then we need to > handle it properly (i.e. current iteration does not handle referral properly for > example). There are four dtsi which have clock support in snvs-rtc including i.mx7s/i.mx8mq/8mm/8mn. So for this patch set, it's better update i.mx8mX dtsi except i.mx7s. > > > In that case the DT binding should be updated too, to make the clock > > mandatory. > > I think this should be done in either case, as as far I understand the part can not > function without the clock and it worked purely by chance on some systems as > something else was turning the clock on. Yes, for all chips snvs clk management added, snvs clock also has to been add in snvs_pwrkey dts, but for others legacy chips like i.mx6X which have no snvs clk management, snvs clock is always on, so no need such clk in snvs_pwrkey dts either, optional is better. > > Thanks. > > -- > Dmitry