mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 15:11:31 +00:00
mtd: nand: sunxi: fix clk rate calculation
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>
This commit is contained in:
parent
9edb47004e
commit
2f9992e080
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user