1 /* 2 * 3 * Copyright (C) 2013 Texas Instruments Incorporated 4 * 5 * Interconnects common for AM335x and AM43x 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation version 2. 10 * 11 * This program is distributed "as is" WITHOUT ANY WARRANTY of any 12 * kind, whether express or implied; without even the implied warranty 13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 */ 16 17 #include <linux/sizes.h> 18 #include "omap_hwmod.h" 19 #include "omap_hwmod_33xx_43xx_common_data.h" 20 21 /* mpu -> l3 main */ 22 struct omap_hwmod_ocp_if am33xx_mpu__l3_main = { 23 .master = &am33xx_mpu_hwmod, 24 .slave = &am33xx_l3_main_hwmod, 25 .clk = "dpll_mpu_m2_ck", 26 .user = OCP_USER_MPU, 27 }; 28 29 /* l3 main -> l3 s */ 30 struct omap_hwmod_ocp_if am33xx_l3_main__l3_s = { 31 .master = &am33xx_l3_main_hwmod, 32 .slave = &am33xx_l3_s_hwmod, 33 .clk = "l3s_gclk", 34 .user = OCP_USER_MPU | OCP_USER_SDMA, 35 }; 36 37 /* l3 s -> l4 per/ls */ 38 struct omap_hwmod_ocp_if am33xx_l3_s__l4_ls = { 39 .master = &am33xx_l3_s_hwmod, 40 .slave = &am33xx_l4_ls_hwmod, 41 .clk = "l3s_gclk", 42 .user = OCP_USER_MPU | OCP_USER_SDMA, 43 }; 44 45 /* l3 s -> l4 wkup */ 46 struct omap_hwmod_ocp_if am33xx_l3_s__l4_wkup = { 47 .master = &am33xx_l3_s_hwmod, 48 .slave = &am33xx_l4_wkup_hwmod, 49 .clk = "l3s_gclk", 50 .user = OCP_USER_MPU | OCP_USER_SDMA, 51 }; 52 53 /* l3 main -> l3 instr */ 54 struct omap_hwmod_ocp_if am33xx_l3_main__l3_instr = { 55 .master = &am33xx_l3_main_hwmod, 56 .slave = &am33xx_l3_instr_hwmod, 57 .clk = "l3s_gclk", 58 .user = OCP_USER_MPU | OCP_USER_SDMA, 59 }; 60 61 /* mpu -> prcm */ 62 struct omap_hwmod_ocp_if am33xx_mpu__prcm = { 63 .master = &am33xx_mpu_hwmod, 64 .slave = &am33xx_prcm_hwmod, 65 .clk = "dpll_mpu_m2_ck", 66 .user = OCP_USER_MPU | OCP_USER_SDMA, 67 }; 68 69 /* l3 s -> l3 main*/ 70 struct omap_hwmod_ocp_if am33xx_l3_s__l3_main = { 71 .master = &am33xx_l3_s_hwmod, 72 .slave = &am33xx_l3_main_hwmod, 73 .clk = "l3s_gclk", 74 .user = OCP_USER_MPU | OCP_USER_SDMA, 75 }; 76 77 /* pru-icss -> l3 main */ 78 struct omap_hwmod_ocp_if am33xx_pruss__l3_main = { 79 .master = &am33xx_pruss_hwmod, 80 .slave = &am33xx_l3_main_hwmod, 81 .clk = "l3_gclk", 82 .user = OCP_USER_MPU | OCP_USER_SDMA, 83 }; 84 85 /* gfx -> l3 main */ 86 struct omap_hwmod_ocp_if am33xx_gfx__l3_main = { 87 .master = &am33xx_gfx_hwmod, 88 .slave = &am33xx_l3_main_hwmod, 89 .clk = "dpll_core_m4_ck", 90 .user = OCP_USER_MPU | OCP_USER_SDMA, 91 }; 92 93 /* l3 main -> gfx */ 94 struct omap_hwmod_ocp_if am33xx_l3_main__gfx = { 95 .master = &am33xx_l3_main_hwmod, 96 .slave = &am33xx_gfx_hwmod, 97 .clk = "dpll_core_m4_ck", 98 .user = OCP_USER_MPU | OCP_USER_SDMA, 99 }; 100 101 /* l4 wkup -> rtc */ 102 struct omap_hwmod_ocp_if am33xx_l4_wkup__rtc = { 103 .master = &am33xx_l4_wkup_hwmod, 104 .slave = &am33xx_rtc_hwmod, 105 .clk = "clkdiv32k_ick", 106 .user = OCP_USER_MPU, 107 }; 108 109 /* l4 per/ls -> DCAN0 */ 110 struct omap_hwmod_ocp_if am33xx_l4_per__dcan0 = { 111 .master = &am33xx_l4_ls_hwmod, 112 .slave = &am33xx_dcan0_hwmod, 113 .clk = "l4ls_gclk", 114 .user = OCP_USER_MPU | OCP_USER_SDMA, 115 }; 116 117 /* l4 per/ls -> DCAN1 */ 118 struct omap_hwmod_ocp_if am33xx_l4_per__dcan1 = { 119 .master = &am33xx_l4_ls_hwmod, 120 .slave = &am33xx_dcan1_hwmod, 121 .clk = "l4ls_gclk", 122 .user = OCP_USER_MPU | OCP_USER_SDMA, 123 }; 124 125 struct omap_hwmod_ocp_if am33xx_l4_ls__elm = { 126 .master = &am33xx_l4_ls_hwmod, 127 .slave = &am33xx_elm_hwmod, 128 .clk = "l4ls_gclk", 129 .user = OCP_USER_MPU, 130 }; 131 132 struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss0 = { 133 .master = &am33xx_l4_ls_hwmod, 134 .slave = &am33xx_epwmss0_hwmod, 135 .clk = "l4ls_gclk", 136 .user = OCP_USER_MPU, 137 }; 138 139 struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss1 = { 140 .master = &am33xx_l4_ls_hwmod, 141 .slave = &am33xx_epwmss1_hwmod, 142 .clk = "l4ls_gclk", 143 .user = OCP_USER_MPU, 144 }; 145 146 struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss2 = { 147 .master = &am33xx_l4_ls_hwmod, 148 .slave = &am33xx_epwmss2_hwmod, 149 .clk = "l4ls_gclk", 150 .user = OCP_USER_MPU, 151 }; 152 153 /* l3s cfg -> gpmc */ 154 struct omap_hwmod_ocp_if am33xx_l3_s__gpmc = { 155 .master = &am33xx_l3_s_hwmod, 156 .slave = &am33xx_gpmc_hwmod, 157 .clk = "l3s_gclk", 158 .user = OCP_USER_MPU, 159 }; 160 161 /* l4 ls -> mailbox */ 162 struct omap_hwmod_ocp_if am33xx_l4_per__mailbox = { 163 .master = &am33xx_l4_ls_hwmod, 164 .slave = &am33xx_mailbox_hwmod, 165 .clk = "l4ls_gclk", 166 .user = OCP_USER_MPU, 167 }; 168 169 /* l4 ls -> spinlock */ 170 struct omap_hwmod_ocp_if am33xx_l4_ls__spinlock = { 171 .master = &am33xx_l4_ls_hwmod, 172 .slave = &am33xx_spinlock_hwmod, 173 .clk = "l4ls_gclk", 174 .user = OCP_USER_MPU, 175 }; 176 177 /* l4 ls -> mcasp0 */ 178 struct omap_hwmod_ocp_if am33xx_l4_ls__mcasp0 = { 179 .master = &am33xx_l4_ls_hwmod, 180 .slave = &am33xx_mcasp0_hwmod, 181 .clk = "l4ls_gclk", 182 .user = OCP_USER_MPU, 183 }; 184 185 /* l4 ls -> mcasp1 */ 186 struct omap_hwmod_ocp_if am33xx_l4_ls__mcasp1 = { 187 .master = &am33xx_l4_ls_hwmod, 188 .slave = &am33xx_mcasp1_hwmod, 189 .clk = "l4ls_gclk", 190 .user = OCP_USER_MPU, 191 }; 192 193 /* l4 ls -> mcspi0 */ 194 struct omap_hwmod_ocp_if am33xx_l4_ls__mcspi0 = { 195 .master = &am33xx_l4_ls_hwmod, 196 .slave = &am33xx_spi0_hwmod, 197 .clk = "l4ls_gclk", 198 .user = OCP_USER_MPU, 199 }; 200 201 /* l4 ls -> mcspi1 */ 202 struct omap_hwmod_ocp_if am33xx_l4_ls__mcspi1 = { 203 .master = &am33xx_l4_ls_hwmod, 204 .slave = &am33xx_spi1_hwmod, 205 .clk = "l4ls_gclk", 206 .user = OCP_USER_MPU, 207 }; 208 209 /* l4 per -> timer2 */ 210 struct omap_hwmod_ocp_if am33xx_l4_ls__timer2 = { 211 .master = &am33xx_l4_ls_hwmod, 212 .slave = &am33xx_timer2_hwmod, 213 .clk = "l4ls_gclk", 214 .user = OCP_USER_MPU, 215 }; 216 217 /* l4 per -> timer3 */ 218 struct omap_hwmod_ocp_if am33xx_l4_ls__timer3 = { 219 .master = &am33xx_l4_ls_hwmod, 220 .slave = &am33xx_timer3_hwmod, 221 .clk = "l4ls_gclk", 222 .user = OCP_USER_MPU, 223 }; 224 225 /* l4 per -> timer4 */ 226 struct omap_hwmod_ocp_if am33xx_l4_ls__timer4 = { 227 .master = &am33xx_l4_ls_hwmod, 228 .slave = &am33xx_timer4_hwmod, 229 .clk = "l4ls_gclk", 230 .user = OCP_USER_MPU, 231 }; 232 233 /* l4 per -> timer5 */ 234 struct omap_hwmod_ocp_if am33xx_l4_ls__timer5 = { 235 .master = &am33xx_l4_ls_hwmod, 236 .slave = &am33xx_timer5_hwmod, 237 .clk = "l4ls_gclk", 238 .user = OCP_USER_MPU, 239 }; 240 241 /* l4 per -> timer6 */ 242 struct omap_hwmod_ocp_if am33xx_l4_ls__timer6 = { 243 .master = &am33xx_l4_ls_hwmod, 244 .slave = &am33xx_timer6_hwmod, 245 .clk = "l4ls_gclk", 246 .user = OCP_USER_MPU, 247 }; 248 249 /* l4 per -> timer7 */ 250 struct omap_hwmod_ocp_if am33xx_l4_ls__timer7 = { 251 .master = &am33xx_l4_ls_hwmod, 252 .slave = &am33xx_timer7_hwmod, 253 .clk = "l4ls_gclk", 254 .user = OCP_USER_MPU, 255 }; 256 257 /* l3 main -> tpcc */ 258 struct omap_hwmod_ocp_if am33xx_l3_main__tpcc = { 259 .master = &am33xx_l3_main_hwmod, 260 .slave = &am33xx_tpcc_hwmod, 261 .clk = "l3_gclk", 262 .user = OCP_USER_MPU, 263 }; 264 265 /* l3 main -> tpcc0 */ 266 struct omap_hwmod_ocp_if am33xx_l3_main__tptc0 = { 267 .master = &am33xx_l3_main_hwmod, 268 .slave = &am33xx_tptc0_hwmod, 269 .clk = "l3_gclk", 270 .user = OCP_USER_MPU, 271 }; 272 273 /* l3 main -> tpcc1 */ 274 struct omap_hwmod_ocp_if am33xx_l3_main__tptc1 = { 275 .master = &am33xx_l3_main_hwmod, 276 .slave = &am33xx_tptc1_hwmod, 277 .clk = "l3_gclk", 278 .user = OCP_USER_MPU, 279 }; 280 281 /* l3 main -> tpcc2 */ 282 struct omap_hwmod_ocp_if am33xx_l3_main__tptc2 = { 283 .master = &am33xx_l3_main_hwmod, 284 .slave = &am33xx_tptc2_hwmod, 285 .clk = "l3_gclk", 286 .user = OCP_USER_MPU, 287 }; 288 289 /* l3 main -> ocmc */ 290 struct omap_hwmod_ocp_if am33xx_l3_main__ocmc = { 291 .master = &am33xx_l3_main_hwmod, 292 .slave = &am33xx_ocmcram_hwmod, 293 .user = OCP_USER_MPU | OCP_USER_SDMA, 294 }; 295 296 /* l3 main -> sha0 HIB2 */ 297 struct omap_hwmod_ocp_if am33xx_l3_main__sha0 = { 298 .master = &am33xx_l3_main_hwmod, 299 .slave = &am33xx_sha0_hwmod, 300 .clk = "sha0_fck", 301 .user = OCP_USER_MPU | OCP_USER_SDMA, 302 }; 303 304 /* l3 main -> AES0 HIB2 */ 305 struct omap_hwmod_ocp_if am33xx_l3_main__aes0 = { 306 .master = &am33xx_l3_main_hwmod, 307 .slave = &am33xx_aes0_hwmod, 308 .clk = "aes0_fck", 309 .user = OCP_USER_MPU | OCP_USER_SDMA, 310 }; 311 312 /* l4 per -> rng */ 313 struct omap_hwmod_ocp_if am33xx_l4_per__rng = { 314 .master = &am33xx_l4_ls_hwmod, 315 .slave = &am33xx_rng_hwmod, 316 .clk = "rng_fck", 317 .user = OCP_USER_MPU, 318 }; 319