[PATCH V7 3/3] firmware: imx: imx-scu: register build-in child devices

Anson Huang anson.huang at nxp.com
Wed Mar 6 16:46:26 PST 2019


Hi, Guenter

Best Regards!
Anson Huang

> -----Original Message-----
> From: Guenter Roeck [mailto:groeck7 at gmail.com] On Behalf Of Guenter
> Roeck
> Sent: 2019年3月7日 0:06
> To: Anson Huang <anson.huang at nxp.com>; catalin.marinas at arm.com;
> will.deacon at arm.com; shawnguo at kernel.org; s.hauer at pengutronix.de;
> kernel at pengutronix.de; festevam at gmail.com; wim at linux-watchdog.org;
> Andy Gross <andy.gross at linaro.org>; heiko at sntech.de;
> horms+renesas at verge.net.au; arnd at arndb.de;
> maxime.ripard at bootlin.com; jagan at amarulasolutions.com;
> bjorn.andersson at linaro.org; enric.balletbo at collabora.com;
> marc.w.gonzalez at free.fr; olof at lixom.net; Aisheng Dong
> <aisheng.dong at nxp.com>; linux-arm-kernel at lists.infradead.org; linux-
> kernel at vger.kernel.org; linux-watchdog at vger.kernel.org
> Cc: dl-linux-imx <linux-imx at nxp.com>
> Subject: Re: [PATCH V7 3/3] firmware: imx: imx-scu: register build-in child
> devices
> 
> Hi,
> 
> On 3/5/19 5:06 PM, Anson Huang wrote:
> > For some devices which are controlled by system controller, they are
> > NOT present in device tree since no hardware info needed, just
> > register these devices as children of SCU device.
> > This patch registers i.MX system controller watchdog platform device
> > as child device of SCU.
> >
> > Signed-off-by: Anson Huang <Anson.Huang at nxp.com>
> > ---
> > No changes.
> > ---
> >   drivers/firmware/imx/imx-scu.c | 8 ++++++++
> >   1 file changed, 8 insertions(+)
> >
> > diff --git a/drivers/firmware/imx/imx-scu.c
> > b/drivers/firmware/imx/imx-scu.c index 2bb1a19..df75ead 100644
> > --- a/drivers/firmware/imx/imx-scu.c
> > +++ b/drivers/firmware/imx/imx-scu.c
> > @@ -196,6 +196,7 @@ EXPORT_SYMBOL(imx_scu_call_rpc);
> >
> >   static int imx_scu_probe(struct platform_device *pdev)
> >   {
> > +	struct platform_device *child_pdev;
> >   	struct device *dev = &pdev->dev;
> >   	struct imx_sc_ipc *sc_ipc;
> >   	struct imx_sc_chan *sc_chan;
> > @@ -248,6 +249,13 @@ static int imx_scu_probe(struct platform_device
> > *pdev)
> >
> >   	dev_info(dev, "NXP i.MX SCU Initialized\n");
> >
> > +	/* register SCU child devices which are NOT in device tree */
> > +	child_pdev = platform_device_register_data(dev, "imx-sc-wdt",
> > +				PLATFORM_DEVID_NONE, NULL, 0);
> > +	if (IS_ERR(child_pdev))
> > +		dev_warn(dev, "failed to register scu watchdog
> device %ld!\n",
> > +			 PTR_ERR(child_pdev));
> > +
> 
> I just realized ... since this is not a devm_ function, we now also need error
> handling (if devm_of_platform_populate() fails) and a remove function.
> Sorry for that - I should have noticed earlier.

Thanks, I will add error handling here once we make decision of putting device register
here, we have other scenarios may need to have watchdog node in DT, if Rob agree
to have it in DT, this patch will be discarded.

Anson.

> 
> Guenter
> 
> >   	return devm_of_platform_populate(dev);
> >   }
> >
> >



More information about the linux-arm-kernel mailing list