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:
parent
ccada49b05
commit
586a746b32
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue