Re: [PATCH v2 1/2] nvmem: Add driver for OCOTP in Sunplus SP7021

From: 施錕鴻
Date: Wed Dec 15 2021 - 04:43:16 EST


hello

Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> 於 2021年12月14日 週二 下午5:08寫道:
>
>
>
> On 10/12/2021 08:50, 施錕鴻 wrote:
> >
> > > +
> > > +static const struct of_device_id sp_ocotp_dt_ids[] = {
> > > + { .compatible = "sunplus,sp7021-ocotp", .data = &sp_otp_v0 },
> > > + { }
> > > +};
> > > +MODULE_DEVICE_TABLE(of, sp_ocotp_dt_ids);
> > > +
> > > +static struct platform_driver sp_otp_driver = {
> > > + .probe = sp_ocotp_probe,
> > > + .driver = {
> > > + .name = "sunplus,sp7021-ocotp",
> > > + .of_match_table = sp_ocotp_dt_ids,
> > > + }
> > > +};
> > > +
> > > +static int __init sp_otp0_drv_new(void)
> > > +{
> > > + return platform_driver_register(&sp_otp_driver);
> > > +}
> > > +subsys_initcall(sp_otp0_drv_new);
> >
> > Why this needs to be subsys_initcall() why can't it be module_init?
> >
> > The OTP driver will store the mac address for ethernet driver and usb2
> > disconnect voltage
> > for usb2 one. Therefore the order of the OTP driver should take higher
> > priority over the
> > other ones.
>
> drivers that are looking for mac address or other values from nvmem
> should get an EPROBE_DEFER if nvmem provider is not ready.
>
> does that not work for you?
>
>
> --srini

After modification and verification, I found the algorithm of
EPROBE_DEFER worked.
I will replace subsys_initcall() with module_init() for the driver.
Thanks for your review.