clk: socfpga: Fix the smplsel on Arria10 and Stratix10
authorDinh Nguyen <dinguyen@kernel.org>
Thu, 8 Jun 2017 14:18:39 +0000 (09:18 -0500)
committerStephen Boyd <sboyd@codeaurora.org>
Tue, 20 Jun 2017 00:01:55 +0000 (17:01 -0700)
The smplsel bits for the SDMMC clock on Arria10 and Stratix10 platforms are
offset by 1 additional bit.

Add a new macro SYSMGR_SDMMC_CTRL_SET_AS10 for usage on the Arria10 and
Stratix10 platforms.

Fixes: 5611a5ba8e54 ("clk: socfpga: update clk.h so for Arria10 platform to use")
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/socfpga/clk-gate-a10.c
drivers/clk/socfpga/clk.h

index c2d5727..36376c5 100644 (file)
@@ -86,7 +86,7 @@ static int socfpga_clk_prepare(struct clk_hw *hwclk)
                        }
                }
 
-               hs_timing = SYSMGR_SDMMC_CTRL_SET(clk_phase[0], clk_phase[1]);
+               hs_timing = SYSMGR_SDMMC_CTRL_SET_AS10(clk_phase[0], clk_phase[1]);
                if (!IS_ERR(socfpgaclk->sys_mgr_base_addr))
                        regmap_write(socfpgaclk->sys_mgr_base_addr,
                                     SYSMGR_SDMMCGRP_CTRL_OFFSET, hs_timing);
index 814c724..9cf1230 100644 (file)
@@ -32,6 +32,9 @@
 #define SYSMGR_SDMMC_CTRL_SET(smplsel, drvsel) \
        ((((smplsel) & 0x7) << 3) | (((drvsel) & 0x7) << 0))
 
+#define SYSMGR_SDMMC_CTRL_SET_AS10(smplsel, drvsel) \
+       ((((smplsel) & 0x7) << 4) | (((drvsel) & 0x7) << 0))
+
 extern void __iomem *clk_mgr_base_addr;
 extern void __iomem *clk_mgr_a10_base_addr;