1d2912cb1SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
2ded11383SPaul Walmsley /*
3ded11383SPaul Walmsley  * omap_hwmod_2xxx_interconnect_data.c - common interconnect data for OMAP2xxx
4ded11383SPaul Walmsley  *
5ded11383SPaul Walmsley  * Copyright (C) 2009-2011 Nokia Corporation
6ded11383SPaul Walmsley  * Paul Walmsley
7ded11383SPaul Walmsley  *
8ded11383SPaul Walmsley  * XXX handle crossbar/shared link difference for L3?
9ded11383SPaul Walmsley  * XXX these should be marked initdata for multi-OMAP kernels
10ded11383SPaul Walmsley  */
1187dfb311SMasahiro Yamada #include <linux/sizes.h>
12ded11383SPaul Walmsley 
132a296c8fSTony Lindgren #include "omap_hwmod.h"
141e0f51a9STony Lindgren #include "l3_2xxx.h"
1570606b1cSTony Lindgren #include "l4_2xxx.h"
16ded11383SPaul Walmsley 
17ded11383SPaul Walmsley #include "omap_hwmod_common_data.h"
18ded11383SPaul Walmsley 
196a29755fSPaul Walmsley /*
206a29755fSPaul Walmsley  * Common interconnect data
216a29755fSPaul Walmsley  */
226a29755fSPaul Walmsley 
236a29755fSPaul Walmsley /* L3 -> L4_CORE interface */
246a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l3_main__l4_core = {
256a29755fSPaul Walmsley 	.master	= &omap2xxx_l3_main_hwmod,
266a29755fSPaul Walmsley 	.slave	= &omap2xxx_l4_core_hwmod,
276a29755fSPaul Walmsley 	.user	= OCP_USER_MPU | OCP_USER_SDMA,
286a29755fSPaul Walmsley };
296a29755fSPaul Walmsley 
306a29755fSPaul Walmsley /* MPU -> L3 interface */
316a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_mpu__l3_main = {
326a29755fSPaul Walmsley 	.master = &omap2xxx_mpu_hwmod,
336a29755fSPaul Walmsley 	.slave	= &omap2xxx_l3_main_hwmod,
346a29755fSPaul Walmsley 	.user	= OCP_USER_MPU,
356a29755fSPaul Walmsley };
366a29755fSPaul Walmsley 
376a29755fSPaul Walmsley /* DSS -> l3 */
386a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_dss__l3 = {
396a29755fSPaul Walmsley 	.master		= &omap2xxx_dss_core_hwmod,
406a29755fSPaul Walmsley 	.slave		= &omap2xxx_l3_main_hwmod,
416a29755fSPaul Walmsley 	.fw = {
426a29755fSPaul Walmsley 		.omap2 = {
436a29755fSPaul Walmsley 			.l3_perm_bit  = OMAP2_L3_CORE_FW_CONNID_DSS,
446a29755fSPaul Walmsley 			.flags	= OMAP_FIREWALL_L3,
45b05ef215STony Lindgren 		},
466a29755fSPaul Walmsley 	},
476a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
486a29755fSPaul Walmsley };
496a29755fSPaul Walmsley 
506a29755fSPaul Walmsley /* L4_CORE -> L4_WKUP interface */
516a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__l4_wkup = {
526a29755fSPaul Walmsley 	.master	= &omap2xxx_l4_core_hwmod,
536a29755fSPaul Walmsley 	.slave	= &omap2xxx_l4_wkup_hwmod,
546a29755fSPaul Walmsley 	.user	= OCP_USER_MPU | OCP_USER_SDMA,
556a29755fSPaul Walmsley };
566a29755fSPaul Walmsley 
576a29755fSPaul Walmsley /* L4 CORE -> UART1 interface */
586a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2_l4_core__uart1 = {
596a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
606a29755fSPaul Walmsley 	.slave		= &omap2xxx_uart1_hwmod,
616a29755fSPaul Walmsley 	.clk		= "uart1_ick",
626a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
636a29755fSPaul Walmsley };
646a29755fSPaul Walmsley 
656a29755fSPaul Walmsley /* L4 CORE -> UART2 interface */
666a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2_l4_core__uart2 = {
676a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
686a29755fSPaul Walmsley 	.slave		= &omap2xxx_uart2_hwmod,
696a29755fSPaul Walmsley 	.clk		= "uart2_ick",
706a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
716a29755fSPaul Walmsley };
726a29755fSPaul Walmsley 
736a29755fSPaul Walmsley /* L4 PER -> UART3 interface */
746a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2_l4_core__uart3 = {
756a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
766a29755fSPaul Walmsley 	.slave		= &omap2xxx_uart3_hwmod,
776a29755fSPaul Walmsley 	.clk		= "uart3_ick",
786a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
796a29755fSPaul Walmsley };
806a29755fSPaul Walmsley 
816a29755fSPaul Walmsley /* l4 core -> mcspi1 interface */
826a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__mcspi1 = {
836a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
846a29755fSPaul Walmsley 	.slave		= &omap2xxx_mcspi1_hwmod,
856a29755fSPaul Walmsley 	.clk		= "mcspi1_ick",
866a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
876a29755fSPaul Walmsley };
886a29755fSPaul Walmsley 
896a29755fSPaul Walmsley /* l4 core -> mcspi2 interface */
906a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__mcspi2 = {
916a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
926a29755fSPaul Walmsley 	.slave		= &omap2xxx_mcspi2_hwmod,
936a29755fSPaul Walmsley 	.clk		= "mcspi2_ick",
946a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
956a29755fSPaul Walmsley };
966a29755fSPaul Walmsley 
976a29755fSPaul Walmsley /* l4_core -> timer3 */
986a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer3 = {
996a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1006a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer3_hwmod,
1016a29755fSPaul Walmsley 	.clk		= "gpt3_ick",
1026a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1036a29755fSPaul Walmsley };
1046a29755fSPaul Walmsley 
1056a29755fSPaul Walmsley /* l4_core -> timer4 */
1066a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer4 = {
1076a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1086a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer4_hwmod,
1096a29755fSPaul Walmsley 	.clk		= "gpt4_ick",
1106a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1116a29755fSPaul Walmsley };
1126a29755fSPaul Walmsley 
1136a29755fSPaul Walmsley /* l4_core -> timer5 */
1146a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer5 = {
1156a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1166a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer5_hwmod,
1176a29755fSPaul Walmsley 	.clk		= "gpt5_ick",
1186a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1196a29755fSPaul Walmsley };
1206a29755fSPaul Walmsley 
1216a29755fSPaul Walmsley /* l4_core -> timer6 */
1226a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer6 = {
1236a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1246a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer6_hwmod,
1256a29755fSPaul Walmsley 	.clk		= "gpt6_ick",
1266a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1276a29755fSPaul Walmsley };
1286a29755fSPaul Walmsley 
1296a29755fSPaul Walmsley /* l4_core -> timer7 */
1306a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer7 = {
1316a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1326a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer7_hwmod,
1336a29755fSPaul Walmsley 	.clk		= "gpt7_ick",
1346a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1356a29755fSPaul Walmsley };
1366a29755fSPaul Walmsley 
1376a29755fSPaul Walmsley /* l4_core -> timer8 */
1386a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer8 = {
1396a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1406a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer8_hwmod,
1416a29755fSPaul Walmsley 	.clk		= "gpt8_ick",
1426a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1436a29755fSPaul Walmsley };
1446a29755fSPaul Walmsley 
1456a29755fSPaul Walmsley /* l4_core -> timer9 */
1466a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer9 = {
1476a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1486a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer9_hwmod,
1496a29755fSPaul Walmsley 	.clk		= "gpt9_ick",
1506a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1516a29755fSPaul Walmsley };
1526a29755fSPaul Walmsley 
1536a29755fSPaul Walmsley /* l4_core -> timer10 */
1546a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer10 = {
1556a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1566a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer10_hwmod,
1576a29755fSPaul Walmsley 	.clk		= "gpt10_ick",
1586a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1596a29755fSPaul Walmsley };
1606a29755fSPaul Walmsley 
1616a29755fSPaul Walmsley /* l4_core -> timer11 */
1626a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer11 = {
1636a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1646a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer11_hwmod,
1656a29755fSPaul Walmsley 	.clk		= "gpt11_ick",
1666a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1676a29755fSPaul Walmsley };
1686a29755fSPaul Walmsley 
1696a29755fSPaul Walmsley /* l4_core -> timer12 */
1706a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__timer12 = {
1716a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1726a29755fSPaul Walmsley 	.slave		= &omap2xxx_timer12_hwmod,
1736a29755fSPaul Walmsley 	.clk		= "gpt12_ick",
1746a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1756a29755fSPaul Walmsley };
1766a29755fSPaul Walmsley 
1776a29755fSPaul Walmsley /* l4_core -> dss */
1786a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__dss = {
1796a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1806a29755fSPaul Walmsley 	.slave		= &omap2xxx_dss_core_hwmod,
1816a29755fSPaul Walmsley 	.clk		= "dss_ick",
1826a29755fSPaul Walmsley 	.fw = {
1836a29755fSPaul Walmsley 		.omap2 = {
1846a29755fSPaul Walmsley 			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_CORE_REGION,
1856a29755fSPaul Walmsley 			.flags	= OMAP_FIREWALL_L4,
186b05ef215STony Lindgren 		},
1876a29755fSPaul Walmsley 	},
1886a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
1896a29755fSPaul Walmsley };
1906a29755fSPaul Walmsley 
1916a29755fSPaul Walmsley /* l4_core -> dss_dispc */
1926a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__dss_dispc = {
1936a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
1946a29755fSPaul Walmsley 	.slave		= &omap2xxx_dss_dispc_hwmod,
1956a29755fSPaul Walmsley 	.clk		= "dss_ick",
1966a29755fSPaul Walmsley 	.fw = {
1976a29755fSPaul Walmsley 		.omap2 = {
1986a29755fSPaul Walmsley 			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_DISPC_REGION,
1996a29755fSPaul Walmsley 			.flags	= OMAP_FIREWALL_L4,
200b05ef215STony Lindgren 		},
2016a29755fSPaul Walmsley 	},
2026a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
2036a29755fSPaul Walmsley };
2046a29755fSPaul Walmsley 
2056a29755fSPaul Walmsley /* l4_core -> dss_rfbi */
2066a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__dss_rfbi = {
2076a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
2086a29755fSPaul Walmsley 	.slave		= &omap2xxx_dss_rfbi_hwmod,
2096a29755fSPaul Walmsley 	.clk		= "dss_ick",
2106a29755fSPaul Walmsley 	.fw = {
2116a29755fSPaul Walmsley 		.omap2 = {
2126a29755fSPaul Walmsley 			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_CORE_REGION,
2136a29755fSPaul Walmsley 			.flags	= OMAP_FIREWALL_L4,
214b05ef215STony Lindgren 		},
2156a29755fSPaul Walmsley 	},
2166a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
2176a29755fSPaul Walmsley };
2186a29755fSPaul Walmsley 
2196a29755fSPaul Walmsley /* l4_core -> dss_venc */
2206a29755fSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__dss_venc = {
2216a29755fSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
2226a29755fSPaul Walmsley 	.slave		= &omap2xxx_dss_venc_hwmod,
2236a29755fSPaul Walmsley 	.clk		= "dss_ick",
2246a29755fSPaul Walmsley 	.fw = {
2256a29755fSPaul Walmsley 		.omap2 = {
2266a29755fSPaul Walmsley 			.l4_fw_region  = OMAP2420_L4_CORE_FW_DSS_VENC_REGION,
2276a29755fSPaul Walmsley 			.flags	= OMAP_FIREWALL_L4,
228b05ef215STony Lindgren 		},
2296a29755fSPaul Walmsley 	},
2306a29755fSPaul Walmsley 	.flags		= OCPIF_SWSUP_IDLE,
2316a29755fSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
2326a29755fSPaul Walmsley };
233ded11383SPaul Walmsley 
234e9b0a2fbSPaul Walmsley /* l4_core -> rng */
235e9b0a2fbSPaul Walmsley struct omap_hwmod_ocp_if omap2xxx_l4_core__rng = {
236e9b0a2fbSPaul Walmsley 	.master		= &omap2xxx_l4_core_hwmod,
237e9b0a2fbSPaul Walmsley 	.slave		= &omap2xxx_rng_hwmod,
238e9b0a2fbSPaul Walmsley 	.clk		= "rng_ick",
239e9b0a2fbSPaul Walmsley 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
240e9b0a2fbSPaul Walmsley };
241e569e994SMark A. Greer 
242e569e994SMark A. Greer /* l4 core -> sham interface */
243e569e994SMark A. Greer struct omap_hwmod_ocp_if omap2xxx_l4_core__sham = {
244e569e994SMark A. Greer 	.master		= &omap2xxx_l4_core_hwmod,
245e569e994SMark A. Greer 	.slave		= &omap2xxx_sham_hwmod,
246e569e994SMark A. Greer 	.clk		= "sha_ick",
247fa7807b4SMark A. Greer 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
248e569e994SMark A. Greer };
249660ffd6bSMark A. Greer 
250660ffd6bSMark A. Greer /* l4 core -> aes interface */
251660ffd6bSMark A. Greer struct omap_hwmod_ocp_if omap2xxx_l4_core__aes = {
252660ffd6bSMark A. Greer 	.master		= &omap2xxx_l4_core_hwmod,
253660ffd6bSMark A. Greer 	.slave		= &omap2xxx_aes_hwmod,
254660ffd6bSMark A. Greer 	.clk		= "aes_ick",
255660ffd6bSMark A. Greer 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
256660ffd6bSMark A. Greer };
257