|
@@ -252,3 +252,138 @@ static struct omap_hwmod_rst_info am33xx_wkup_m3_resets[] = {
|
|
{ .name = "wkup_m3", .rst_shift = 3, .st_shift = 5 },
|
|
{ .name = "wkup_m3", .rst_shift = 3, .st_shift = 5 },
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+static struct omap_hwmod_irq_info am33xx_wkup_m3_irqs[] = {
|
|
|
|
+ { .name = "txev", .irq = 78 + OMAP_INTC_START, },
|
|
|
|
+ { .irq = -1 },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* wkup_m3 */
|
|
|
|
+static struct omap_hwmod am33xx_wkup_m3_hwmod = {
|
|
|
|
+ .name = "wkup_m3",
|
|
|
|
+ .class = &am33xx_wkup_m3_hwmod_class,
|
|
|
|
+ .clkdm_name = "l4_wkup_aon_clkdm",
|
|
|
|
+ .flags = HWMOD_INIT_NO_RESET, /* Keep hardreset asserted */
|
|
|
|
+ .mpu_irqs = am33xx_wkup_m3_irqs,
|
|
|
|
+ .main_clk = "dpll_core_m4_div2_ck",
|
|
|
|
+ .prcm = {
|
|
|
|
+ .omap4 = {
|
|
|
|
+ .clkctrl_offs = AM33XX_CM_WKUP_WKUP_M3_CLKCTRL_OFFSET,
|
|
|
|
+ .rstctrl_offs = AM33XX_RM_WKUP_RSTCTRL_OFFSET,
|
|
|
|
+ .modulemode = MODULEMODE_SWCTRL,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ .rst_lines = am33xx_wkup_m3_resets,
|
|
|
|
+ .rst_lines_cnt = ARRAY_SIZE(am33xx_wkup_m3_resets),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * 'pru-icss' class
|
|
|
|
+ * Programmable Real-Time Unit and Industrial Communication Subsystem
|
|
|
|
+ */
|
|
|
|
+static struct omap_hwmod_class am33xx_pruss_hwmod_class = {
|
|
|
|
+ .name = "pruss",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct omap_hwmod_rst_info am33xx_pruss_resets[] = {
|
|
|
|
+ { .name = "pruss", .rst_shift = 1 },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct omap_hwmod_irq_info am33xx_pruss_irqs[] = {
|
|
|
|
+ { .name = "evtout0", .irq = 20 + OMAP_INTC_START, },
|
|
|
|
+ { .name = "evtout1", .irq = 21 + OMAP_INTC_START, },
|
|
|
|
+ { .name = "evtout2", .irq = 22 + OMAP_INTC_START, },
|
|
|
|
+ { .name = "evtout3", .irq = 23 + OMAP_INTC_START, },
|
|
|
|
+ { .name = "evtout4", .irq = 24 + OMAP_INTC_START, },
|
|
|
|
+ { .name = "evtout5", .irq = 25 + OMAP_INTC_START, },
|
|
|
|
+ { .name = "evtout6", .irq = 26 + OMAP_INTC_START, },
|
|
|
|
+ { .name = "evtout7", .irq = 27 + OMAP_INTC_START, },
|
|
|
|
+ { .irq = -1 },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* pru-icss */
|
|
|
|
+/* Pseudo hwmod for reset control purpose only */
|
|
|
|
+static struct omap_hwmod am33xx_pruss_hwmod = {
|
|
|
|
+ .name = "pruss",
|
|
|
|
+ .class = &am33xx_pruss_hwmod_class,
|
|
|
|
+ .clkdm_name = "pruss_ocp_clkdm",
|
|
|
|
+ .mpu_irqs = am33xx_pruss_irqs,
|
|
|
|
+ .main_clk = "pruss_ocp_gclk",
|
|
|
|
+ .prcm = {
|
|
|
|
+ .omap4 = {
|
|
|
|
+ .clkctrl_offs = AM33XX_CM_PER_PRUSS_CLKCTRL_OFFSET,
|
|
|
|
+ .rstctrl_offs = AM33XX_RM_PER_RSTCTRL_OFFSET,
|
|
|
|
+ .modulemode = MODULEMODE_SWCTRL,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ .rst_lines = am33xx_pruss_resets,
|
|
|
|
+ .rst_lines_cnt = ARRAY_SIZE(am33xx_pruss_resets),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* gfx */
|
|
|
|
+/* Pseudo hwmod for reset control purpose only */
|
|
|
|
+static struct omap_hwmod_class am33xx_gfx_hwmod_class = {
|
|
|
|
+ .name = "gfx",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct omap_hwmod_rst_info am33xx_gfx_resets[] = {
|
|
|
|
+ { .name = "gfx", .rst_shift = 0 },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct omap_hwmod_irq_info am33xx_gfx_irqs[] = {
|
|
|
|
+ { .name = "gfxint", .irq = 37 + OMAP_INTC_START, },
|
|
|
|
+ { .irq = -1 },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct omap_hwmod am33xx_gfx_hwmod = {
|
|
|
|
+ .name = "gfx",
|
|
|
|
+ .class = &am33xx_gfx_hwmod_class,
|
|
|
|
+ .clkdm_name = "gfx_l3_clkdm",
|
|
|
|
+ .mpu_irqs = am33xx_gfx_irqs,
|
|
|
|
+ .main_clk = "gfx_fck_div_ck",
|
|
|
|
+ .prcm = {
|
|
|
|
+ .omap4 = {
|
|
|
|
+ .clkctrl_offs = AM33XX_CM_GFX_GFX_CLKCTRL_OFFSET,
|
|
|
|
+ .rstctrl_offs = AM33XX_RM_GFX_RSTCTRL_OFFSET,
|
|
|
|
+ .modulemode = MODULEMODE_SWCTRL,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ .rst_lines = am33xx_gfx_resets,
|
|
|
|
+ .rst_lines_cnt = ARRAY_SIZE(am33xx_gfx_resets),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * 'prcm' class
|
|
|
|
+ * power and reset manager (whole prcm infrastructure)
|
|
|
|
+ */
|
|
|
|
+static struct omap_hwmod_class am33xx_prcm_hwmod_class = {
|
|
|
|
+ .name = "prcm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* prcm */
|
|
|
|
+static struct omap_hwmod am33xx_prcm_hwmod = {
|
|
|
|
+ .name = "prcm",
|
|
|
|
+ .class = &am33xx_prcm_hwmod_class,
|
|
|
|
+ .clkdm_name = "l4_wkup_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * 'adc/tsc' class
|
|
|
|
+ * TouchScreen Controller (Anolog-To-Digital Converter)
|
|
|
|
+ */
|
|
|
|
+static struct omap_hwmod_class_sysconfig am33xx_adc_tsc_sysc = {
|
|
|
|
+ .rev_offs = 0x00,
|
|
|
|
+ .sysc_offs = 0x10,
|
|
|
|
+ .sysc_flags = SYSC_HAS_SIDLEMODE,
|
|
|
|
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
|
|
|
|
+ SIDLE_SMART_WKUP),
|
|
|
|
+ .sysc_fields = &omap_hwmod_sysc_type2,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct omap_hwmod_class am33xx_adc_tsc_hwmod_class = {
|
|
|
|
+ .name = "adc_tsc",
|
|
|
|
+ .sysc = &am33xx_adc_tsc_sysc,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct omap_hwmod_irq_info am33xx_adc_tsc_irqs[] = {
|
|
|
|
+ { .irq = 16 + OMAP_INTC_START, },
|
|
|
|
+ { .irq = -1 },
|