| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:32 -07:00
										 |  |  |  * omap_hwmod_2420_data.c - hardware modules present on the OMAP2420 chips | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:32 -07:00
										 |  |  |  * Copyright (C) 2009-2010 Nokia Corporation | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  |  * Paul Walmsley | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License version 2 as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * XXX handle crossbar/shared link difference for L3? | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:32 -07:00
										 |  |  |  * XXX these should be marked initdata for multi-OMAP kernels | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2009-10-20 09:40:47 -07:00
										 |  |  | #include <plat/omap_hwmod.h>
 | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | #include <mach/irqs.h>
 | 
					
						
							| 
									
										
										
										
											2009-10-20 09:40:47 -07:00
										 |  |  | #include <plat/cpu.h>
 | 
					
						
							|  |  |  | #include <plat/dma.h>
 | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:34 -07:00
										 |  |  | #include "omap_hwmod_common_data.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | #include "prm-regbits-24xx.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:32 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * OMAP2420 hardware module integration data | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | static struct omap_hwmod omap2420_mpu_hwmod; | 
					
						
							|  |  |  | static struct omap_hwmod omap2420_l3_hwmod; | 
					
						
							|  |  |  | static struct omap_hwmod omap2420_l4_core_hwmod; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* L3 -> L4_CORE interface */ | 
					
						
							|  |  |  | static struct omap_hwmod_ocp_if omap2420_l3__l4_core = { | 
					
						
							|  |  |  | 	.master	= &omap2420_l3_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 = { | 
					
						
							|  |  |  | 	.master = &omap2420_mpu_hwmod, | 
					
						
							|  |  |  | 	.slave	= &omap2420_l3_hwmod, | 
					
						
							|  |  |  | 	.user	= OCP_USER_MPU, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Slave interfaces on the L3 interconnect */ | 
					
						
							|  |  |  | static struct omap_hwmod_ocp_if *omap2420_l3_slaves[] = { | 
					
						
							|  |  |  | 	&omap2420_mpu__l3, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Master interfaces on the L3 interconnect */ | 
					
						
							|  |  |  | static struct omap_hwmod_ocp_if *omap2420_l3_masters[] = { | 
					
						
							|  |  |  | 	&omap2420_l3__l4_core, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* L3 */ | 
					
						
							|  |  |  | static struct omap_hwmod omap2420_l3_hwmod = { | 
					
						
							|  |  |  | 	.name		= "l3_hwmod", | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:34 -07:00
										 |  |  | 	.class		= &l3_hwmod_class, | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | 	.masters	= omap2420_l3_masters, | 
					
						
							|  |  |  | 	.masters_cnt	= ARRAY_SIZE(omap2420_l3_masters), | 
					
						
							|  |  |  | 	.slaves		= omap2420_l3_slaves, | 
					
						
							|  |  |  | 	.slaves_cnt	= ARRAY_SIZE(omap2420_l3_slaves), | 
					
						
							|  |  |  | 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static struct omap_hwmod omap2420_l4_wkup_hwmod; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* 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, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Slave interfaces on the L4_CORE interconnect */ | 
					
						
							|  |  |  | static struct omap_hwmod_ocp_if *omap2420_l4_core_slaves[] = { | 
					
						
							|  |  |  | 	&omap2420_l3__l4_core, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Master interfaces on the L4_CORE interconnect */ | 
					
						
							|  |  |  | static struct omap_hwmod_ocp_if *omap2420_l4_core_masters[] = { | 
					
						
							|  |  |  | 	&omap2420_l4_core__l4_wkup, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* L4 CORE */ | 
					
						
							|  |  |  | static struct omap_hwmod omap2420_l4_core_hwmod = { | 
					
						
							|  |  |  | 	.name		= "l4_core_hwmod", | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:34 -07:00
										 |  |  | 	.class		= &l4_hwmod_class, | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | 	.masters	= omap2420_l4_core_masters, | 
					
						
							|  |  |  | 	.masters_cnt	= ARRAY_SIZE(omap2420_l4_core_masters), | 
					
						
							|  |  |  | 	.slaves		= omap2420_l4_core_slaves, | 
					
						
							|  |  |  | 	.slaves_cnt	= ARRAY_SIZE(omap2420_l4_core_slaves), | 
					
						
							|  |  |  | 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Slave interfaces on the L4_WKUP interconnect */ | 
					
						
							|  |  |  | static struct omap_hwmod_ocp_if *omap2420_l4_wkup_slaves[] = { | 
					
						
							|  |  |  | 	&omap2420_l4_core__l4_wkup, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Master interfaces on the L4_WKUP interconnect */ | 
					
						
							|  |  |  | static struct omap_hwmod_ocp_if *omap2420_l4_wkup_masters[] = { | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* L4 WKUP */ | 
					
						
							|  |  |  | static struct omap_hwmod omap2420_l4_wkup_hwmod = { | 
					
						
							|  |  |  | 	.name		= "l4_wkup_hwmod", | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:34 -07:00
										 |  |  | 	.class		= &l4_hwmod_class, | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | 	.masters	= omap2420_l4_wkup_masters, | 
					
						
							|  |  |  | 	.masters_cnt	= ARRAY_SIZE(omap2420_l4_wkup_masters), | 
					
						
							|  |  |  | 	.slaves		= omap2420_l4_wkup_slaves, | 
					
						
							|  |  |  | 	.slaves_cnt	= ARRAY_SIZE(omap2420_l4_wkup_slaves), | 
					
						
							|  |  |  | 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Master interfaces on the MPU device */ | 
					
						
							|  |  |  | static struct omap_hwmod_ocp_if *omap2420_mpu_masters[] = { | 
					
						
							|  |  |  | 	&omap2420_mpu__l3, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* MPU */ | 
					
						
							|  |  |  | static struct omap_hwmod omap2420_mpu_hwmod = { | 
					
						
							| 
									
										
										
										
											2010-05-20 12:31:10 -06:00
										 |  |  | 	.name		= "mpu", | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:34 -07:00
										 |  |  | 	.class		= &mpu_hwmod_class, | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:31 -07:00
										 |  |  | 	.main_clk	= "mpu_ck", | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | 	.masters	= omap2420_mpu_masters, | 
					
						
							|  |  |  | 	.masters_cnt	= ARRAY_SIZE(omap2420_mpu_masters), | 
					
						
							|  |  |  | 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static __initdata struct omap_hwmod *omap2420_hwmods[] = { | 
					
						
							|  |  |  | 	&omap2420_l3_hwmod, | 
					
						
							|  |  |  | 	&omap2420_l4_core_hwmod, | 
					
						
							|  |  |  | 	&omap2420_l4_wkup_hwmod, | 
					
						
							|  |  |  | 	&omap2420_mpu_hwmod, | 
					
						
							|  |  |  | 	NULL, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-22 22:09:32 -07:00
										 |  |  | int __init omap2420_hwmod_init(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return omap_hwmod_init(omap2420_hwmods); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-09-03 20:14:05 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 |