From ff8eff942017a58e7f4de36cbb71b1de59a1dfbf Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Mon, 17 Feb 2020 20:22:48 +0900 Subject: [PATCH] denali: timing hack 1 Increase setup time of data. (but may not meet the hold time requirement) Signed-off-by: Masahiro Yamada --- drivers/mtd/nand/raw/denali.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/raw/denali.c b/drivers/mtd/nand/raw/denali.c index fafd0a0aa8e2..762fa8bc3e4c 100644 --- a/drivers/mtd/nand/raw/denali.c +++ b/drivers/mtd/nand/raw/denali.c @@ -798,7 +798,7 @@ static int denali_setup_data_interface(struct nand_chip *chip, int chipnr, /* tREA -> ACC_CLKS */ acc_clks = DIV_ROUND_UP(timings->tREA_max, t_x); - acc_clks = min_t(int, acc_clks, ACC_CLKS__VALUE); + acc_clks = min_t(int, acc_clks, ACC_CLKS__VALUE) + 1; tmp = ioread32(denali->reg + ACC_CLKS); tmp &= ~ACC_CLKS__VALUE; @@ -886,6 +886,32 @@ static int denali_setup_data_interface(struct nand_chip *chip, int chipnr, tmp |= FIELD_PREP(CS_SETUP_CNT__VALUE, cs_setup); sel->cs_setup_cnt = tmp; + /* debug */ + printk("Denali: clk_rate=%ld, clk_x_rate=%ld\n", denali->clk_rate, denali->clk_x_rate); + printk("Denali: tREA=%d\n", timings->tREA_max); + printk("Denali: tRHW=%d\n", timings->tRHW_min); + printk("Denali: tRHZ=%d\n", timings->tRHZ_max); + printk("Denali: tCCS=%d\n", timings->tCCS_min); + printk("Denali: tWHR=%d\n", timings->tWHR_min); + printk("Denali: tADL=%d\n", timings->tADL_min); + printk("Denali: tREH=%d\n", timings->tREH_min); + printk("Denali: tWH=%d\n", timings->tWH_min); + printk("Denali: tRP=%d\n", timings->tRP_min); + printk("Denali: tWP=%d\n", timings->tWP_min); + printk("Denali: tRC=%d\n", timings->tRC_min); + printk("Denali: tWC=%d\n", timings->tWC_min); + printk("Denali: tCS=%d\n", timings->tCS_min); + printk("Denali: tCEA=%d\n", timings->tCEA_max); + printk("Denali: acc_clks=%d\n", acc_clks); + printk("Denali: re_2_we=%d\n", re_2_we); + printk("Denali: re_2_re=%d\n", re_2_re); + printk("Denali: we_2_re=%d\n", we_2_re); + printk("Denali: addr_2_data=%d\n", addr_2_data); + printk("Denali: rdwr_en_hi=%d\n", rdwr_en_hi); + printk("Denali: rdwr_en_lo_hi=%d\n", rdwr_en_lo_hi); + printk("Denali: rdwr_en_lo=%d\n", rdwr_en_lo); + printk("Denali: cs_setup=%d\n", cs_setup); + return 0; } -- 2.17.1