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