2 * Initialization of ARM Corelink CCI-500 Cache Coherency Interconnect
4 * Copyright (C) 2016 Socionext Inc.
5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
7 * SPDX-License-Identifier: GPL-2.0+
10 #include <linux/bitops.h>
12 #include <linux/sizes.h>
14 #define CCI500_BASE 0x5FD00000
15 #define CCI500_SLAVE_OFFSET 0x1000
17 #define CCI500_SNOOP_CTRL
18 #define CCI500_SNOOP_CTRL_EN_DVM BIT(1)
19 #define CCI500_SNOOP_CTRL_EN_SNOOP BIT(0)
21 void cci500_init(unsigned int nr_slaves)
23 unsigned long slave_base = CCI500_BASE + CCI500_SLAVE_OFFSET;
26 for (i = 0; i < nr_slaves; i++) {
30 base = ioremap(slave_base, SZ_4K);
33 tmp |= CCI500_SNOOP_CTRL_EN_DVM | CCI500_SNOOP_CTRL_EN_SNOOP;
38 slave_base += CCI500_SLAVE_OFFSET;