Commit ae70ba2d authored by Huang Shijie's avatar Huang Shijie Committed by David Woodhouse

mtd: gpmi: do not get the clock frequency in gpmi_begin()

The current code will gets the clock frequency which is used by
gpmi_nfc_compute_hardware_timing(). It makes the code a little mess.

So move the `get clock frequency` code to the
gpmi_nfc_compute_hardware_timing() itself. This makes the code tidy
and clean.

This patch also uses the macro NSEC_PER_SEC to replace the `1000000000`.
Signed-off-by: default avatarHuang Shijie <b32955@freescale.com>
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent ddab3838
...@@ -293,6 +293,7 @@ static int gpmi_nfc_compute_hardware_timing(struct gpmi_nand_data *this, ...@@ -293,6 +293,7 @@ static int gpmi_nfc_compute_hardware_timing(struct gpmi_nand_data *this,
struct gpmi_nfc_hardware_timing *hw) struct gpmi_nfc_hardware_timing *hw)
{ {
struct timing_threshod *nfc = &timing_default_threshold; struct timing_threshod *nfc = &timing_default_threshold;
struct resources *r = &this->resources;
struct nand_chip *nand = &this->nand; struct nand_chip *nand = &this->nand;
struct nand_timing target = this->timing; struct nand_timing target = this->timing;
bool improved_timing_is_available; bool improved_timing_is_available;
...@@ -332,8 +333,9 @@ static int gpmi_nfc_compute_hardware_timing(struct gpmi_nand_data *this, ...@@ -332,8 +333,9 @@ static int gpmi_nfc_compute_hardware_timing(struct gpmi_nand_data *this,
(target.tRHOH_in_ns >= 0) ; (target.tRHOH_in_ns >= 0) ;
/* Inspect the clock. */ /* Inspect the clock. */
nfc->clock_frequency_in_hz = clk_get_rate(r->clock[0]);
clock_frequency_in_hz = nfc->clock_frequency_in_hz; clock_frequency_in_hz = nfc->clock_frequency_in_hz;
clock_period_in_ns = 1000000000 / clock_frequency_in_hz; clock_period_in_ns = NSEC_PER_SEC / clock_frequency_in_hz;
/* /*
* The NFC quantizes setup and hold parameters in terms of clock cycles. * The NFC quantizes setup and hold parameters in terms of clock cycles.
...@@ -738,7 +740,6 @@ static int gpmi_nfc_compute_hardware_timing(struct gpmi_nand_data *this, ...@@ -738,7 +740,6 @@ static int gpmi_nfc_compute_hardware_timing(struct gpmi_nand_data *this,
void gpmi_begin(struct gpmi_nand_data *this) void gpmi_begin(struct gpmi_nand_data *this)
{ {
struct resources *r = &this->resources; struct resources *r = &this->resources;
struct timing_threshod *nfc = &timing_default_threshold;
void __iomem *gpmi_regs = r->gpmi_regs; void __iomem *gpmi_regs = r->gpmi_regs;
unsigned int clock_period_in_ns; unsigned int clock_period_in_ns;
uint32_t reg; uint32_t reg;
...@@ -753,10 +754,6 @@ void gpmi_begin(struct gpmi_nand_data *this) ...@@ -753,10 +754,6 @@ void gpmi_begin(struct gpmi_nand_data *this)
goto err_out; goto err_out;
} }
/* Get the timing information we need. */
nfc->clock_frequency_in_hz = clk_get_rate(r->clock[0]);
clock_period_in_ns = 1000000000 / nfc->clock_frequency_in_hz;
gpmi_nfc_compute_hardware_timing(this, &hw); gpmi_nfc_compute_hardware_timing(this, &hw);
/* [1] Set HW_GPMI_TIMING0 */ /* [1] Set HW_GPMI_TIMING0 */
...@@ -801,6 +798,7 @@ void gpmi_begin(struct gpmi_nand_data *this) ...@@ -801,6 +798,7 @@ void gpmi_begin(struct gpmi_nand_data *this)
* *
* Calculate the amount of time we need to wait, in microseconds. * Calculate the amount of time we need to wait, in microseconds.
*/ */
clock_period_in_ns = NSEC_PER_SEC / clk_get_rate(r->clock[0]);
dll_wait_time_in_us = (clock_period_in_ns * 64) / 1000; dll_wait_time_in_us = (clock_period_in_ns * 64) / 1000;
if (!dll_wait_time_in_us) if (!dll_wait_time_in_us)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment