|
@@ -284,3 +284,132 @@ static struct clk arminth_ck1510 = {
|
|
|
* 16xx version is in MPU clocks.
|
|
|
*/
|
|
|
};
|
|
|
+
|
|
|
+static struct clk tipb_ck = {
|
|
|
+ /* No-idle controlled by "tc_ck" */
|
|
|
+ .name = "tipb_ck",
|
|
|
+ .ops = &clkops_null,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk l3_ocpi_ck = {
|
|
|
+ /* No-idle controlled by "tc_ck" */
|
|
|
+ .name = "l3_ocpi_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(ARM_IDLECT3),
|
|
|
+ .enable_bit = EN_OCPI_CK,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk tc1_ck = {
|
|
|
+ .name = "tc1_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(ARM_IDLECT3),
|
|
|
+ .enable_bit = EN_TC1_CK,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * FIXME: This clock seems to be necessary but no-one has asked for its
|
|
|
+ * activation. [ pm.c (SRAM), CCP, Camera ]
|
|
|
+ */
|
|
|
+static struct clk tc2_ck = {
|
|
|
+ .name = "tc2_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .flags = ENABLE_ON_INIT,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(ARM_IDLECT3),
|
|
|
+ .enable_bit = EN_TC2_CK,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk dma_ck = {
|
|
|
+ /* No-idle controlled by "tc_ck" */
|
|
|
+ .name = "dma_ck",
|
|
|
+ .ops = &clkops_null,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk dma_lcdfree_ck = {
|
|
|
+ .name = "dma_lcdfree_ck",
|
|
|
+ .ops = &clkops_null,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+};
|
|
|
+
|
|
|
+static struct arm_idlect1_clk api_ck = {
|
|
|
+ .clk = {
|
|
|
+ .name = "api_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .flags = CLOCK_IDLE_CONTROL,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(ARM_IDLECT2),
|
|
|
+ .enable_bit = EN_APICK,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+ },
|
|
|
+ .idlect_shift = IDLAPI_ARM_SHIFT,
|
|
|
+};
|
|
|
+
|
|
|
+static struct arm_idlect1_clk lb_ck = {
|
|
|
+ .clk = {
|
|
|
+ .name = "lb_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .flags = CLOCK_IDLE_CONTROL,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(ARM_IDLECT2),
|
|
|
+ .enable_bit = EN_LBCK,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+ },
|
|
|
+ .idlect_shift = IDLLB_ARM_SHIFT,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk rhea1_ck = {
|
|
|
+ .name = "rhea1_ck",
|
|
|
+ .ops = &clkops_null,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk rhea2_ck = {
|
|
|
+ .name = "rhea2_ck",
|
|
|
+ .ops = &clkops_null,
|
|
|
+ .parent = &tc_ck.clk,
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk lcd_ck_16xx = {
|
|
|
+ .name = "lcd_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ .parent = &ck_dpll1,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(ARM_IDLECT2),
|
|
|
+ .enable_bit = EN_LCDCK,
|
|
|
+ .rate_offset = CKCTL_LCDDIV_OFFSET,
|
|
|
+ .recalc = &omap1_ckctl_recalc,
|
|
|
+ .round_rate = omap1_clk_round_rate_ckctl_arm,
|
|
|
+ .set_rate = omap1_clk_set_rate_ckctl_arm,
|
|
|
+};
|
|
|
+
|
|
|
+static struct arm_idlect1_clk lcd_ck_1510 = {
|
|
|
+ .clk = {
|
|
|
+ .name = "lcd_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ .parent = &ck_dpll1,
|
|
|
+ .flags = CLOCK_IDLE_CONTROL,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(ARM_IDLECT2),
|
|
|
+ .enable_bit = EN_LCDCK,
|
|
|
+ .rate_offset = CKCTL_LCDDIV_OFFSET,
|
|
|
+ .recalc = &omap1_ckctl_recalc,
|
|
|
+ .round_rate = omap1_clk_round_rate_ckctl_arm,
|
|
|
+ .set_rate = omap1_clk_set_rate_ckctl_arm,
|
|
|
+ },
|
|
|
+ .idlect_shift = OMAP1510_IDLLCD_ARM_SHIFT,
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * XXX The enable_bit here is misused - it simply switches between 12MHz
|
|
|
+ * and 48MHz. Reimplement with clksel.
|
|
|
+ *
|