All of lore.kernel.org
 help / color / mirror / Atom feed
From: Janusz Krzysztofik <jmkrzyszt@gmail.com>
To: Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>
Cc: Vignesh Raghavendra <vigneshr@ti.com>,
	Tony Lindgren <tony@atomide.com>,
	Aaro Koskinen <aaro.koskinen@iki.fi>,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-mtd@lists.infradead.org,
	Janusz Krzysztofik <jmkrzyszt@gmail.com>
Subject: [RFC PATCH 01/14 v2] mtd: rawnand: ams-delta: Write protect device during probe
Date: Wed, 12 Feb 2020 01:39:16 +0100	[thread overview]
Message-ID: <20200212003929.6682-2-jmkrzyszt@gmail.com> (raw)
In-Reply-To: <20200212003929.6682-1-jmkrzyszt@gmail.com>

Initialise NWP GPIO pin as asserted to protect the device from hazard
during setup of other GPIO pins.

Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
---
v2: release write protection before calling nand_scan()

 drivers/mtd/nand/raw/ams-delta.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/raw/ams-delta.c b/drivers/mtd/nand/raw/ams-delta.c
index 8312182088c1..2501cfe00f43 100644
--- a/drivers/mtd/nand/raw/ams-delta.c
+++ b/drivers/mtd/nand/raw/ams-delta.c
@@ -251,8 +251,8 @@ static int ams_delta_init(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, priv);
 
-	/* Set chip enabled, but  */
-	priv->gpiod_nwp = devm_gpiod_get(&pdev->dev, "nwp", GPIOD_OUT_HIGH);
+	/* Set chip enabled but write protected */
+	priv->gpiod_nwp = devm_gpiod_get(&pdev->dev, "nwp", GPIOD_OUT_LOW);
 	if (IS_ERR(priv->gpiod_nwp)) {
 		err = PTR_ERR(priv->gpiod_nwp);
 		dev_err(&pdev->dev, "NWP GPIO request failed (%d)\n", err);
@@ -309,6 +309,17 @@ static int ams_delta_init(struct platform_device *pdev)
 	nand_controller_init(&priv->base);
 	this->controller = &priv->base;
 
+	/*
+	 * FIXME: We should release write protection only after nand_scan() to
+	 * be on the safe side but we can't do that until we have a generic way
+	 * to assert/deassert WP from the core.  Even if the core shouldn't
+	 * write things in the nand_scan() path, it should have control on this
+	 * pin just in case we ever need to disable write protection during
+	 * chip detection/initialization.
+	 */
+	/* Release write protection */
+	gpiod_set_value(priv->gpiod_nwp, 1);
+
 	/* Scan to find existence of the device */
 	err = nand_scan(this, 1);
 	if (err)
@@ -336,6 +347,9 @@ static int ams_delta_cleanup(struct platform_device *pdev)
 	struct ams_delta_nand *priv = platform_get_drvdata(pdev);
 	struct mtd_info *mtd = nand_to_mtd(&priv->nand_chip);
 
+	/* Apply write protection */
+	gpiod_set_value(priv->gpiod_nwp, 0);
+
 	/* Unregister device */
 	nand_release(mtd_to_nand(mtd));
 
-- 
2.24.1

WARNING: multiple messages have this Message-ID (diff)
From: Janusz Krzysztofik <jmkrzyszt@gmail.com>
To: Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>
Cc: Vignesh Raghavendra <vigneshr@ti.com>,
	Aaro Koskinen <aaro.koskinen@iki.fi>,
	Tony Lindgren <tony@atomide.com>,
	Janusz Krzysztofik <jmkrzyszt@gmail.com>,
	linux-mtd@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 01/14 v2] mtd: rawnand: ams-delta: Write protect device during probe
Date: Wed, 12 Feb 2020 01:39:16 +0100	[thread overview]
Message-ID: <20200212003929.6682-2-jmkrzyszt@gmail.com> (raw)
In-Reply-To: <20200212003929.6682-1-jmkrzyszt@gmail.com>

