|
@@ -1700,3 +1700,92 @@ static struct clk_hw_omap uart2_ick_hw = {
|
|
.enable_bit = OMAP24XX_EN_UART2_SHIFT,
|
|
.enable_bit = OMAP24XX_EN_UART2_SHIFT,
|
|
.clkdm_name = "core_l4_clkdm",
|
|
.clkdm_name = "core_l4_clkdm",
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(uart2_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static struct clk uart3_fck;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap uart3_fck_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &uart3_fck,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_wait,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2),
|
|
|
|
+ .enable_bit = OMAP24XX_EN_UART3_SHIFT,
|
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(uart3_fck, mcspi1_fck_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static struct clk uart3_ick;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap uart3_ick_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &uart3_ick,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
|
|
|
+ .enable_bit = OMAP24XX_EN_UART3_SHIFT,
|
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(uart3_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static struct clk usb_fck;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap usb_fck_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &usb_fck,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_wait,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2),
|
|
|
|
+ .enable_bit = OMAP24XX_EN_USB_SHIFT,
|
|
|
|
+ .clkdm_name = "core_l3_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(usb_fck, mcspi1_fck_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static const struct clksel_rate usb_l4_ick_core_l3_rates[] = {
|
|
|
|
+ { .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 0 }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const struct clksel usb_l4_ick_clksel[] = {
|
|
|
|
+ { .parent = &core_l3_ck, .rates = usb_l4_ick_core_l3_rates },
|
|
|
|
+ { .parent = NULL },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const char *usb_l4_ick_parent_names[] = {
|
|
|
|
+ "core_l3_ck",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(usb_l4_ick, "core_l4_clkdm", usb_l4_ick_clksel,
|
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
|
|
|
+ OMAP24XX_CLKSEL_USB_MASK,
|
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
|
|
|
+ OMAP24XX_EN_USB_SHIFT, &clkhwops_iclk_wait,
|
|
|
|
+ usb_l4_ick_parent_names, dsp_fck_ops);
|
|
|
|
+
|
|
|
|
+static struct clk usbhs_ick;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap usbhs_ick_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &usbhs_ick,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
|
|
|
+ .enable_bit = OMAP2430_EN_USBHS_SHIFT,
|
|
|
|
+ .clkdm_name = "core_l3_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(usbhs_ick, gfx_ick_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static struct clk virt_prcm_set;
|
|
|
|
+
|
|
|
|
+static const char *virt_prcm_set_parent_names[] = {
|
|
|
|
+ "mpu_ck",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const struct clk_ops virt_prcm_set_ops = {
|