[PATCH v3 4/4] mtd: core: Fix a conflict between MTD and NVMEM on wp-gpios property
Srinivas Kandagatla
srinivas.kandagatla at linaro.org
Fri Feb 18 05:25:00 PST 2022
On 17/02/2022 14:47, Christophe Kerello wrote:
> Wp-gpios property can be used on NVMEM nodes and the same property can
> be also used on MTD NAND nodes. In case of the wp-gpios property is
> defined at NAND level node, the GPIO management is done at NAND driver
> level. Write protect is disabled when the driver is probed or resumed
> and is enabled when the driver is released or suspended.
>
> When no partitions are defined in the NAND DT node, then the NAND DT node
> will be passed to NVMEM framework. If wp-gpios property is defined in
> this node, the GPIO resource is taken twice and the NAND controller
> driver fails to probe.
>
> A new Boolean flag named ignore_wp has been added in nvmem_config.
> In case ignore_wp is set, it means that the GPIO is handled by the
> provider. Lets set this flag in MTD layer to avoid the conflict on
> wp_gpios property.
>
> Fixes: 2a127da461a9 ("nvmem: add support for the write-protect pin")
> Signed-off-by: Christophe Kerello <christophe.kerello at foss.st.com>
> Cc: stable at vger.kernel.org
Applied thanks,
--srini
> ---
> Changes in v3:
> - add a fixes tag
> - rename skip_wp_gpio by ignore_wp in nvmen_config.
>
> drivers/mtd/mtdcore.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
> index 70f492dce158..eef87b28d6c8 100644
> --- a/drivers/mtd/mtdcore.c
> +++ b/drivers/mtd/mtdcore.c
> @@ -546,6 +546,7 @@ static int mtd_nvmem_add(struct mtd_info *mtd)
> config.stride = 1;
> config.read_only = true;
> config.root_only = true;
> + config.ignore_wp = true;
> config.no_of_node = !of_device_is_compatible(node, "nvmem-cells");
> config.priv = mtd;
>
> @@ -833,6 +834,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
> config.owner = THIS_MODULE;
> config.type = NVMEM_TYPE_OTP;
> config.root_only = true;
> + config.ignore_wp = true;
> config.reg_read = reg_read;
> config.size = size;
> config.of_node = np;
More information about the linux-mtd
mailing list