diff options
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod_2420_data.c')
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2420_data.c | 921 | 
1 files changed, 427 insertions, 494 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c index 42921ff12e8..f74335ff409 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c @@ -33,55 +33,15 @@  /*   * OMAP2420 hardware module integration data   * - * ALl of the data in this section should be autogeneratable from the + * All of the data in this section should be autogeneratable from the   * TI hardware database or other technical documentation.  Data that   * is driver-specific or driver-kernel integration-specific belongs   * elsewhere.   */ -static struct omap_hwmod omap2420_mpu_hwmod; -static struct omap_hwmod omap2420_iva_hwmod; -static struct omap_hwmod omap2420_l3_main_hwmod; -static struct omap_hwmod omap2420_l4_core_hwmod; -static struct omap_hwmod omap2420_dss_core_hwmod; -static struct omap_hwmod omap2420_dss_dispc_hwmod; -static struct omap_hwmod omap2420_dss_rfbi_hwmod; -static struct omap_hwmod omap2420_dss_venc_hwmod; -static struct omap_hwmod omap2420_wd_timer2_hwmod; -static struct omap_hwmod omap2420_gpio1_hwmod; -static struct omap_hwmod omap2420_gpio2_hwmod; -static struct omap_hwmod omap2420_gpio3_hwmod; -static struct omap_hwmod omap2420_gpio4_hwmod; -static struct omap_hwmod omap2420_dma_system_hwmod; -static struct omap_hwmod omap2420_mcspi1_hwmod; -static struct omap_hwmod omap2420_mcspi2_hwmod; - -/* L3 -> L4_CORE interface */ -static struct omap_hwmod_ocp_if omap2420_l3_main__l4_core = { -	.master	= &omap2420_l3_main_hwmod, -	.slave	= &omap2420_l4_core_hwmod, -	.user	= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* MPU -> L3 interface */ -static struct omap_hwmod_ocp_if omap2420_mpu__l3_main = { -	.master = &omap2420_mpu_hwmod, -	.slave	= &omap2420_l3_main_hwmod, -	.user	= OCP_USER_MPU, -}; - -/* DSS -> l3 */ -static struct omap_hwmod_ocp_if omap2420_dss__l3 = { -	.master		= &omap2420_dss_core_hwmod, -	.slave		= &omap2420_l3_main_hwmod, -	.fw = { -		.omap2 = { -			.l3_perm_bit  = OMAP2_L3_CORE_FW_CONNID_DSS, -			.flags	= OMAP_FIREWALL_L3, -		} -	}, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; +/* + * IP blocks + */  /* L3 */  static struct omap_hwmod omap2420_l3_main_hwmod = { @@ -90,85 +50,6 @@ static struct omap_hwmod omap2420_l3_main_hwmod = {  	.flags		= HWMOD_NO_IDLEST,  }; -static struct omap_hwmod omap2420_l4_wkup_hwmod; -static struct omap_hwmod omap2420_uart1_hwmod; -static struct omap_hwmod omap2420_uart2_hwmod; -static struct omap_hwmod omap2420_uart3_hwmod; -static struct omap_hwmod omap2420_i2c1_hwmod; -static struct omap_hwmod omap2420_i2c2_hwmod; -static struct omap_hwmod omap2420_mcbsp1_hwmod; -static struct omap_hwmod omap2420_mcbsp2_hwmod; - -/* l4 core -> mcspi1 interface */ -static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi1 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_mcspi1_hwmod, -	.clk		= "mcspi1_ick", -	.addr		= omap2_mcspi1_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* l4 core -> mcspi2 interface */ -static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi2 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_mcspi2_hwmod, -	.clk		= "mcspi2_ick", -	.addr		= omap2_mcspi2_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* L4_CORE -> L4_WKUP interface */ -static struct omap_hwmod_ocp_if omap2420_l4_core__l4_wkup = { -	.master	= &omap2420_l4_core_hwmod, -	.slave	= &omap2420_l4_wkup_hwmod, -	.user	= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* L4 CORE -> UART1 interface */ -static struct omap_hwmod_ocp_if omap2_l4_core__uart1 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_uart1_hwmod, -	.clk		= "uart1_ick", -	.addr		= omap2xxx_uart1_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* L4 CORE -> UART2 interface */ -static struct omap_hwmod_ocp_if omap2_l4_core__uart2 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_uart2_hwmod, -	.clk		= "uart2_ick", -	.addr		= omap2xxx_uart2_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* L4 PER -> UART3 interface */ -static struct omap_hwmod_ocp_if omap2_l4_core__uart3 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_uart3_hwmod, -	.clk		= "uart3_ick", -	.addr		= omap2xxx_uart3_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* L4 CORE -> I2C1 interface */ -static struct omap_hwmod_ocp_if omap2420_l4_core__i2c1 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_i2c1_hwmod, -	.clk		= "i2c1_ick", -	.addr		= omap2_i2c1_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* L4 CORE -> I2C2 interface */ -static struct omap_hwmod_ocp_if omap2420_l4_core__i2c2 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_i2c2_hwmod, -	.clk		= "i2c2_ick", -	.addr		= omap2_i2c2_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  /* L4 CORE */  static struct omap_hwmod omap2420_l4_core_hwmod = {  	.name		= "l4_core", @@ -190,22 +71,7 @@ static struct omap_hwmod omap2420_mpu_hwmod = {  	.main_clk	= "mpu_ck",  }; -/* - * IVA1 interface data - */ - -/* IVA <- L3 interface */ -static struct omap_hwmod_ocp_if omap2420_l3__iva = { -	.master		= &omap2420_l3_main_hwmod, -	.slave		= &omap2420_iva_hwmod, -	.clk		= "iva1_ifck", -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* - * IVA2 (IVA2) - */ - +/* IVA2 (IVA2) */  static struct omap_hwmod omap2420_iva_hwmod = {  	.name		= "iva",  	.class		= &iva_hwmod_class, @@ -213,36 +79,15 @@ static struct omap_hwmod omap2420_iva_hwmod = {  /* always-on timers dev attribute */  static struct omap_timer_capability_dev_attr capability_alwon_dev_attr = { -	.timer_capability       = OMAP_TIMER_ALWON, +	.timer_capability	= OMAP_TIMER_ALWON,  };  /* pwm timers dev attribute */  static struct omap_timer_capability_dev_attr capability_pwm_dev_attr = { -	.timer_capability       = OMAP_TIMER_HAS_PWM, +	.timer_capability	= OMAP_TIMER_HAS_PWM,  };  /* timer1 */ -static struct omap_hwmod omap2420_timer1_hwmod; - -static struct omap_hwmod_addr_space omap2420_timer1_addrs[] = { -	{ -		.pa_start	= 0x48028000, -		.pa_end		= 0x48028000 + SZ_1K - 1, -		.flags		= ADDR_TYPE_RT -	}, -	{ } -}; - -/* l4_wkup -> timer1 */ -static struct omap_hwmod_ocp_if omap2420_l4_wkup__timer1 = { -	.master		= &omap2420_l4_wkup_hwmod, -	.slave		= &omap2420_timer1_hwmod, -	.clk		= "gpt1_ick", -	.addr		= omap2420_timer1_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer1 hwmod */  static struct omap_hwmod omap2420_timer1_hwmod = {  	.name		= "timer1",  	.mpu_irqs	= omap2_timer1_mpu_irqs, @@ -261,18 +106,6 @@ static struct omap_hwmod omap2420_timer1_hwmod = {  };  /* timer2 */ -static struct omap_hwmod omap2420_timer2_hwmod; - -/* l4_core -> timer2 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer2 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer2_hwmod, -	.clk		= "gpt2_ick", -	.addr		= omap2xxx_timer2_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer2 hwmod */  static struct omap_hwmod omap2420_timer2_hwmod = {  	.name		= "timer2",  	.mpu_irqs	= omap2_timer2_mpu_irqs, @@ -291,18 +124,6 @@ static struct omap_hwmod omap2420_timer2_hwmod = {  };  /* timer3 */ -static struct omap_hwmod omap2420_timer3_hwmod; - -/* l4_core -> timer3 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer3 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer3_hwmod, -	.clk		= "gpt3_ick", -	.addr		= omap2xxx_timer3_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer3 hwmod */  static struct omap_hwmod omap2420_timer3_hwmod = {  	.name		= "timer3",  	.mpu_irqs	= omap2_timer3_mpu_irqs, @@ -321,18 +142,6 @@ static struct omap_hwmod omap2420_timer3_hwmod = {  };  /* timer4 */ -static struct omap_hwmod omap2420_timer4_hwmod; - -/* l4_core -> timer4 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer4 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer4_hwmod, -	.clk		= "gpt4_ick", -	.addr		= omap2xxx_timer4_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer4 hwmod */  static struct omap_hwmod omap2420_timer4_hwmod = {  	.name		= "timer4",  	.mpu_irqs	= omap2_timer4_mpu_irqs, @@ -351,18 +160,6 @@ static struct omap_hwmod omap2420_timer4_hwmod = {  };  /* timer5 */ -static struct omap_hwmod omap2420_timer5_hwmod; - -/* l4_core -> timer5 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer5 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer5_hwmod, -	.clk		= "gpt5_ick", -	.addr		= omap2xxx_timer5_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer5 hwmod */  static struct omap_hwmod omap2420_timer5_hwmod = {  	.name		= "timer5",  	.mpu_irqs	= omap2_timer5_mpu_irqs, @@ -380,20 +177,7 @@ static struct omap_hwmod omap2420_timer5_hwmod = {  	.class		= &omap2xxx_timer_hwmod_class,  }; -  /* timer6 */ -static struct omap_hwmod omap2420_timer6_hwmod; - -/* l4_core -> timer6 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer6 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer6_hwmod, -	.clk		= "gpt6_ick", -	.addr		= omap2xxx_timer6_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer6 hwmod */  static struct omap_hwmod omap2420_timer6_hwmod = {  	.name		= "timer6",  	.mpu_irqs	= omap2_timer6_mpu_irqs, @@ -412,18 +196,6 @@ static struct omap_hwmod omap2420_timer6_hwmod = {  };  /* timer7 */ -static struct omap_hwmod omap2420_timer7_hwmod; - -/* l4_core -> timer7 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer7 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer7_hwmod, -	.clk		= "gpt7_ick", -	.addr		= omap2xxx_timer7_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer7 hwmod */  static struct omap_hwmod omap2420_timer7_hwmod = {  	.name		= "timer7",  	.mpu_irqs	= omap2_timer7_mpu_irqs, @@ -442,18 +214,6 @@ static struct omap_hwmod omap2420_timer7_hwmod = {  };  /* timer8 */ -static struct omap_hwmod omap2420_timer8_hwmod; - -/* l4_core -> timer8 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer8 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer8_hwmod, -	.clk		= "gpt8_ick", -	.addr		= omap2xxx_timer8_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer8 hwmod */  static struct omap_hwmod omap2420_timer8_hwmod = {  	.name		= "timer8",  	.mpu_irqs	= omap2_timer8_mpu_irqs, @@ -472,18 +232,6 @@ static struct omap_hwmod omap2420_timer8_hwmod = {  };  /* timer9 */ -static struct omap_hwmod omap2420_timer9_hwmod; - -/* l4_core -> timer9 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer9 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer9_hwmod, -	.clk		= "gpt9_ick", -	.addr		= omap2xxx_timer9_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer9 hwmod */  static struct omap_hwmod omap2420_timer9_hwmod = {  	.name		= "timer9",  	.mpu_irqs	= omap2_timer9_mpu_irqs, @@ -502,18 +250,6 @@ static struct omap_hwmod omap2420_timer9_hwmod = {  };  /* timer10 */ -static struct omap_hwmod omap2420_timer10_hwmod; - -/* l4_core -> timer10 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer10 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer10_hwmod, -	.clk		= "gpt10_ick", -	.addr		= omap2_timer10_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer10 hwmod */  static struct omap_hwmod omap2420_timer10_hwmod = {  	.name		= "timer10",  	.mpu_irqs	= omap2_timer10_mpu_irqs, @@ -532,18 +268,6 @@ static struct omap_hwmod omap2420_timer10_hwmod = {  };  /* timer11 */ -static struct omap_hwmod omap2420_timer11_hwmod; - -/* l4_core -> timer11 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer11 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer11_hwmod, -	.clk		= "gpt11_ick", -	.addr		= omap2_timer11_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer11 hwmod */  static struct omap_hwmod omap2420_timer11_hwmod = {  	.name		= "timer11",  	.mpu_irqs	= omap2_timer11_mpu_irqs, @@ -562,18 +286,6 @@ static struct omap_hwmod omap2420_timer11_hwmod = {  };  /* timer12 */ -static struct omap_hwmod omap2420_timer12_hwmod; - -/* l4_core -> timer12 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__timer12 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_timer12_hwmod, -	.clk		= "gpt12_ick", -	.addr		= omap2xxx_timer12_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* timer12 hwmod */  static struct omap_hwmod omap2420_timer12_hwmod = {  	.name		= "timer12",  	.mpu_irqs	= omap2xxx_timer12_mpu_irqs, @@ -591,24 +303,6 @@ static struct omap_hwmod omap2420_timer12_hwmod = {  	.class		= &omap2xxx_timer_hwmod_class,  }; -/* l4_wkup -> wd_timer2 */ -static struct omap_hwmod_addr_space omap2420_wd_timer2_addrs[] = { -	{ -		.pa_start	= 0x48022000, -		.pa_end		= 0x4802207f, -		.flags		= ADDR_TYPE_RT -	}, -	{ } -}; - -static struct omap_hwmod_ocp_if omap2420_l4_wkup__wd_timer2 = { -	.master		= &omap2420_l4_wkup_hwmod, -	.slave		= &omap2420_wd_timer2_hwmod, -	.clk		= "mpu_wdt_ick", -	.addr		= omap2420_wd_timer2_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  static struct omap_hwmod omap2420_wd_timer2_hwmod = {  	.name		= "wd_timer2",  	.class		= &omap2xxx_wd_timer_hwmod_class, @@ -625,7 +319,6 @@ static struct omap_hwmod omap2420_wd_timer2_hwmod = {  };  /* UART1 */ -  static struct omap_hwmod omap2420_uart1_hwmod = {  	.name		= "uart1",  	.mpu_irqs	= omap2_uart1_mpu_irqs, @@ -644,7 +337,6 @@ static struct omap_hwmod omap2420_uart1_hwmod = {  };  /* UART2 */ -  static struct omap_hwmod omap2420_uart2_hwmod = {  	.name		= "uart2",  	.mpu_irqs	= omap2_uart2_mpu_irqs, @@ -663,7 +355,6 @@ static struct omap_hwmod omap2420_uart2_hwmod = {  };  /* UART3 */ -  static struct omap_hwmod omap2420_uart3_hwmod = {  	.name		= "uart3",  	.mpu_irqs	= omap2_uart3_mpu_irqs, @@ -683,21 +374,6 @@ static struct omap_hwmod omap2420_uart3_hwmod = {  /* dss */ -/* l4_core -> dss */ -static struct omap_hwmod_ocp_if omap2420_l4_core__dss = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_dss_core_hwmod, -	.clk		= "dss_ick", -	.addr		= omap2_dss_addrs, -	.fw = { -		.omap2 = { -			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_CORE_REGION, -			.flags	= OMAP_FIREWALL_L4, -		} -	}, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  static struct omap_hwmod_opt_clk dss_opt_clks[] = {  	/*  	 * The DSS HW needs all DSS clocks enabled during reset. The dss_core @@ -726,21 +402,6 @@ static struct omap_hwmod omap2420_dss_core_hwmod = {  	.flags		= HWMOD_NO_IDLEST | HWMOD_CONTROL_OPT_CLKS_IN_RESET,  }; -/* l4_core -> dss_dispc */ -static struct omap_hwmod_ocp_if omap2420_l4_core__dss_dispc = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_dss_dispc_hwmod, -	.clk		= "dss_ick", -	.addr		= omap2_dss_dispc_addrs, -	.fw = { -		.omap2 = { -			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_DISPC_REGION, -			.flags	= OMAP_FIREWALL_L4, -		} -	}, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  static struct omap_hwmod omap2420_dss_dispc_hwmod = {  	.name		= "dss_dispc",  	.class		= &omap2_dispc_hwmod_class, @@ -759,21 +420,6 @@ static struct omap_hwmod omap2420_dss_dispc_hwmod = {  	.dev_attr	= &omap2_3_dss_dispc_dev_attr  }; -/* l4_core -> dss_rfbi */ -static struct omap_hwmod_ocp_if omap2420_l4_core__dss_rfbi = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_dss_rfbi_hwmod, -	.clk		= "dss_ick", -	.addr		= omap2_dss_rfbi_addrs, -	.fw = { -		.omap2 = { -			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_CORE_REGION, -			.flags	= OMAP_FIREWALL_L4, -		} -	}, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  static struct omap_hwmod_opt_clk dss_rfbi_opt_clks[] = {  	{ .role = "ick", .clk = "dss_ick" },  }; @@ -794,21 +440,6 @@ static struct omap_hwmod omap2420_dss_rfbi_hwmod = {  	.flags		= HWMOD_NO_IDLEST,  }; -/* l4_core -> dss_venc */ -static struct omap_hwmod_ocp_if omap2420_l4_core__dss_venc = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_dss_venc_hwmod, -	.clk		= "dss_ick", -	.addr		= omap2_dss_venc_addrs, -	.fw = { -		.omap2 = { -			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_VENC_REGION, -			.flags	= OMAP_FIREWALL_L4, -		} -	}, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  static struct omap_hwmod omap2420_dss_venc_hwmod = {  	.name		= "dss_venc",  	.class		= &omap2_venc_hwmod_class, @@ -847,7 +478,6 @@ static struct omap_i2c_dev_attr i2c_dev_attr = {  };  /* I2C1 */ -  static struct omap_hwmod omap2420_i2c1_hwmod = {  	.name		= "i2c1",  	.mpu_irqs	= omap2_i2c1_mpu_irqs, @@ -868,7 +498,6 @@ static struct omap_hwmod omap2420_i2c1_hwmod = {  };  /* I2C2 */ -  static struct omap_hwmod omap2420_i2c2_hwmod = {  	.name		= "i2c2",  	.mpu_irqs	= omap2_i2c2_mpu_irqs, @@ -888,78 +517,6 @@ static struct omap_hwmod omap2420_i2c2_hwmod = {  	.flags		= HWMOD_16BIT_REG,  }; -/* l4_wkup -> gpio1 */ -static struct omap_hwmod_addr_space omap2420_gpio1_addr_space[] = { -	{ -		.pa_start	= 0x48018000, -		.pa_end		= 0x480181ff, -		.flags		= ADDR_TYPE_RT -	}, -	{ } -}; - -static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio1 = { -	.master		= &omap2420_l4_wkup_hwmod, -	.slave		= &omap2420_gpio1_hwmod, -	.clk		= "gpios_ick", -	.addr		= omap2420_gpio1_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* l4_wkup -> gpio2 */ -static struct omap_hwmod_addr_space omap2420_gpio2_addr_space[] = { -	{ -		.pa_start	= 0x4801a000, -		.pa_end		= 0x4801a1ff, -		.flags		= ADDR_TYPE_RT -	}, -	{ } -}; - -static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio2 = { -	.master		= &omap2420_l4_wkup_hwmod, -	.slave		= &omap2420_gpio2_hwmod, -	.clk		= "gpios_ick", -	.addr		= omap2420_gpio2_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* l4_wkup -> gpio3 */ -static struct omap_hwmod_addr_space omap2420_gpio3_addr_space[] = { -	{ -		.pa_start	= 0x4801c000, -		.pa_end		= 0x4801c1ff, -		.flags		= ADDR_TYPE_RT -	}, -	{ } -}; - -static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio3 = { -	.master		= &omap2420_l4_wkup_hwmod, -	.slave		= &omap2420_gpio3_hwmod, -	.clk		= "gpios_ick", -	.addr		= omap2420_gpio3_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* l4_wkup -> gpio4 */ -static struct omap_hwmod_addr_space omap2420_gpio4_addr_space[] = { -	{ -		.pa_start	= 0x4801e000, -		.pa_end		= 0x4801e1ff, -		.flags		= ADDR_TYPE_RT -	}, -	{ } -}; - -static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio4 = { -	.master		= &omap2420_l4_wkup_hwmod, -	.slave		= &omap2420_gpio4_hwmod, -	.clk		= "gpios_ick", -	.addr		= omap2420_gpio4_addr_space, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  /* gpio dev_attr */  static struct omap_gpio_dev_attr gpio_dev_attr = {  	.bank_width = 32, @@ -1049,23 +606,6 @@ static struct omap_dma_dev_attr dma_dev_attr = {  	.lch_count = 32,  }; -/* dma_system -> L3 */ -static struct omap_hwmod_ocp_if omap2420_dma_system__l3 = { -	.master		= &omap2420_dma_system_hwmod, -	.slave		= &omap2420_l3_main_hwmod, -	.clk		= "core_l3_ck", -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; - -/* l4_core -> dma_system */ -static struct omap_hwmod_ocp_if omap2420_l4_core__dma_system = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_dma_system_hwmod, -	.clk		= "sdma_ick", -	.addr		= omap2_dma_system_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  static struct omap_hwmod omap2420_dma_system_hwmod = {  	.name		= "dma",  	.class		= &omap2xxx_dma_hwmod_class, @@ -1076,21 +616,12 @@ static struct omap_hwmod omap2420_dma_system_hwmod = {  };  /* mailbox */ -static struct omap_hwmod omap2420_mailbox_hwmod;  static struct omap_hwmod_irq_info omap2420_mailbox_irqs[] = {  	{ .name = "dsp", .irq = 26 },  	{ .name = "iva", .irq = 34 },  	{ .irq = -1 }  }; -/* l4_core -> mailbox */ -static struct omap_hwmod_ocp_if omap2420_l4_core__mailbox = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_mailbox_hwmod, -	.addr		= omap2_mailbox_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  static struct omap_hwmod omap2420_mailbox_hwmod = {  	.name		= "mailbox",  	.class		= &omap2xxx_mailbox_hwmod_class, @@ -1169,15 +700,6 @@ static struct omap_hwmod_irq_info omap2420_mcbsp1_irqs[] = {  	{ .irq = -1 }  }; -/* l4_core -> mcbsp1 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp1 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_mcbsp1_hwmod, -	.clk		= "mcbsp1_ick", -	.addr		= omap2_mcbsp1_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  static struct omap_hwmod omap2420_mcbsp1_hwmod = {  	.name		= "mcbsp1",  	.class		= &omap2420_mcbsp_hwmod_class, @@ -1202,15 +724,6 @@ static struct omap_hwmod_irq_info omap2420_mcbsp2_irqs[] = {  	{ .irq = -1 }  }; -/* l4_core -> mcbsp2 */ -static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp2 = { -	.master		= &omap2420_l4_core_hwmod, -	.slave		= &omap2420_mcbsp2_hwmod, -	.clk		= "mcbsp2_ick", -	.addr		= omap2xxx_mcbsp2_addrs, -	.user		= OCP_USER_MPU | OCP_USER_SDMA, -}; -  static struct omap_hwmod omap2420_mcbsp2_hwmod = {  	.name		= "mcbsp2",  	.class		= &omap2420_mcbsp_hwmod_class, @@ -1228,6 +741,426 @@ static struct omap_hwmod omap2420_mcbsp2_hwmod = {  	},  }; +/* + * interfaces + */ + +/* L3 -> L4_CORE interface */ +static struct omap_hwmod_ocp_if omap2420_l3_main__l4_core = { +	.master	= &omap2420_l3_main_hwmod, +	.slave	= &omap2420_l4_core_hwmod, +	.user	= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* MPU -> L3 interface */ +static struct omap_hwmod_ocp_if omap2420_mpu__l3_main = { +	.master = &omap2420_mpu_hwmod, +	.slave	= &omap2420_l3_main_hwmod, +	.user	= OCP_USER_MPU, +}; + +/* DSS -> l3 */ +static struct omap_hwmod_ocp_if omap2420_dss__l3 = { +	.master		= &omap2420_dss_core_hwmod, +	.slave		= &omap2420_l3_main_hwmod, +	.fw = { +		.omap2 = { +			.l3_perm_bit  = OMAP2_L3_CORE_FW_CONNID_DSS, +			.flags	= OMAP_FIREWALL_L3, +		} +	}, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4 core -> mcspi1 interface */ +static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi1 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_mcspi1_hwmod, +	.clk		= "mcspi1_ick", +	.addr		= omap2_mcspi1_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4 core -> mcspi2 interface */ +static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi2 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_mcspi2_hwmod, +	.clk		= "mcspi2_ick", +	.addr		= omap2_mcspi2_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* L4_CORE -> L4_WKUP interface */ +static struct omap_hwmod_ocp_if omap2420_l4_core__l4_wkup = { +	.master	= &omap2420_l4_core_hwmod, +	.slave	= &omap2420_l4_wkup_hwmod, +	.user	= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* L4 CORE -> UART1 interface */ +static struct omap_hwmod_ocp_if omap2_l4_core__uart1 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_uart1_hwmod, +	.clk		= "uart1_ick", +	.addr		= omap2xxx_uart1_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* L4 CORE -> UART2 interface */ +static struct omap_hwmod_ocp_if omap2_l4_core__uart2 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_uart2_hwmod, +	.clk		= "uart2_ick", +	.addr		= omap2xxx_uart2_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* L4 PER -> UART3 interface */ +static struct omap_hwmod_ocp_if omap2_l4_core__uart3 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_uart3_hwmod, +	.clk		= "uart3_ick", +	.addr		= omap2xxx_uart3_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* L4 CORE -> I2C1 interface */ +static struct omap_hwmod_ocp_if omap2420_l4_core__i2c1 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_i2c1_hwmod, +	.clk		= "i2c1_ick", +	.addr		= omap2_i2c1_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* L4 CORE -> I2C2 interface */ +static struct omap_hwmod_ocp_if omap2420_l4_core__i2c2 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_i2c2_hwmod, +	.clk		= "i2c2_ick", +	.addr		= omap2_i2c2_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* IVA <- L3 interface */ +static struct omap_hwmod_ocp_if omap2420_l3__iva = { +	.master		= &omap2420_l3_main_hwmod, +	.slave		= &omap2420_iva_hwmod, +	.clk		= "iva1_ifck", +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +static struct omap_hwmod_addr_space omap2420_timer1_addrs[] = { +	{ +		.pa_start	= 0x48028000, +		.pa_end		= 0x48028000 + SZ_1K - 1, +		.flags		= ADDR_TYPE_RT +	}, +	{ } +}; + +/* l4_wkup -> timer1 */ +static struct omap_hwmod_ocp_if omap2420_l4_wkup__timer1 = { +	.master		= &omap2420_l4_wkup_hwmod, +	.slave		= &omap2420_timer1_hwmod, +	.clk		= "gpt1_ick", +	.addr		= omap2420_timer1_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer2 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer2 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer2_hwmod, +	.clk		= "gpt2_ick", +	.addr		= omap2xxx_timer2_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer3 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer3 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer3_hwmod, +	.clk		= "gpt3_ick", +	.addr		= omap2xxx_timer3_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer4 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer4 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer4_hwmod, +	.clk		= "gpt4_ick", +	.addr		= omap2xxx_timer4_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer5 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer5 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer5_hwmod, +	.clk		= "gpt5_ick", +	.addr		= omap2xxx_timer5_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer6 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer6 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer6_hwmod, +	.clk		= "gpt6_ick", +	.addr		= omap2xxx_timer6_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer7 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer7 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer7_hwmod, +	.clk		= "gpt7_ick", +	.addr		= omap2xxx_timer7_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer8 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer8 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer8_hwmod, +	.clk		= "gpt8_ick", +	.addr		= omap2xxx_timer8_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer9 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer9 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer9_hwmod, +	.clk		= "gpt9_ick", +	.addr		= omap2xxx_timer9_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer10 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer10 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer10_hwmod, +	.clk		= "gpt10_ick", +	.addr		= omap2_timer10_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer11 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer11 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer11_hwmod, +	.clk		= "gpt11_ick", +	.addr		= omap2_timer11_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> timer12 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__timer12 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_timer12_hwmod, +	.clk		= "gpt12_ick", +	.addr		= omap2xxx_timer12_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_wkup -> wd_timer2 */ +static struct omap_hwmod_addr_space omap2420_wd_timer2_addrs[] = { +	{ +		.pa_start	= 0x48022000, +		.pa_end		= 0x4802207f, +		.flags		= ADDR_TYPE_RT +	}, +	{ } +}; + +static struct omap_hwmod_ocp_if omap2420_l4_wkup__wd_timer2 = { +	.master		= &omap2420_l4_wkup_hwmod, +	.slave		= &omap2420_wd_timer2_hwmod, +	.clk		= "mpu_wdt_ick", +	.addr		= omap2420_wd_timer2_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> dss */ +static struct omap_hwmod_ocp_if omap2420_l4_core__dss = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_dss_core_hwmod, +	.clk		= "dss_ick", +	.addr		= omap2_dss_addrs, +	.fw = { +		.omap2 = { +			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_CORE_REGION, +			.flags	= OMAP_FIREWALL_L4, +		} +	}, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> dss_dispc */ +static struct omap_hwmod_ocp_if omap2420_l4_core__dss_dispc = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_dss_dispc_hwmod, +	.clk		= "dss_ick", +	.addr		= omap2_dss_dispc_addrs, +	.fw = { +		.omap2 = { +			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_DISPC_REGION, +			.flags	= OMAP_FIREWALL_L4, +		} +	}, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> dss_rfbi */ +static struct omap_hwmod_ocp_if omap2420_l4_core__dss_rfbi = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_dss_rfbi_hwmod, +	.clk		= "dss_ick", +	.addr		= omap2_dss_rfbi_addrs, +	.fw = { +		.omap2 = { +			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_CORE_REGION, +			.flags	= OMAP_FIREWALL_L4, +		} +	}, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> dss_venc */ +static struct omap_hwmod_ocp_if omap2420_l4_core__dss_venc = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_dss_venc_hwmod, +	.clk		= "dss_ick", +	.addr		= omap2_dss_venc_addrs, +	.fw = { +		.omap2 = { +			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_VENC_REGION, +			.flags	= OMAP_FIREWALL_L4, +		} +	}, +	.flags		= OCPIF_SWSUP_IDLE, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_wkup -> gpio1 */ +static struct omap_hwmod_addr_space omap2420_gpio1_addr_space[] = { +	{ +		.pa_start	= 0x48018000, +		.pa_end		= 0x480181ff, +		.flags		= ADDR_TYPE_RT +	}, +	{ } +}; + +static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio1 = { +	.master		= &omap2420_l4_wkup_hwmod, +	.slave		= &omap2420_gpio1_hwmod, +	.clk		= "gpios_ick", +	.addr		= omap2420_gpio1_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_wkup -> gpio2 */ +static struct omap_hwmod_addr_space omap2420_gpio2_addr_space[] = { +	{ +		.pa_start	= 0x4801a000, +		.pa_end		= 0x4801a1ff, +		.flags		= ADDR_TYPE_RT +	}, +	{ } +}; + +static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio2 = { +	.master		= &omap2420_l4_wkup_hwmod, +	.slave		= &omap2420_gpio2_hwmod, +	.clk		= "gpios_ick", +	.addr		= omap2420_gpio2_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_wkup -> gpio3 */ +static struct omap_hwmod_addr_space omap2420_gpio3_addr_space[] = { +	{ +		.pa_start	= 0x4801c000, +		.pa_end		= 0x4801c1ff, +		.flags		= ADDR_TYPE_RT +	}, +	{ } +}; + +static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio3 = { +	.master		= &omap2420_l4_wkup_hwmod, +	.slave		= &omap2420_gpio3_hwmod, +	.clk		= "gpios_ick", +	.addr		= omap2420_gpio3_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_wkup -> gpio4 */ +static struct omap_hwmod_addr_space omap2420_gpio4_addr_space[] = { +	{ +		.pa_start	= 0x4801e000, +		.pa_end		= 0x4801e1ff, +		.flags		= ADDR_TYPE_RT +	}, +	{ } +}; + +static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio4 = { +	.master		= &omap2420_l4_wkup_hwmod, +	.slave		= &omap2420_gpio4_hwmod, +	.clk		= "gpios_ick", +	.addr		= omap2420_gpio4_addr_space, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* dma_system -> L3 */ +static struct omap_hwmod_ocp_if omap2420_dma_system__l3 = { +	.master		= &omap2420_dma_system_hwmod, +	.slave		= &omap2420_l3_main_hwmod, +	.clk		= "core_l3_ck", +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> dma_system */ +static struct omap_hwmod_ocp_if omap2420_l4_core__dma_system = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_dma_system_hwmod, +	.clk		= "sdma_ick", +	.addr		= omap2_dma_system_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> mailbox */ +static struct omap_hwmod_ocp_if omap2420_l4_core__mailbox = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_mailbox_hwmod, +	.addr		= omap2_mailbox_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> mcbsp1 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp1 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_mcbsp1_hwmod, +	.clk		= "mcbsp1_ick", +	.addr		= omap2_mcbsp1_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; + +/* l4_core -> mcbsp2 */ +static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp2 = { +	.master		= &omap2420_l4_core_hwmod, +	.slave		= &omap2420_mcbsp2_hwmod, +	.clk		= "mcbsp2_ick", +	.addr		= omap2xxx_mcbsp2_addrs, +	.user		= OCP_USER_MPU | OCP_USER_SDMA, +}; +  static struct omap_hwmod_ocp_if *omap2420_hwmod_ocp_ifs[] __initdata = {  	&omap2420_l3_main__l4_core,  	&omap2420_mpu__l3_main,  |