[PATCH v2 1/5] mtd: spi-nor: notify (Q)SPI controller about protocol change
From: Cyrille Pitchen <hidden>
Date: 2015-07-22 16:25:29
Also in:
linux-devicetree, linux-spi, lkml
Hi Marek, Le 22/07/2015 15:41, Marek Vasut a ?crit :
On Wednesday, July 22, 2015 at 03:17:06 PM, Cyrille Pitchen wrote:quoted
Once the Quad SPI mode has been enabled on a Micron flash memory, this device expects ALL the following commands to use the SPI 4-4-4 protocol. The (Q)SPI controller needs to be notified about the protocol change so it can adapt and keep on dialoging with the Micron memory. Signed-off-by: Cyrille Pitchen <redacted> --- drivers/mtd/spi-nor/spi-nor.c | 17 +++++++++++++++++ include/linux/mtd/spi-nor.h | 13 +++++++++++++ 2 files changed, 30 insertions(+)diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index d78831b4422b..93627d4e6be8 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c@@ -163,6 +163,18 @@ static inline int write_disable(struct spi_nor *nor) return nor->write_reg(nor, SPINOR_OP_WRDI, NULL, 0, 0); } +/* + * Notify the (Q)SPI controller about the new protocol to be used.Hi! Can you please just reword this a little, so that it is absolutelly clear even to the less bright of us (like me) that this is a notification coming from the upper layers (ie. the spi-nor framework) toward the hardware ?
Sure, no problem! what about the following? /* * Let the spi-nor framework notify lower layers, especially the driver of the * (Q)SPI controller, about the new protocol to be used. Indeed, once the * spi-nor framework has sent manufacturer specific commands to a memory to * enable its Quad SPI mode, it should immediately after tell the QSPI * controller to use the very same Quad SPI protocol as expected by the memory. */
quoted
+ */ +static inline int spi_nor_set_protocol(struct spi_nor *nor, + enum spi_protocol proto) +{ + if (nor->set_protocol) + return nor->set_protocol(nor, proto); + + return 0; +} + static inline struct spi_nor *mtd_to_spi_nor(struct mtd_info *mtd) { return mtd->priv;[...] Best regards, Marek Vasut
Best regards, Cyrille