[PATCH v2 11/35] mtd: spi-nor: winbond: Use manufacturer late_init() for OTP ops

Tudor Ambarus
2021-07-27T05:19:37Z

OTP info is not yet discoverable via SFDP, use late_init() to init
the OTP ops.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
---
drivers/mtd/spi-nor/winbond.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/spi-nor/winbond.c b/drivers/mtd/spi-nor/winbond.c
index 96573f61caf5..6be45d2291c6 100644
--- a/drivers/mtd/spi-nor/winbond.c
+++ b/drivers/mtd/spi-nor/winbond.c
@@ -147,17 +147,22 @@ static const struct spi_nor_otp_ops winbond_otp_ops = {
static void winbond_default_init(struct spi_nor *nor)
{
nor->params->set_4byte_addr_mode = winbond_set_4byte_addr_mode;
- if (nor->params->otp.org->n_regions)
- nor->params->otp.ops = &winbond_otp_ops;
}

static const struct spi_nor_fixups winbond_fixups = {
.default_init = winbond_default_init,
};

+static void winbond_late_init(struct spi_nor *nor)
+{
+ if (nor->params->otp.org->n_regions)
+ nor->params->otp.ops = &winbond_otp_ops;
+}
+
const struct spi_nor_manufacturer spi_nor_winbond = {
.name = "winbond",
.parts = winbond_parts,
.nparts = ARRAY_SIZE(winbond_parts),
.fixups = &winbond_fixups,
+ .late_init = winbond_late_init,
};
--
2.25.1