|
@@ -507,3 +507,133 @@ struct omap_hwmod omap2xxx_wd_timer2_hwmod = {
|
|
|
|
|
|
/* UART1 */
|
|
|
|
|
|
+struct omap_hwmod omap2xxx_uart1_hwmod = {
|
|
|
+ .name = "uart1",
|
|
|
+ .mpu_irqs = omap2_uart1_mpu_irqs,
|
|
|
+ .sdma_reqs = omap2_uart1_sdma_reqs,
|
|
|
+ .main_clk = "uart1_fck",
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .module_offs = CORE_MOD,
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP24XX_EN_UART1_SHIFT,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_idle_bit = OMAP24XX_EN_UART1_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .class = &omap2_uart_class,
|
|
|
+};
|
|
|
+
|
|
|
+/* UART2 */
|
|
|
+
|
|
|
+struct omap_hwmod omap2xxx_uart2_hwmod = {
|
|
|
+ .name = "uart2",
|
|
|
+ .mpu_irqs = omap2_uart2_mpu_irqs,
|
|
|
+ .sdma_reqs = omap2_uart2_sdma_reqs,
|
|
|
+ .main_clk = "uart2_fck",
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .module_offs = CORE_MOD,
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP24XX_EN_UART2_SHIFT,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_idle_bit = OMAP24XX_EN_UART2_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .class = &omap2_uart_class,
|
|
|
+};
|
|
|
+
|
|
|
+/* UART3 */
|
|
|
+
|
|
|
+struct omap_hwmod omap2xxx_uart3_hwmod = {
|
|
|
+ .name = "uart3",
|
|
|
+ .mpu_irqs = omap2_uart3_mpu_irqs,
|
|
|
+ .sdma_reqs = omap2_uart3_sdma_reqs,
|
|
|
+ .main_clk = "uart3_fck",
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .module_offs = CORE_MOD,
|
|
|
+ .prcm_reg_id = 2,
|
|
|
+ .module_bit = OMAP24XX_EN_UART3_SHIFT,
|
|
|
+ .idlest_reg_id = 2,
|
|
|
+ .idlest_idle_bit = OMAP24XX_EN_UART3_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .class = &omap2_uart_class,
|
|
|
+};
|
|
|
+
|
|
|
+/* dss */
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk dss_opt_clks[] = {
|
|
|
+ /*
|
|
|
+ * The DSS HW needs all DSS clocks enabled during reset. The dss_core
|
|
|
+ * driver does not use these clocks.
|
|
|
+ */
|
|
|
+ { .role = "tv_clk", .clk = "dss_54m_fck" },
|
|
|
+ { .role = "sys_clk", .clk = "dss2_fck" },
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod omap2xxx_dss_core_hwmod = {
|
|
|
+ .name = "dss_core",
|
|
|
+ .class = &omap2_dss_hwmod_class,
|
|
|
+ .main_clk = "dss1_fck", /* instead of dss_fck */
|
|
|
+ .sdma_reqs = omap2xxx_dss_sdma_chs,
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP24XX_EN_DSS1_SHIFT,
|
|
|
+ .module_offs = CORE_MOD,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_stdby_bit = OMAP24XX_ST_DSS_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .opt_clks = dss_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(dss_opt_clks),
|
|
|
+ .flags = HWMOD_NO_IDLEST | HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod omap2xxx_dss_dispc_hwmod = {
|
|
|
+ .name = "dss_dispc",
|
|
|
+ .class = &omap2_dispc_hwmod_class,
|
|
|
+ .mpu_irqs = omap2_dispc_irqs,
|
|
|
+ .main_clk = "dss1_fck",
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP24XX_EN_DSS1_SHIFT,
|
|
|
+ .module_offs = CORE_MOD,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_stdby_bit = OMAP24XX_ST_DSS_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .flags = HWMOD_NO_IDLEST,
|
|
|
+ .dev_attr = &omap2_3_dss_dispc_dev_attr
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk dss_rfbi_opt_clks[] = {
|
|
|
+ { .role = "ick", .clk = "dss_ick" },
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod omap2xxx_dss_rfbi_hwmod = {
|
|
|
+ .name = "dss_rfbi",
|
|
|
+ .class = &omap2_rfbi_hwmod_class,
|
|
|
+ .main_clk = "dss1_fck",
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP24XX_EN_DSS1_SHIFT,
|
|
|
+ .module_offs = CORE_MOD,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .opt_clks = dss_rfbi_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(dss_rfbi_opt_clks),
|
|
|
+ .flags = HWMOD_NO_IDLEST,
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod omap2xxx_dss_venc_hwmod = {
|
|
|
+ .name = "dss_venc",
|
|
|
+ .class = &omap2_venc_hwmod_class,
|
|
|
+ .main_clk = "dss_54m_fck",
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .prcm_reg_id = 1,
|