|
@@ -937,3 +937,197 @@ static struct omap_hwmod_opt_clk gpio2_opt_clks[] = {
|
|
|
|
|
|
static struct omap_hwmod omap3xxx_gpio2_hwmod = {
|
|
|
.name = "gpio2",
|
|
|
+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+ .mpu_irqs = omap2_gpio2_irqs,
|
|
|
+ .main_clk = "gpio2_ick",
|
|
|
+ .opt_clks = gpio2_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio2_opt_clks),
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP3430_EN_GPIO2_SHIFT,
|
|
|
+ .module_offs = OMAP3430_PER_MOD,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_idle_bit = OMAP3430_ST_GPIO2_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .class = &omap3xxx_gpio_hwmod_class,
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* gpio3 */
|
|
|
+static struct omap_hwmod_opt_clk gpio3_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio3_dbck", },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod omap3xxx_gpio3_hwmod = {
|
|
|
+ .name = "gpio3",
|
|
|
+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+ .mpu_irqs = omap2_gpio3_irqs,
|
|
|
+ .main_clk = "gpio3_ick",
|
|
|
+ .opt_clks = gpio3_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio3_opt_clks),
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP3430_EN_GPIO3_SHIFT,
|
|
|
+ .module_offs = OMAP3430_PER_MOD,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_idle_bit = OMAP3430_ST_GPIO3_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .class = &omap3xxx_gpio_hwmod_class,
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* gpio4 */
|
|
|
+static struct omap_hwmod_opt_clk gpio4_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio4_dbck", },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod omap3xxx_gpio4_hwmod = {
|
|
|
+ .name = "gpio4",
|
|
|
+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+ .mpu_irqs = omap2_gpio4_irqs,
|
|
|
+ .main_clk = "gpio4_ick",
|
|
|
+ .opt_clks = gpio4_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio4_opt_clks),
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP3430_EN_GPIO4_SHIFT,
|
|
|
+ .module_offs = OMAP3430_PER_MOD,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_idle_bit = OMAP3430_ST_GPIO4_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .class = &omap3xxx_gpio_hwmod_class,
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* gpio5 */
|
|
|
+static struct omap_hwmod_irq_info omap3xxx_gpio5_irqs[] = {
|
|
|
+ { .irq = 33 + OMAP_INTC_START, }, /* INT_34XX_GPIO_BANK5 */
|
|
|
+ { .irq = -1 },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk gpio5_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio5_dbck", },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod omap3xxx_gpio5_hwmod = {
|
|
|
+ .name = "gpio5",
|
|
|
+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+ .mpu_irqs = omap3xxx_gpio5_irqs,
|
|
|
+ .main_clk = "gpio5_ick",
|
|
|
+ .opt_clks = gpio5_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio5_opt_clks),
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP3430_EN_GPIO5_SHIFT,
|
|
|
+ .module_offs = OMAP3430_PER_MOD,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_idle_bit = OMAP3430_ST_GPIO5_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .class = &omap3xxx_gpio_hwmod_class,
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* gpio6 */
|
|
|
+static struct omap_hwmod_irq_info omap3xxx_gpio6_irqs[] = {
|
|
|
+ { .irq = 34 + OMAP_INTC_START, }, /* INT_34XX_GPIO_BANK6 */
|
|
|
+ { .irq = -1 },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk gpio6_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio6_dbck", },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod omap3xxx_gpio6_hwmod = {
|
|
|
+ .name = "gpio6",
|
|
|
+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+ .mpu_irqs = omap3xxx_gpio6_irqs,
|
|
|
+ .main_clk = "gpio6_ick",
|
|
|
+ .opt_clks = gpio6_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio6_opt_clks),
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP3430_EN_GPIO6_SHIFT,
|
|
|
+ .module_offs = OMAP3430_PER_MOD,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_idle_bit = OMAP3430_ST_GPIO6_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .class = &omap3xxx_gpio_hwmod_class,
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* dma attributes */
|
|
|
+static struct omap_dma_dev_attr dma_dev_attr = {
|
|
|
+ .dev_caps = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY |
|
|
|
+ IS_CSSA_32 | IS_CDSA_32 | IS_RW_PRIORITY,
|
|
|
+ .lch_count = 32,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_class_sysconfig omap3xxx_dma_sysc = {
|
|
|
+ .rev_offs = 0x0000,
|
|
|
+ .sysc_offs = 0x002c,
|
|
|
+ .syss_offs = 0x0028,
|
|
|
+ .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
|
|
|
+ SYSC_HAS_MIDLEMODE | SYSC_HAS_CLOCKACTIVITY |
|
|
|
+ SYSC_HAS_EMUFREE | SYSC_HAS_AUTOIDLE |
|
|
|
+ SYSS_HAS_RESET_STATUS),
|
|
|
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
|
|
|
+ MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
|
|
|
+ .sysc_fields = &omap_hwmod_sysc_type1,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_class omap3xxx_dma_hwmod_class = {
|
|
|
+ .name = "dma",
|
|
|
+ .sysc = &omap3xxx_dma_sysc,
|
|
|
+};
|
|
|
+
|
|
|
+/* dma_system */
|
|
|
+static struct omap_hwmod omap3xxx_dma_system_hwmod = {
|
|
|
+ .name = "dma",
|
|
|
+ .class = &omap3xxx_dma_hwmod_class,
|
|
|
+ .mpu_irqs = omap2_dma_system_irqs,
|
|
|
+ .main_clk = "core_l3_ick",
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ .module_offs = CORE_MOD,
|
|
|
+ .prcm_reg_id = 1,
|
|
|
+ .module_bit = OMAP3430_ST_SDMA_SHIFT,
|
|
|
+ .idlest_reg_id = 1,
|
|
|
+ .idlest_idle_bit = OMAP3430_ST_SDMA_SHIFT,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .dev_attr = &dma_dev_attr,
|
|
|
+ .flags = HWMOD_NO_IDLEST,
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * 'mcbsp' class
|
|
|
+ * multi channel buffered serial port controller
|
|
|
+ */
|
|
|
+
|
|
|
+static struct omap_hwmod_class_sysconfig omap3xxx_mcbsp_sysc = {
|
|
|
+ .sysc_offs = 0x008c,
|
|
|
+ .sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_ENAWAKEUP |
|
|
|
+ SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
|
|
|
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
|
|
|
+ .sysc_fields = &omap_hwmod_sysc_type1,
|
|
|
+ .clockact = 0x2,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_class omap3xxx_mcbsp_hwmod_class = {
|
|
|
+ .name = "mcbsp",
|
|
|
+ .sysc = &omap3xxx_mcbsp_sysc,
|
|
|
+ .rev = MCBSP_CONFIG_TYPE3,
|
|
|
+};
|
|
|
+
|
|
|
+/* McBSP functional clock mapping */
|
|
|
+static struct omap_hwmod_opt_clk mcbsp15_opt_clks[] = {
|