[PATCH v2 1/5] mtd: spi-nor: notify (Q)SPI controller about protocol change
Cyrille Pitchen
cyrille.pitchen at atmel.com
Wed Jul 22 09:25:20 PDT 2015
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:
>> 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 <cyrille.pitchen at atmel.com>
>> ---
>> 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.
*/
>> + */
>> +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
More information about the linux-arm-kernel
mailing list