Skip to content

Commit

Permalink
mtd: nand: sunxi: fix clk rate calculation
Browse files Browse the repository at this point in the history
Unlike what is specified in the Allwinner datasheets, the NAND clock rate
is not equal to 2/T but 1/T. Fix the clock rate selection accordingly.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
  • Loading branch information
Boris Brezillon committed Apr 19, 2016
1 parent 9edb470 commit 2f9992e
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions drivers/mtd/nand/sunxi_nand.c
Original file line number Diff line number Diff line change
Expand Up @@ -1208,12 +1208,12 @@ static int sunxi_nand_chip_set_timings(struct sunxi_nand_chip *chip,
min_clk_period = DIV_ROUND_UP(min_clk_period, 1000);

/*
* Convert min_clk_period into a clk frequency, then get the
* appropriate rate for the NAND controller IP given this formula
* (specified in the datasheet):
* nand clk_rate = 2 * min_clk_rate
* Unlike what is stated in Allwinner datasheet, the clk_rate should
* be set to (1 / min_clk_period), and not (2 / min_clk_period).
* This new formula was verified with a scope and validated by
* Allwinner engineers.
*/
chip->clk_rate = (2 * NSEC_PER_SEC) / min_clk_period;
chip->clk_rate = NSEC_PER_SEC / min_clk_period;

return 0;
}
Expand Down

0 comments on commit 2f9992e

Please sign in to comment.