|
@@ -1148,3 +1148,155 @@ static struct omap_gpio_dev_attr gpio_dev_attr = {
|
|
|
|
|
|
/* gpio1 */
|
|
|
static struct omap_hwmod_irq_info omap44xx_gpio1_irqs[] = {
|
|
|
+ { .irq = 29 + OMAP44XX_IRQ_GIC_START },
|
|
|
+ { .irq = -1 }
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk gpio1_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio1_dbclk" },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod omap44xx_gpio1_hwmod = {
|
|
|
+ .name = "gpio1",
|
|
|
+ .class = &omap44xx_gpio_hwmod_class,
|
|
|
+ .clkdm_name = "l4_wkup_clkdm",
|
|
|
+ .mpu_irqs = omap44xx_gpio1_irqs,
|
|
|
+ .main_clk = "gpio1_ick",
|
|
|
+ .prcm = {
|
|
|
+ .omap4 = {
|
|
|
+ .clkctrl_offs = OMAP4_CM_WKUP_GPIO1_CLKCTRL_OFFSET,
|
|
|
+ .context_offs = OMAP4_RM_WKUP_GPIO1_CONTEXT_OFFSET,
|
|
|
+ .modulemode = MODULEMODE_HWCTRL,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .opt_clks = gpio1_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio1_opt_clks),
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* gpio2 */
|
|
|
+static struct omap_hwmod_irq_info omap44xx_gpio2_irqs[] = {
|
|
|
+ { .irq = 30 + OMAP44XX_IRQ_GIC_START },
|
|
|
+ { .irq = -1 }
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk gpio2_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio2_dbclk" },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod omap44xx_gpio2_hwmod = {
|
|
|
+ .name = "gpio2",
|
|
|
+ .class = &omap44xx_gpio_hwmod_class,
|
|
|
+ .clkdm_name = "l4_per_clkdm",
|
|
|
+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+ .mpu_irqs = omap44xx_gpio2_irqs,
|
|
|
+ .main_clk = "gpio2_ick",
|
|
|
+ .prcm = {
|
|
|
+ .omap4 = {
|
|
|
+ .clkctrl_offs = OMAP4_CM_L4PER_GPIO2_CLKCTRL_OFFSET,
|
|
|
+ .context_offs = OMAP4_RM_L4PER_GPIO2_CONTEXT_OFFSET,
|
|
|
+ .modulemode = MODULEMODE_HWCTRL,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .opt_clks = gpio2_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio2_opt_clks),
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* gpio3 */
|
|
|
+static struct omap_hwmod_irq_info omap44xx_gpio3_irqs[] = {
|
|
|
+ { .irq = 31 + OMAP44XX_IRQ_GIC_START },
|
|
|
+ { .irq = -1 }
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk gpio3_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio3_dbclk" },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod omap44xx_gpio3_hwmod = {
|
|
|
+ .name = "gpio3",
|
|
|
+ .class = &omap44xx_gpio_hwmod_class,
|
|
|
+ .clkdm_name = "l4_per_clkdm",
|
|
|
+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+ .mpu_irqs = omap44xx_gpio3_irqs,
|
|
|
+ .main_clk = "gpio3_ick",
|
|
|
+ .prcm = {
|
|
|
+ .omap4 = {
|
|
|
+ .clkctrl_offs = OMAP4_CM_L4PER_GPIO3_CLKCTRL_OFFSET,
|
|
|
+ .context_offs = OMAP4_RM_L4PER_GPIO3_CONTEXT_OFFSET,
|
|
|
+ .modulemode = MODULEMODE_HWCTRL,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .opt_clks = gpio3_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio3_opt_clks),
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* gpio4 */
|
|
|
+static struct omap_hwmod_irq_info omap44xx_gpio4_irqs[] = {
|
|
|
+ { .irq = 32 + OMAP44XX_IRQ_GIC_START },
|
|
|
+ { .irq = -1 }
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk gpio4_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio4_dbclk" },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod omap44xx_gpio4_hwmod = {
|
|
|
+ .name = "gpio4",
|
|
|
+ .class = &omap44xx_gpio_hwmod_class,
|
|
|
+ .clkdm_name = "l4_per_clkdm",
|
|
|
+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+ .mpu_irqs = omap44xx_gpio4_irqs,
|
|
|
+ .main_clk = "gpio4_ick",
|
|
|
+ .prcm = {
|
|
|
+ .omap4 = {
|
|
|
+ .clkctrl_offs = OMAP4_CM_L4PER_GPIO4_CLKCTRL_OFFSET,
|
|
|
+ .context_offs = OMAP4_RM_L4PER_GPIO4_CONTEXT_OFFSET,
|
|
|
+ .modulemode = MODULEMODE_HWCTRL,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .opt_clks = gpio4_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio4_opt_clks),
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* gpio5 */
|
|
|
+static struct omap_hwmod_irq_info omap44xx_gpio5_irqs[] = {
|
|
|
+ { .irq = 33 + OMAP44XX_IRQ_GIC_START },
|
|
|
+ { .irq = -1 }
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk gpio5_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio5_dbclk" },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod omap44xx_gpio5_hwmod = {
|
|
|
+ .name = "gpio5",
|
|
|
+ .class = &omap44xx_gpio_hwmod_class,
|
|
|
+ .clkdm_name = "l4_per_clkdm",
|
|
|
+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
|
|
|
+ .mpu_irqs = omap44xx_gpio5_irqs,
|
|
|
+ .main_clk = "gpio5_ick",
|
|
|
+ .prcm = {
|
|
|
+ .omap4 = {
|
|
|
+ .clkctrl_offs = OMAP4_CM_L4PER_GPIO5_CLKCTRL_OFFSET,
|
|
|
+ .context_offs = OMAP4_RM_L4PER_GPIO5_CONTEXT_OFFSET,
|
|
|
+ .modulemode = MODULEMODE_HWCTRL,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .opt_clks = gpio5_opt_clks,
|
|
|
+ .opt_clks_cnt = ARRAY_SIZE(gpio5_opt_clks),
|
|
|
+ .dev_attr = &gpio_dev_attr,
|
|
|
+};
|
|
|
+
|
|
|
+/* gpio6 */
|
|
|
+static struct omap_hwmod_irq_info omap44xx_gpio6_irqs[] = {
|
|
|
+ { .irq = 34 + OMAP44XX_IRQ_GIC_START },
|
|
|
+ { .irq = -1 }
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_opt_clk gpio6_opt_clks[] = {
|
|
|
+ { .role = "dbclk", .clk = "gpio6_dbclk" },
|
|
|
+};
|
|
|
+
|