[U-Boot] [PATCH] mtd: nand: denali_dt: Add reset support
Masahiro Yamada
yamada.masahiro at socionext.com
Fri Aug 24 13:05:47 UTC 2018
Hi Marek,
2018-08-21 22:57 GMT+09:00 Marek Vasut <marex at denx.de>:
> Add optional reset support into the Denali NAND driver. In case there is
> a valid reset entry in the DT, the reset gets deasserted before the NAND
> controller gets used.
>
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Masahiro Yamada <yamada.masahiro at socionext.com>
> ---
> drivers/mtd/nand/denali_dt.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/mtd/nand/denali_dt.c b/drivers/mtd/nand/denali_dt.c
> index 65a7797f0f..6fcd7d3843 100644
> --- a/drivers/mtd/nand/denali_dt.c
> +++ b/drivers/mtd/nand/denali_dt.c
> @@ -9,6 +9,7 @@
> #include <linux/io.h>
> #include <linux/ioport.h>
> #include <linux/printk.h>
> +#include <reset.h>
>
> #include "denali.h"
>
> @@ -64,6 +65,7 @@ static int denali_dt_probe(struct udevice *dev)
> const struct denali_dt_data *data;
> struct clk clk;
> struct resource res;
> + struct reset_ctl reset_ctl;
> int ret;
>
> data = (void *)dev_get_driver_data(dev);
> @@ -97,6 +99,13 @@ static int denali_dt_probe(struct udevice *dev)
>
> denali->clk_x_rate = clk_get_rate(&clk);
>
> + ret = reset_get_by_index(dev, 0, &reset_ctl);
> + if (!ret) {
> + reset_assert(&reset_ctl);
> + udelay(2);
> + reset_deassert(&reset_ctl);
> + }
> +
> return denali_init(denali);
> }
>
I was testing this patch today
because my SoC also has a reset line for NAND.
This patch looks trivial enough,
but if the NAND is reset here,
my board fails to boot with
"nand_base: timeout while waiting for chip to become ready"
I do not know why.
Please give me more time to figure out what is going on in my SoC.
U-Boot SPL 2018.09-rc2-00106-g5f0d7e5-dirty (Aug 24 2018 - 22:00:33 +0900)
Trying to boot from NOR
U-Boot 2018.09-rc2-00106-g5f0d7e5-dirty (Aug 24 2018 - 22:00:33 +0900)
SoC: LD4 (model 1, revision 3)
Model: UniPhier LD4 Reference Board
DRAM: 512 MiB
SC: Micro Support Card (CPLD version 3.6)
NAND: nand_base: timeout while waiting for chip to become ready
--
Best Regards
Masahiro Yamada
More information about the U-Boot
mailing list