Initialise NWP GPIO pin as asserted to protect the device from hazard
during setup of other GPIO pins.

Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
---
v2: release write protection before calling nand_scan()

 drivers/mtd/nand/raw/ams-delta.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/raw/ams-delta.c b/drivers/mtd/nand/raw/ams-delta.c
index 8312182088c1..2501cfe00f43 100644
--- a/drivers/mtd/nand/raw/ams-delta.c
+++ b/drivers/mtd/nand/raw/ams-delta.c
@@ -251,8 +251,8 @@ static int ams_delta_init(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, priv);
 
-	/* Set chip enabled, but  */
-	priv->gpiod_nwp = devm_gpiod_get(&pdev->dev, "nwp", GPIOD_OUT_HIGH);
+	/* Set chip enabled but write protected */
+	priv->gpiod_nwp = devm_gpiod_get(&pdev->dev, "nwp", GPIOD_OUT_LOW);
 	if (IS_ERR(priv->gpiod_nwp)) {
 		err = PTR_ERR(priv->gpiod_nwp);
 		dev_err(&pdev->dev, "NWP GPIO request failed (%d)\n", err);
@@ -309,6 +309,17 @@ static int ams_delta_init(struct platform_device *pdev)
 	nand_controller_init(&priv->base);
 	this->controller = &priv->base;
 
+	/*
+	 * FIXME: We should release write protection only after nand_scan() to
+	 * be on the safe side but we can't do that until we have a generic way
+	 * to assert/deassert WP from the core.  Even if the core shouldn't
+	 * write things in the nand_scan() path, it should have control on this
+	 * pin just in case we ever need to disable write protection during
+	 * chip detection/initialization.
+	 */
+	/* Release write protection */
+	gpiod_set_value(priv->gpiod_nwp, 1);
+
 	/* Scan to find existence of the device */
 	err = nand_scan(this, 1);
 	if (err)
@@ -336,6 +347,9 @@ static int ams_delta_cleanup(struct platform_device *pdev)
 	struct ams_delta_nand *priv = platform_get_drvdata(pdev);
 	struct mtd_info *mtd = nand_to_mtd(&priv->nand_chip);
 
+	/* Apply write protection */
+	gpiod_set_value(priv->gpiod_nwp, 0);
+
 	/* Unregister device */
 	nand_release(mtd_to_nand(mtd));
 
-- 
2.24.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Janusz Krzysztofik <jmkrzyszt@gmail.com>
To: Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>
Cc: Vignesh Raghavendra <vigneshr@ti.com>,
	Aaro Koskinen <aaro.koskinen@iki.fi>,
	Tony Lindgren <tony@atomide.com>,
	Janusz Krzysztofik <jmkrzyszt@gmail.com>,
	linux-mtd@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 01/14 v2] mtd: rawnand: ams-delta: Write protect device during probe
Date: Wed, 12 Feb 2020 01:39:16 +0100	[thread overview]
Message-ID: <20200212003929.6682-2-jmkrzyszt@gmail.com> (raw)
In-Reply-To: <20200212003929.6682-1-jmkrzyszt@gmail.com>

Initialise NWP GPIO pin as asserted to protect the device from hazard
during setup of other GPIO pins.

Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
---
v2: release write protection before calling nand_scan()

 drivers/mtd/nand/raw/ams-delta.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/raw/ams-delta.c b/drivers/mtd/nand/raw/ams-delta.c
index 8312182088c1..2501cfe00f43 100644
--- a/drivers/mtd/nand/raw/ams-delta.c
+++ b/drivers/mtd/nand/raw/ams-delta.c
@@ -251,8 +251,8 @@ static int ams_delta_init(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, priv);
 
