1 2#include <plat/omap_hwmod.h> 3#include <mach/irqs.h> 4#include <plat/cpu.h> 5#include <plat/dma.h> 6 7#include "omap_hwmod_common_data.h" 8 9#include "prm-regbits-24xx.h" 10 11/* 12 * OMAP2430 hardware module integration data 13 * 14 * ALl of the data in this section should be autogeneratable from the 15 * TI hardware database or other technical documentation. Data that 16 * is driver-specific or driver-kernel integration-specific belongs 17 * elsewhere. 18 */ 19 20static struct omap_hwmod omap2430_mpu_hwmod; 21static struct omap_hwmod omap2430_iva_hwmod; 22static struct omap_hwmod omap2430_l3_main_hwmod; 23static struct omap_hwmod omap2430_l4_core_hwmod; 24 25/* L3 -> L4_CORE interface */ 26static struct omap_hwmod_ocp_if omap2430_l3_main__l4_core = { 27 .master = &omap2430_l3_main_hwmod, 28 .slave = &omap2430_l4_core_hwmod, 29 .user = OCP_USER_MPU | OCP_USER_SDMA, 30}; 31 32/* MPU -> L3 interface */ 33static struct omap_hwmod_ocp_if omap2430_mpu__l3_main = { 34 .master = &omap2430_mpu_hwmod, 35 .slave = &omap2430_l3_main_hwmod, 36 .user = OCP_USER_MPU, 37}; 38 39/* Slave interfaces on the L3 interconnect */ 40static struct omap_hwmod_ocp_if *omap2430_l3_main_slaves[] = { 41 &omap2430_mpu__l3_main, 42}; 43 44/* Master interfaces on the L3 interconnect */ 45static struct omap_hwmod_ocp_if *omap2430_l3_main_masters[] = { 46 &omap2430_l3_main__l4_core, 47}; 48 49/* L3 */ 50static struct omap_hwmod omap2430_l3_main_hwmod = { 51 .name = "l3_main", 52 .class = &l3_hwmod_class, 53 .masters = omap2430_l3_main_masters, 54 .masters_cnt = ARRAY_SIZE(omap2430_l3_main_masters), 55 .slaves = omap2430_l3_main_slaves, 56 .slaves_cnt = ARRAY_SIZE(omap2430_l3_main_slaves), 57 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), 58 .flags = HWMOD_NO_IDLEST, 59}; 60 61static struct omap_hwmod omap2430_l4_wkup_hwmod; 62 63/* L4_CORE -> L4_WKUP interface */ 64static struct omap_hwmod_ocp_if omap2430_l4_core__l4_wkup = { 65 .master = &omap2430_l4_core_hwmod, 66 .slave = &omap2430_l4_wkup_hwmod, 67 .user = OCP_USER_MPU | OCP_USER_SDMA, 68}; 69 70/* Slave interfaces on the L4_CORE interconnect */ 71static struct omap_hwmod_ocp_if *omap2430_l4_core_slaves[] = { 72 &omap2430_l3_main__l4_core, 73}; 74 75/* Master interfaces on the L4_CORE interconnect */ 76static struct omap_hwmod_ocp_if *omap2430_l4_core_masters[] = { 77 &omap2430_l4_core__l4_wkup, 78}; 79 80/* L4 CORE */ 81static struct omap_hwmod omap2430_l4_core_hwmod = { 82 .name = "l4_core", 83 .class = &l4_hwmod_class, 84 .masters = omap2430_l4_core_masters, 85 .masters_cnt = ARRAY_SIZE(omap2430_l4_core_masters), 86 .slaves = omap2430_l4_core_slaves, 87 .slaves_cnt = ARRAY_SIZE(omap2430_l4_core_slaves), 88 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), 89 .flags = HWMOD_NO_IDLEST, 90}; 91 92/* Slave interfaces on the L4_WKUP interconnect */ 93static struct omap_hwmod_ocp_if *omap2430_l4_wkup_slaves[] = { 94 &omap2430_l4_core__l4_wkup, 95}; 96 97/* Master interfaces on the L4_WKUP interconnect */ 98static struct omap_hwmod_ocp_if *omap2430_l4_wkup_masters[] = { 99}; 100 101/* L4 WKUP */ 102static struct omap_hwmod omap2430_l4_wkup_hwmod = { 103 .name = "l4_wkup", 104 .class = &l4_hwmod_class, 105 .masters = omap2430_l4_wkup_masters, 106 .masters_cnt = ARRAY_SIZE(omap2430_l4_wkup_masters), 107 .slaves = omap2430_l4_wkup_slaves, 108 .slaves_cnt = ARRAY_SIZE(omap2430_l4_wkup_slaves), 109 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), 110 .flags = HWMOD_NO_IDLEST, 111}; 112 113/* Master interfaces on the MPU device */ 114static struct omap_hwmod_ocp_if *omap2430_mpu_masters[] = { 115 &omap2430_mpu__l3_main, 116}; 117 118/* MPU */ 119static struct omap_hwmod omap2430_mpu_hwmod = { 120 .name = "mpu", 121 .class = &mpu_hwmod_class, 122 .main_clk = "mpu_ck", 123 .masters = omap2430_mpu_masters, 124 .masters_cnt = ARRAY_SIZE(omap2430_mpu_masters), 125 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), 126}; 127 128/* 129 * IVA2_1 interface data 130 */ 131 132/* IVA2 <- L3 interface */ 133static struct omap_hwmod_ocp_if omap2430_l3__iva = { 134 .master = &omap2430_l3_main_hwmod, 135 .slave = &omap2430_iva_hwmod, 136 .clk = "dsp_fck", 137 .user = OCP_USER_MPU | OCP_USER_SDMA, 138}; 139 140static struct omap_hwmod_ocp_if *omap2430_iva_masters[] = { 141 &omap2430_l3__iva, 142}; 143 144/* 145 * IVA2 (IVA2) 146 */ 147 148static struct omap_hwmod omap2430_iva_hwmod = { 149 .name = "iva", 150 .class = &iva_hwmod_class, 151 .masters = omap2430_iva_masters, 152 .masters_cnt = ARRAY_SIZE(omap2430_iva_masters), 153 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) 154}; 155 156static __initdata struct omap_hwmod *omap2430_hwmods[] = { 157 &omap2430_l3_main_hwmod, 158 &omap2430_l4_core_hwmod, 159 &omap2430_l4_wkup_hwmod, 160 &omap2430_mpu_hwmod, 161 &omap2430_iva_hwmod, 162 NULL, 163}; 164 165int __init omap2430_hwmod_init(void) 166{ 167 return omap_hwmod_init(omap2430_hwmods); 168} 169