--- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c @@ -963,6 +963,7 @@ static int enable_edo_mode(struct gpmi_n unsigned long rate; int ret; +printk("%s(%d): enable_edo_mode()\n", __FILE__, __LINE__); feature = kzalloc(ONFI_SUBFEATURE_PARAM_LEN, GFP_KERNEL); if (!feature) return -ENOMEM; @@ -988,6 +989,7 @@ static int enable_edo_mode(struct gpmi_n /* [3] set the main IO clock, 100MHz for mode 5, 80MHz for mode 4. */ rate = (mode == 5) ? 100000000 : 80000000; clk_set_rate(r->clock[0], rate); +printk(" clk_get_rate(r->clock[0])=%ld\n", clk_get_rate(r->clock[0])); /* Let the gpmi_begin() re-compute the timing again. */ this->flags &= ~GPMI_TIMING_INIT_OK; @@ -1049,6 +1051,7 @@ void gpmi_begin(struct gpmi_nand_data *t return; this->flags |= GPMI_TIMING_INIT_OK; +printk("%s(%d): gpmi_begin()\n", __FILE__, __LINE__); if (this->flags & GPMI_ASYNC_EDO_ENABLED) gpmi_compute_edo_timing(this, &hw); else @@ -1060,10 +1063,12 @@ void gpmi_begin(struct gpmi_nand_data *t BF_GPMI_TIMING0_DATA_SETUP(hw.data_setup_in_cycles); writel(reg, gpmi_regs + HW_GPMI_TIMING0); +printk(" HW_GPMI_TIMING0=0x%08x\n", readl(gpmi_regs + HW_GPMI_TIMING0)); /* [2] Set HW_GPMI_TIMING1 */ writel(BF_GPMI_TIMING1_BUSY_TIMEOUT(hw.device_busy_timeout), gpmi_regs + HW_GPMI_TIMING1); +printk(" HW_GPMI_TIMING1=0x%08x\n", readl(gpmi_regs + HW_GPMI_TIMING1)); /* [3] The following code is to set the HW_GPMI_CTRL1. */ @@ -1088,6 +1093,7 @@ void gpmi_begin(struct gpmi_nand_data *t | BF_GPMI_CTRL1_RDN_DELAY(hw.sample_delay_factor); writel(reg, gpmi_regs + HW_GPMI_CTRL1_SET); +printk(" HW_GPMI_CTRL1_SET=0x%08x\n", readl(gpmi_regs + HW_GPMI_CTRL1_SET)); /* At last, we enable the DLL. */ writel(BM_GPMI_CTRL1_DLL_ENABLE, gpmi_regs + HW_GPMI_CTRL1_SET); --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c @@ -804,6 +804,7 @@ static int gpmi_get_clks(struct gpmi_nan struct clk *clk; int err, i; +printk("%s(%d): gpmi_get_clks()\n", __FILE__, __LINE__); for (i = 0; i < this->devdata->clks_count; i++) { clk = devm_clk_get(this->dev, this->devdata->clks[i]); if (IS_ERR(clk)) { @@ -822,6 +823,7 @@ static int gpmi_get_clks(struct gpmi_nan * Synchronous Mode, you should change the clock as you need. */ clk_set_rate(r->clock[0], 22000000); +printk(" clk_get_rate(r->clock[0])=%ld\n", clk_get_rate(r->clock[0])); return 0;