-	/* Set chip enabled, but  */
-	priv->gpiod_nwp = devm_gpiod_get(&pdev->dev, "nwp", GPIOD_OUT_HIGH);
+	/* Set chip enabled but write protected */
+	priv->gpiod_nwp = devm_gpiod_get(&pdev->dev, "nwp", GPIOD_OUT_LOW);
 	if (IS_ERR(priv->gpiod_nwp)) {
 		err = PTR_ERR(priv->gpiod_nwp);
 		dev_err(&pdev->dev, "NWP GPIO request failed (%d)\n", err);
@@ -309,6 +309,17 @@ static int ams_delta_init(struct platform_device *pdev)
 	nand_controller_init(&priv->base);
 	this->controller = &priv->base;
 
+	/*
+	 * FIXME: We should release write protection only after nand_scan() to
+	 * be on the safe side but we can't do that until we have a generic way
+	 * to assert/deassert WP from the core.  Even if the core shouldn't
+	 * write things in the nand_scan() path, it should have control on this
+	 * pin just in case we ever need to disable write protection during
+	 * chip detection/initialization.
+	 */
+	/* Release write protection */
+	gpiod_set_value(priv->gpiod_nwp, 1);
+
 	/* Scan to find existence of the device */
 	err = nand_scan(this, 1);
 	if (err)
@@ -336,6 +347,9 @@ static int ams_delta_cleanup(struct platform_device *pdev)
 	struct ams_delta_nand *priv = platform_get_drvdata(pdev);
 	struct mtd_info *mtd = nand_to_mtd(&priv->nand_chip);
 
+	/* Apply write protection */
+	gpiod_set_value(priv->gpiod_nwp, 0);
+
 	/* Unregister device */
 	nand_release(mtd_to_nand(mtd));
 
-- 
2.24.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-02-12  0:40 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-12  0:39 [RFC PATCH 00/14] mtd: rawnand: ams-delta: Prepare for merging Janusz Krzysztofik
2020-02-12  0:39 ` Janusz Krzysztofik
2020-02-12  0:39 ` Janusz Krzysztofik
2020-02-12  0:39 ` Janusz Krzysztofik [this message]
2020-02-12  0:39   ` [RFC PATCH 01/14 v2] mtd: rawnand: ams-delta: Write protect device during probe Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:33   ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 02/14] mtd: rawnand: ams-delta: Use struct gpio_nand_platdata Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:33   ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 03/14] ARM: OMAP1: ams-delta: Provide board specific partition info Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12 14:51   ` Tony Lindgren
2020-02-12 14:51     ` Tony Lindgren
2020-02-12 14:51     ` Tony Lindgren
2020-02-12 18:25     ` Janusz Krzysztofik
2020-02-12 18:25       ` Janusz Krzysztofik
2020-02-12 18:25       ` Janusz Krzysztofik
2020-02-12 18:28       ` Tony Lindgren
2020-02-12 18:28         ` Tony Lindgren
2020-02-12 18:28         ` Tony Lindgren
2020-03-10 18:33   ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 04/14 v4] mtd: rawnand: ams-delta: Drop " Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:33   ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 05/14] mtd: rawnand: ams-delta: Enable OF partition info support Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:33   ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-03-10 18:33     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 06/14] mtd: rawnand: ams-delta: Push inversion handling to gpiolib Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12 18:28   ` Tony Lindgren
2020-02-12 18:28     ` Tony Lindgren
2020-02-12 18:28     ` Tony Lindgren
2020-03-10 18:32   ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 07/14] mtd: rawnand: ams-delta: Don't hardcode read/write pulse widths Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:32   ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 08/14] mtd: rawnand: ams-delta: Make read pulses optional Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:32   ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 09/14] mtd: rawnand: ams-delta: Handle more GPIO pins as optional Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:32   ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 10/14] mtd: rawnand: ams-delta: Add module device tables Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:32   ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 11/14] mtd: rawnand: ams-delta: Support custom driver initialisation Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:32   ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 12/14] mtd: rawnand: ams-delta: Drop useless local variable Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:32   ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 13/14] mtd: rawnand: ams-delta: Make the driver custom I/O ready Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:32   ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-02-12  0:39 ` [RFC PATCH 14/14] mtd: rawnand: ams-delta: Rename structures and functions to gpio_nand* Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-02-12  0:39   ` Janusz Krzysztofik
2020-03-10 18:32   ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal
2020-03-10 18:32     ` Miquel Raynal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200212003929.6682-2-jmkrzyszt@gmail.com \
    --to=jmkrzyszt@gmail.com \
    --cc=aaro.koskinen@iki.fi \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=richard@nod.at \
    --cc=tony@atomide.com \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.