clk: qcom: Add EBI2 clocks for IPQ806x
authorArchit Taneja <architt@codeaurora.org>
Thu, 2 Apr 2015 05:50:41 +0000 (11:20 +0530)
committerStephen Boyd <sboyd@codeaurora.org>
Mon, 6 Apr 2015 21:07:49 +0000 (14:07 -0700)
The NAND controller within EBI2 requires EBI2_CLK and
EBI2_ALWAYS_ON_CLK clocks.  Create structs for these clocks so
that they can be used by the NAND controller driver. Add an entry
for EBI2_AON_CLK in the gcc-ipq806x DT binding document.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/qcom/gcc-ipq806x.c
include/dt-bindings/clock/qcom,gcc-ipq806x.h

index ee73cc7..a50936a 100644 (file)
@@ -2172,6 +2172,36 @@ static struct clk_branch usb_fs1_h_clk = {
        },
 };
 
+static struct clk_branch ebi2_clk = {
+       .hwcg_reg = 0x3b00,
+       .hwcg_bit = 6,
+       .halt_reg = 0x2fcc,
+       .halt_bit = 1,
+       .clkr = {
+               .enable_reg = 0x3b00,
+               .enable_mask = BIT(4),
+               .hw.init = &(struct clk_init_data){
+                       .name = "ebi2_clk",
+                       .ops = &clk_branch_ops,
+                       .flags = CLK_IS_ROOT,
+               },
+       },
+};
+
+static struct clk_branch ebi2_aon_clk = {
+       .halt_reg = 0x2fcc,
+       .halt_bit = 0,
+       .clkr = {
+               .enable_reg = 0x3b00,
+               .enable_mask = BIT(8),
+               .hw.init = &(struct clk_init_data){
+                       .name = "ebi2_always_on_clk",
+                       .ops = &clk_branch_ops,
+                       .flags = CLK_IS_ROOT,
+               },
+       },
+};
+
 static struct clk_regmap *gcc_ipq806x_clks[] = {
        [PLL0] = &pll0.clkr,
        [PLL0_VOTE] = &pll0_vote,
@@ -2275,6 +2305,8 @@ static struct clk_regmap *gcc_ipq806x_clks[] = {
        [USB_FS1_XCVR_SRC] = &usb_fs1_xcvr_clk_src.clkr,
        [USB_FS1_XCVR_CLK] = &usb_fs1_xcvr_clk.clkr,
        [USB_FS1_SYSTEM_CLK] = &usb_fs1_sys_clk.clkr,
+       [EBI2_CLK] = &ebi2_clk.clkr,
+       [EBI2_AON_CLK] = &ebi2_aon_clk.clkr,
 };
 
 static const struct qcom_reset_map gcc_ipq806x_resets[] = {
index 04fb29a..ebd63fd 100644 (file)
 #define UBI32_CORE2_CLK_SRC                    278
 #define UBI32_CORE1_CLK                                279
 #define UBI32_CORE2_CLK                                280
+#define EBI2_AON_CLK                           281
 
 #endif