[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220105105200.67037833@collabora.com>
Date: Wed, 5 Jan 2022 10:52:00 +0100
From: Boris Brezillon <boris.brezillon@...labora.com>
To: Apurva Nandan <a-nandan@...com>
Cc: Miquel Raynal <miquel.raynal@...tlin.com>,
Richard Weinberger <richard@....at>,
Vignesh Raghavendra <vigneshr@...com>,
Mark Brown <broonie@...nel.org>,
Patrice Chotard <patrice.chotard@...s.st.com>,
Christophe Kerello <christophe.kerello@...s.st.com>,
Daniel Palmer <daniel@...f.com>,
Alexander Lobakin <alobakin@...me>,
<linux-mtd@...ts.infradead.org>, <linux-kernel@...r.kernel.org>,
<linux-spi@...r.kernel.org>, <p.yadav@...com>
Subject: Re: [PATCH v3 09/17] mtd: spinand: Add change_mode() in
manufacturer_ops
On Sat, 1 Jan 2022 13:12:42 +0530
Apurva Nandan <a-nandan@...com> wrote:
> Introduce change_mode() manufacturer_op to let the vendor provide the
> implementation of switching of SPI IO modes.
>
> The method to switch to different SPI IO mode may vary across
> manufacturers. For example, for Winbond, Octal DTR is enabled by
> writing values to the volatile configuration register. So, let the
> manufacturer's code have their own implementation for switching to
> any given SPI IO mode. Manufacturer's code need to take care, if
> the requested protocol change is allowed/needed and how to apply
> it.
>
> Signed-off-by: Apurva Nandan <a-nandan@...com>
> ---
> include/linux/mtd/spinand.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/include/linux/mtd/spinand.h b/include/linux/mtd/spinand.h
> index 5dae0649f2fb..ad924271a248 100644
> --- a/include/linux/mtd/spinand.h
> +++ b/include/linux/mtd/spinand.h
> @@ -298,6 +298,7 @@ struct spinand_devid {
> /**
> * struct manufacurer_ops - SPI NAND manufacturer specific operations
> * @init: initialize a SPI NAND device
> + * @change_mode: switch the SPI NAND flash to a specific SPI protocol
> * @cleanup: cleanup a SPI NAND device
> *
> * Each SPI NAND manufacturer driver should implement this interface so that
> @@ -305,6 +306,8 @@ struct spinand_devid {
> */
> struct spinand_manufacturer_ops {
> int (*init)(struct spinand_device *spinand);
> + int (*change_mode)(struct spinand_device *spinand,
> + const enum spinand_protocol protocol);
Protocol or mode? Pick one and stick to it. Given you already use
protocol elsewhere, maybe s/select_mode/select_protocol/.
> void (*cleanup)(struct spinand_device *spinand);
> };
>
Powered by blists - more mailing lists