|
@@ -102,3 +102,145 @@ static struct omap_hwmod_class_sysconfig omap2xxx_gpio_sysc = {
|
|
|
.sysc_flags = (SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE |
|
|
|
SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE |
|
|
|
SYSS_HAS_RESET_STATUS),
|
|
|
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
|
|
|
+ .sysc_fields = &omap_hwmod_sysc_type1,
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod_class omap2xxx_gpio_hwmod_class = {
|
|
|
+ .name = "gpio",
|
|
|
+ .sysc = &omap2xxx_gpio_sysc,
|
|
|
+ .rev = 0,
|
|
|
+};
|
|
|
+
|
|
|
+/* system dma */
|
|
|
+static struct omap_hwmod_class_sysconfig omap2xxx_dma_sysc = {
|
|
|
+ .rev_offs = 0x0000,
|
|
|
+ .sysc_offs = 0x002c,
|
|
|
+ .syss_offs = 0x0028,
|
|
|
+ .sysc_flags = (SYSC_HAS_SOFTRESET | SYSC_HAS_MIDLEMODE |
|
|
|
+ SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_EMUFREE |
|
|
|
+ SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
|
|
|
+ .idlemodes = (MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
|
|
|
+ .sysc_fields = &omap_hwmod_sysc_type1,
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod_class omap2xxx_dma_hwmod_class = {
|
|
|
+ .name = "dma",
|
|
|
+ .sysc = &omap2xxx_dma_sysc,
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * 'mailbox' class
|
|
|
+ * mailbox module allowing communication between the on-chip processors
|
|
|
+ * using a queued mailbox-interrupt mechanism.
|
|
|
+ */
|
|
|
+
|
|
|
+static struct omap_hwmod_class_sysconfig omap2xxx_mailbox_sysc = {
|
|
|
+ .rev_offs = 0x000,
|
|
|
+ .sysc_offs = 0x010,
|
|
|
+ .syss_offs = 0x014,
|
|
|
+ .sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
|
|
|
+ SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
|
|
|
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
|
|
|
+ .sysc_fields = &omap_hwmod_sysc_type1,
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod_class omap2xxx_mailbox_hwmod_class = {
|
|
|
+ .name = "mailbox",
|
|
|
+ .sysc = &omap2xxx_mailbox_sysc,
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * 'mcspi' class
|
|
|
+ * multichannel serial port interface (mcspi) / master/slave synchronous serial
|
|
|
+ * bus
|
|
|
+ */
|
|
|
+
|
|
|
+static struct omap_hwmod_class_sysconfig omap2xxx_mcspi_sysc = {
|
|
|
+ .rev_offs = 0x0000,
|
|
|
+ .sysc_offs = 0x0010,
|
|
|
+ .syss_offs = 0x0014,
|
|
|
+ .sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
|
|
|
+ SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
|
|
|
+ SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
|
|
|
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
|
|
|
+ .sysc_fields = &omap_hwmod_sysc_type1,
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod_class omap2xxx_mcspi_class = {
|
|
|
+ .name = "mcspi",
|
|
|
+ .sysc = &omap2xxx_mcspi_sysc,
|
|
|
+ .rev = OMAP2_MCSPI_REV,
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * 'gpmc' class
|
|
|
+ * general purpose memory controller
|
|
|
+ */
|
|
|
+
|
|
|
+static struct omap_hwmod_class_sysconfig omap2xxx_gpmc_sysc = {
|
|
|
+ .rev_offs = 0x0000,
|
|
|
+ .sysc_offs = 0x0010,
|
|
|
+ .syss_offs = 0x0014,
|
|
|
+ .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE |
|
|
|
+ SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
|
|
|
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
|
|
|
+ .sysc_fields = &omap_hwmod_sysc_type1,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_class omap2xxx_gpmc_hwmod_class = {
|
|
|
+ .name = "gpmc",
|
|
|
+ .sysc = &omap2xxx_gpmc_sysc,
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * IP blocks
|
|
|
+ */
|
|
|
+
|
|
|
+/* L3 */
|
|
|
+struct omap_hwmod omap2xxx_l3_main_hwmod = {
|
|
|
+ .name = "l3_main",
|
|
|
+ .class = &l3_hwmod_class,
|
|
|
+ .flags = HWMOD_NO_IDLEST,
|
|
|
+};
|
|
|
+
|
|
|
+/* L4 CORE */
|
|
|
+struct omap_hwmod omap2xxx_l4_core_hwmod = {
|
|
|
+ .name = "l4_core",
|
|
|
+ .class = &l4_hwmod_class,
|
|
|
+ .flags = HWMOD_NO_IDLEST,
|
|
|
+};
|
|
|
+
|
|
|
+/* L4 WKUP */
|
|
|
+struct omap_hwmod omap2xxx_l4_wkup_hwmod = {
|
|
|
+ .name = "l4_wkup",
|
|
|
+ .class = &l4_hwmod_class,
|
|
|
+ .flags = HWMOD_NO_IDLEST,
|
|
|
+};
|
|
|
+
|
|
|
+/* MPU */
|
|
|
+static struct omap_hwmod_irq_info omap2xxx_mpu_irqs[] = {
|
|
|
+ { .name = "pmu", .irq = 3 + OMAP_INTC_START },
|
|
|
+ { .irq = -1 }
|
|
|
+};
|
|
|
+
|
|
|
+struct omap_hwmod omap2xxx_mpu_hwmod = {
|
|
|
+ .name = "mpu",
|
|
|
+ .mpu_irqs = omap2xxx_mpu_irqs,
|
|
|
+ .class = &mpu_hwmod_class,
|
|
|
+ .main_clk = "mpu_ck",
|
|
|
+};
|
|
|
+
|
|
|
+/* IVA2 */
|
|
|
+struct omap_hwmod omap2xxx_iva_hwmod = {
|
|
|
+ .name = "iva",
|
|
|
+ .class = &iva_hwmod_class,
|
|
|
+};
|
|
|
+
|
|
|
+/* always-on timers dev attribute */
|
|
|
+static struct omap_timer_capability_dev_attr capability_alwon_dev_attr = {
|
|
|
+ .timer_capability = OMAP_TIMER_ALWON,
|
|
|
+};
|
|
|
+
|
|
|
+/* pwm timers dev attribute */
|
|
|
+static struct omap_timer_capability_dev_attr capability_pwm_dev_attr = {
|