Message ID | 20241203-mb85rs128ty-v2-1-42df3e7ff147@pengutronix.de |
---|---|
State | New |
Headers | show |
Series | Add support for Fujitsu MB85RS128TY | expand |
Hello Jonas, On 03.12.24 10:37, Jonas Rebmann wrote: > From: David Jander <david@protonic.nl> > > The 48L640 resets the WEL bit (the Write Enable Latch bit in the status > register) to zero on the completion of write operations. In preparation > to support chips behaving differently, introduce .auto_disable_wel > capability, and, if it's missing, explicitly reset the WEL bit after > writes. > > Signed-off-by: David Jander <david@protonic.nl> > Signed-off-by: Jonas Rebmann <jre@pengutronix.de> > --- > drivers/mtd/devices/mchp48l640.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) Reviewed-by: Heiko Schocher <hs@denx.de> Thanks! bye, Heiko
diff --git a/drivers/mtd/devices/mchp48l640.c b/drivers/mtd/devices/mchp48l640.c index f576e6a890e859e7d20aeeb2ede4ca0acf4850fc..4cdd24aaed416fc7e40a8060b5c7eaf6684fc6d5 100644 --- a/drivers/mtd/devices/mchp48l640.c +++ b/drivers/mtd/devices/mchp48l640.c @@ -27,6 +27,7 @@ struct mchp48_caps { unsigned int size; unsigned int page_size; + bool auto_disable_wel; }; struct mchp48l640_flash { @@ -194,9 +195,15 @@ static int mchp48l640_write_page(struct mtd_info *mtd, loff_t to, size_t len, else goto fail; - ret = mchp48l640_waitforbit(flash, MCHP48L640_STATUS_WEL, false); - if (ret) - goto fail; + if (flash->caps->auto_disable_wel) { + ret = mchp48l640_waitforbit(flash, MCHP48L640_STATUS_WEL, false); + if (ret) + goto fail; + } else { + ret = mchp48l640_write_prepare(flash, false); + if (ret) + goto fail; + } kfree(cmd); return 0; @@ -293,6 +300,7 @@ static int mchp48l640_read(struct mtd_info *mtd, loff_t from, size_t len, static const struct mchp48_caps mchp48l640_caps = { .size = SZ_8K, .page_size = 32, + .auto_disable_wel = true, }; static int mchp48l640_probe(struct spi_device *spi)