]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mtd: rawnand: ams-delta: Make read pulses optional
authorJanusz Krzysztofik <jmkrzyszt@gmail.com>
Wed, 12 Feb 2020 00:39:23 +0000 (01:39 +0100)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 9 Mar 2020 13:51:02 +0000 (14:51 +0100)
Allow platforms to omit NRE pin from device configuration by requesting
that pin as optional.  In that case, also don't apply read pulse width
from chip SDR timings.  There should be no need for further code
adjustments as gpiolib can handle NULL GPIO descriptor pointers.

Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200212003929.6682-9-jmkrzyszt@gmail.com
drivers/mtd/nand/raw/ams-delta.c

index 11689218d23a9ba1debcaf9b7513452a49daa1cd..c481d73e3dcb4752299df74ede4376603c7a74eb 100644 (file)
@@ -202,8 +202,10 @@ static int ams_delta_setup_data_interface(struct nand_chip *this, int csline,
        if (csline == NAND_DATA_IFACE_CHECK_ONLY)
                return 0;
 
-       priv->tRP = DIV_ROUND_UP(sdr->tRP_min, 1000);
-       dev_dbg(dev, "using %u ns read pulse width\n", priv->tRP);
+       if (priv->gpiod_nre) {
+               priv->tRP = DIV_ROUND_UP(sdr->tRP_min, 1000);
+               dev_dbg(dev, "using %u ns read pulse width\n", priv->tRP);
+       }
 
        priv->tWP = DIV_ROUND_UP(sdr->tWP_min, 1000);
        dev_dbg(dev, "using %u ns write pulse width\n", priv->tWP);
@@ -276,7 +278,8 @@ static int ams_delta_init(struct platform_device *pdev)
                return err;
        }
 
-       priv->gpiod_nre = devm_gpiod_get(&pdev->dev, "nre", GPIOD_OUT_LOW);
+       priv->gpiod_nre = devm_gpiod_get_optional(&pdev->dev, "nre",
+                                                 GPIOD_OUT_LOW);
        if (IS_ERR(priv->gpiod_nre)) {
                err = PTR_ERR(priv->gpiod_nre);
                dev_err(&pdev->dev, "NRE GPIO request failed (%d)\n", err);