arm64: mvebu: a8k: Add support for NAND clock get
authorKonstantin Porotchkin <kostap@marvell.com>
Wed, 5 Apr 2017 15:22:31 +0000 (18:22 +0300)
committerStefan Roese <sr@denx.de>
Tue, 9 May 2017 11:38:18 +0000 (13:38 +0200)
Implement mvebu_get_nand_clock call for A8K family.
This function is used by PXA3XX NAND driver.

Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
Cc: Stefan Roese <sr@denx.de>
Cc: Igal Liberman <igall@marvell.com>
Cc: Nadav Haklai <nadavh@marvell.com>
Reviewed-by: Stefan Roese <sr@denx.de>
arch/arm/mach-mvebu/armada8k/cpu.c

index 2325e9a180ba8d7159729630b614878b45ce58b0..38e7d33cb3e8f08e15e9ccf40c8337e073053816 100644 (file)
@@ -110,3 +110,21 @@ void reset_cpu(ulong ignored)
        reg &= ~(1 << RFU_SW_RESET_OFFSET);
        writel(reg, RFU_GLOBAL_SW_RST);
 }
+
+/*
+ * TODO - implement this functionality using platform
+ *        clock driver once it gets available
+ * Return NAND clock in Hz
+ */
+u32 mvebu_get_nand_clock(void)
+{
+       unsigned long NAND_FLASH_CLK_CTRL = 0xF2440700UL;
+       unsigned long NF_CLOCK_SEL_MASK = 0x1;
+       u32 reg;
+
+       reg = readl(NAND_FLASH_CLK_CTRL);
+       if (reg & NF_CLOCK_SEL_MASK)
+               return 400 * 1000000;
+       else
+               return 250 * 1000000;
+}