10eb275c9SSumit Garg /* 20eb275c9SSumit Garg * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. 30eb275c9SSumit Garg * 40eb275c9SSumit Garg * SPDX-License-Identifier: BSD-3-Clause 50eb275c9SSumit Garg */ 60eb275c9SSumit Garg 7*09d40e0eSAntonio Nino Diaz #include <platform_def.h> 8*09d40e0eSAntonio Nino Diaz 90eb275c9SSumit Garg #include <arch.h> 100eb275c9SSumit Garg #include <arch_helpers.h> 11*09d40e0eSAntonio Nino Diaz #include <drivers/arm/ccn.h> 120eb275c9SSumit Garg 130eb275c9SSumit Garg static const unsigned char master_to_rn_id_map[] = { 140eb275c9SSumit Garg PLAT_SQ_CLUSTER_TO_CCN_ID_MAP 150eb275c9SSumit Garg }; 160eb275c9SSumit Garg 170eb275c9SSumit Garg static const ccn_desc_t sq_ccn_desc = { 180eb275c9SSumit Garg .periphbase = PLAT_SQ_CCN_BASE, 190eb275c9SSumit Garg .num_masters = ARRAY_SIZE(master_to_rn_id_map), 200eb275c9SSumit Garg .master_to_rn_id_map = master_to_rn_id_map 210eb275c9SSumit Garg }; 220eb275c9SSumit Garg 230eb275c9SSumit Garg /****************************************************************************** 240eb275c9SSumit Garg * Helper function to initialize SQ CCN driver. 250eb275c9SSumit Garg *****************************************************************************/ plat_sq_interconnect_init(void)260eb275c9SSumit Gargvoid plat_sq_interconnect_init(void) 270eb275c9SSumit Garg { 280eb275c9SSumit Garg ccn_init(&sq_ccn_desc); 290eb275c9SSumit Garg } 300eb275c9SSumit Garg 310eb275c9SSumit Garg /****************************************************************************** 320eb275c9SSumit Garg * Helper function to place current master into coherency 330eb275c9SSumit Garg *****************************************************************************/ plat_sq_interconnect_enter_coherency(void)340eb275c9SSumit Gargvoid plat_sq_interconnect_enter_coherency(void) 350eb275c9SSumit Garg { 360eb275c9SSumit Garg ccn_enter_snoop_dvm_domain(1 << MPIDR_AFFLVL1_VAL(read_mpidr_el1())); 370eb275c9SSumit Garg } 380eb275c9SSumit Garg 390eb275c9SSumit Garg /****************************************************************************** 400eb275c9SSumit Garg * Helper function to remove current master from coherency 410eb275c9SSumit Garg *****************************************************************************/ plat_sq_interconnect_exit_coherency(void)420eb275c9SSumit Gargvoid plat_sq_interconnect_exit_coherency(void) 430eb275c9SSumit Garg { 440eb275c9SSumit Garg ccn_exit_snoop_dvm_domain(1 << MPIDR_AFFLVL1_VAL(read_mpidr_el1())); 450eb275c9SSumit Garg } 46