Message ID | 20210521194034.15249-3-michael@walle.cc |
---|---|
State | Superseded |
Delegated to: | Vignesh R |
Headers | show |
Series | mtd: spi-nor: otp: 4 byte mode fix and erase support | expand |
On 5/21/21 10:40 PM, Michael Walle wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > Use the wording as used in the datasheet to describe the access methods > of the security registers (aka OTP storage). This will also match the > function names. > > Signed-off-by: Michael Walle <michael@walle.cc> > Reviewed-by: Pratyush Yadav <p.yadav@ti.com> Reviewed-by: Tudor Ambarus <tudor.ambarus@microchip.com> > --- > drivers/mtd/spi-nor/otp.c | 27 +++++++++++++++++++-------- > 1 file changed, 19 insertions(+), 8 deletions(-) > > diff --git a/drivers/mtd/spi-nor/otp.c b/drivers/mtd/spi-nor/otp.c > index 91a4c510ed51..3898ed67ba1c 100644 > --- a/drivers/mtd/spi-nor/otp.c > +++ b/drivers/mtd/spi-nor/otp.c > @@ -15,14 +15,21 @@ > #define spi_nor_otp_n_regions(nor) ((nor)->params->otp.org->n_regions) > > /** > - * spi_nor_otp_read_secr() - read OTP data > + * spi_nor_otp_read_secr() - read security register > * @nor: pointer to 'struct spi_nor' > * @addr: offset to read from > * @len: number of bytes to read > * @buf: pointer to dst buffer > * > - * Read OTP data from one region by using the SPINOR_OP_RSECR commands. This > - * method is used on GigaDevice and Winbond flashes. > + * Read a security register by using the SPINOR_OP_RSECR commands. > + * > + * In Winbond/GigaDevice datasheets the term "security register" stands for > + * an one-time-programmable memory area, consisting of multiple bytes (usually > + * 256). Thus one "security register" maps to one OTP region. > + * > + * This method is used on GigaDevice and Winbond flashes. > + * > + * Please note, the read must not span multiple registers. > * > * Return: number of bytes read successfully, -errno otherwise > */ > @@ -56,16 +63,20 @@ int spi_nor_otp_read_secr(struct spi_nor *nor, loff_t addr, size_t len, u8 *buf) > } > > /** > - * spi_nor_otp_write_secr() - write OTP data > + * spi_nor_otp_write_secr() - write security register > * @nor: pointer to 'struct spi_nor' > * @addr: offset to write to > * @len: number of bytes to write > * @buf: pointer to src buffer > * > - * Write OTP data to one region by using the SPINOR_OP_PSECR commands. This > - * method is used on GigaDevice and Winbond flashes. > + * Write a security register by using the SPINOR_OP_PSECR commands. > + * > + * For more information on the term "security register", see the documentation > + * of spi_nor_otp_read_secr(). > + * > + * This method is used on GigaDevice and Winbond flashes. > * > - * Please note, the write must not span multiple OTP regions. > + * Please note, the write must not span multiple registers. > * > * Return: number of bytes written successfully, -errno otherwise > */ > @@ -88,7 +99,7 @@ int spi_nor_otp_write_secr(struct spi_nor *nor, loff_t addr, size_t len, > > /* > * We only support a write to one single page. For now all winbond > - * flashes only have one page per OTP region. > + * flashes only have one page per security register. > */ > ret = spi_nor_write_enable(nor); > if (ret) > -- > 2.20.1 >
diff --git a/drivers/mtd/spi-nor/otp.c b/drivers/mtd/spi-nor/otp.c index 91a4c510ed51..3898ed67ba1c 100644 --- a/drivers/mtd/spi-nor/otp.c +++ b/drivers/mtd/spi-nor/otp.c @@ -15,14 +15,21 @@ #define spi_nor_otp_n_regions(nor) ((nor)->params->otp.org->n_regions) /** - * spi_nor_otp_read_secr() - read OTP data + * spi_nor_otp_read_secr() - read security register * @nor: pointer to 'struct spi_nor' * @addr: offset to read from * @len: number of bytes to read * @buf: pointer to dst buffer * - * Read OTP data from one region by using the SPINOR_OP_RSECR commands. This - * method is used on GigaDevice and Winbond flashes. + * Read a security register by using the SPINOR_OP_RSECR commands. + * + * In Winbond/GigaDevice datasheets the term "security register" stands for + * an one-time-programmable memory area, consisting of multiple bytes (usually + * 256). Thus one "security register" maps to one OTP region. + * + * This method is used on GigaDevice and Winbond flashes. + * + * Please note, the read must not span multiple registers. * * Return: number of bytes read successfully, -errno otherwise */ @@ -56,16 +63,20 @@ int spi_nor_otp_read_secr(struct spi_nor *nor, loff_t addr, size_t len, u8 *buf) } /** - * spi_nor_otp_write_secr() - write OTP data + * spi_nor_otp_write_secr() - write security register * @nor: pointer to 'struct spi_nor' * @addr: offset to write to * @len: number of bytes to write * @buf: pointer to src buffer * - * Write OTP data to one region by using the SPINOR_OP_PSECR commands. This - * method is used on GigaDevice and Winbond flashes. + * Write a security register by using the SPINOR_OP_PSECR commands. + * + * For more information on the term "security register", see the documentation + * of spi_nor_otp_read_secr(). + * + * This method is used on GigaDevice and Winbond flashes. * - * Please note, the write must not span multiple OTP regions. + * Please note, the write must not span multiple registers. * * Return: number of bytes written successfully, -errno otherwise */ @@ -88,7 +99,7 @@ int spi_nor_otp_write_secr(struct spi_nor *nor, loff_t addr, size_t len, /* * We only support a write to one single page. For now all winbond - * flashes only have one page per OTP region. + * flashes only have one page per security register. */ ret = spi_nor_write_enable(nor); if (ret)