> +
> +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.