mtd: rawnand: ams-delta: Make read pulses optional

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
This commit is contained in:
Janusz Krzysztofik 2020-02-12 01:39:23 +01:00 committed by Miquel Raynal
parent ccada49b05
commit 586a746b32
1 changed files with 6 additions and 3 deletions

View 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) if (csline == NAND_DATA_IFACE_CHECK_ONLY)
return 0; return 0;
priv->tRP = DIV_ROUND_UP(sdr->tRP_min, 1000); if (priv->gpiod_nre) {
dev_dbg(dev, "using %u ns read pulse width\n", priv->tRP); 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); priv->tWP = DIV_ROUND_UP(sdr->tWP_min, 1000);
dev_dbg(dev, "using %u ns write pulse width\n", priv->tWP); 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; 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)) { if (IS_ERR(priv->gpiod_nre)) {
err = PTR_ERR(priv->gpiod_nre); err = PTR_ERR(priv->gpiod_nre);
dev_err(&pdev->dev, "NRE GPIO request failed (%d)\n", err); dev_err(&pdev->dev, "NRE GPIO request failed (%d)\n", err);