From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sudeep Holla Date: Wed, 15 Jan 2014 14:01:47 +0000 Subject: Re: [PATCH 04/04] ARM: shmobile: r8a7790 CCI configuration Message-Id: <52D694CB.5020807@arm.com> List-Id: References: <20140115122539.9437.63968.sendpatchset@w520> <20140115122622.9437.27236.sendpatchset@w520> In-Reply-To: <20140115122622.9437.27236.sendpatchset@w520> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-arm-kernel@lists.infradead.org Hi, On 15/01/14 12:26, Magnus Damm wrote: > From: Gaku Inami > > Add the settings of CCI-400 for enabling ca15/ca7 snoop on r8a7790. > > Signed-off-by: Gaku Inami > Signed-off-by: Magnus Damm > --- > > arch/arm/mach-shmobile/smp-r8a7790.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > --- 0005/arch/arm/mach-shmobile/smp-r8a7790.c > +++ work/arch/arm/mach-shmobile/smp-r8a7790.c 2014-01-15 15:40:56.000000000 +0900 > @@ -28,6 +28,11 @@ > #define CA15RESCNT 0x0040 > #define CA7RESCNT 0x0044 > #define MERAM 0xe8080000 > +#define CCI_BASE 0xf0090000 > +#define CCI_SLAVE3 0x4000 > +#define CCI_SLAVE4 0x5000 > +#define CCI_SNOOP 0x0000 > +#define CCI_STATUS 0x000c > > static struct rcar_sysc_ch r8a7790_ca15_scu = { > .chan_offs = 0x180, /* PWRSR5 .. PWRER5 */ > @@ -71,6 +76,16 @@ static void __init r8a7790_smp_prepare_c > r8a7790_pm_init(); > rcar_sysc_power_up(&r8a7790_ca15_scu); > rcar_sysc_power_up(&r8a7790_ca7_scu); > + > + /* enable snoop and DVM */ > + p = ioremap_nocache(CCI_BASE, 0x8000); > + writel_relaxed(readl_relaxed(p + CCI_SLAVE3 + CCI_SNOOP) | 0x3, > + p + CCI_SLAVE3 + CCI_SNOOP); /* ca15 */ > + writel_relaxed(readl_relaxed(p + CCI_SLAVE4 + CCI_SNOOP) | 0x3, > + p + CCI_SLAVE4 + CCI_SNOOP); /* ca7 */ > + while (__raw_readl(p + CCI_STATUS)); > + /* wait for pending bit low */ > + iounmap(p); > } I have mentioned this before, please use drivers/bus/arm-cci.c That already does the job you need here and you need to use CCI DT bindings for base address. Regards, Sudeep