History log of /arch/arm/mach-ux500/cpu.c
Revision Date Author Comments
51fe0057cd866d7c1c0c82f722b7cbe429a75b85 02-Apr-2014 Thierry Reding <treding@nvidia.com> ARM: ux500: Staticise ux500_soc_attr

This variable is not used outside of the file that it's declared in, so
reduce the scope to the local file.

Signed-off-by: Thierry Reding <treding@nvidia.com>
[Also add const marker after suggestion from Lee Jones]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
b5761fb5237bb2fb7a2533c5f36fd6e33714e20f 28-Feb-2014 Linus Walleij <linus.walleij@linaro.org> ARM: ux500: skip GIC CPU and dist address checks

The Ux500 is initializing its IRQs from the device tree and
does not need to figure out any static base addresses anymore,
this is just dead code so delete it.

Cc: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
e937274f4268923c5220843cadddb7b78a51ecac 06-Nov-2013 Lee Jones <lee.jones@linaro.org> ARM: ux500: Clean-up non-DT IRQ initialisation

Decommission the non-DT boot path.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6f6d6433c08089e033756f55aecbd07d693536c4 06-Nov-2013 Lee Jones <lee.jones@linaro.org> ARM: ux500: Consolidate [A|D]B8500 platform data

Move the platform data from all these files into one, delete empty
files and remove all references to them.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
3ea3e63938ca3adbdb02db99bce89a71b802ebab 18-Sep-2013 Lee Jones <lee.jones@linaro.org> ARM: ux500: Purge UIB framework when booting with ATAGs

It's time to remove all ATAG support from ux500 and rely solely on
Device Tree booting. This patch is part of that endeavour.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
1dd416645ca7381ae981f1b31f16ed058d47bd49 17-Sep-2013 Lee Jones <lee.jones@linaro.org> ARM: ux500: Call appropriate clock initialisation based on DT or !DT booting

The ux500 platform will soon be converted to Device Tree only. When that
happens the old clock initialisation will be ripped out. In the meantime
however, we have to make a decision and call the appropriate
initialisation code manually.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
bd93ec505312f05fbc2c6f426c74fef920a597fa 14-Jun-2013 Fabio Baltieri <fabio.baltieri@linaro.org> ARM: ux500: add restart support via prcmu

Add necessary code to restart ux500 based machines using
prcmu_system_reset().

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
1237e598a94b5a44a0162a4f4534d18ef8a81a7d 27-May-2013 Philippe Begnic <philippe.begnic@st.com> clk: ux500: Pass clock base adresses in initcall for u8540 and u9540

Align on u8500 version, pass clock base address in clk_init functions
for u8540 and u9540.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Philippe Begnic <philippe.begnic@st.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
e657bcf6db84864079b31909e911a69c813aa0c0 21-Mar-2013 Arnd Bergmann <arnd@arndb.de> ARM: ux500: make remaining headers local

mach/setup.h and mach/devices.h are only needed from inside of mach-ux500
now, so we can simply move them out of the include/mach directory.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
174e7796624d2749359c3fdc673c1232b060d7f6 19-Mar-2013 Linus Walleij <linus.walleij@linaro.org> ARM: ux500: get rid of <mach/[hardware|db8500-regs].h>

This removes <mach/hardware.h> and <mach/db8500-regs.h>
from the Ux500, merging them into the local include
"db8500-regs.h" in mach-ux500. There is some impact
outside the ux500 machine, but most of it is dealt with
in earlier patches.

Contains portions of a clean-up patch from Arnd Bergmann.

Cc: Samuel Ortiz <sameo@linux.intel.com>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
9b819060d349e2247c471d8f055c91a597560da0 19-Mar-2013 Linus Walleij <linus.walleij@linaro.org> clk: ux500: pass clock base adresses in init call

The ux500 clock driver was including <mach/db8500-regs.h>
which will not work when building for multiplatform support
since <mach/*> is going away.

Pass the base adresses in the init call instead.

Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Mike Turquette <mturquette@linaro.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
1e22a8c614a5d8c29d0882de21ce327673b71fca 19-Mar-2013 Linus Walleij <linus.walleij@linaro.org> ARM: ux500: move PM-related PRCMU functions to machine

We are trying to decompose and decentralize the code in
the DB8500 PRCMU out into subdrivers. The code moved in
this patch concerns a group of functions used for
decoupling and recoupling the IRQs from the GIC. During
sleep and idle the Ux500 system will transfer all IRQ
handling to the PRCMU using these functions.

Basically we are left with the two alternatives of code
placement as:

- arch/arm/mach-ux500/pm.c - this because the code is
closely related to the GIC, and takes ownership of
some of the registers from the PRCMU related to this
PM functionality.

- drivers/mfd/db8500-prcmu-pm.c - because the code is
affecting stuff in the PRCMU register range. But then
this code needs to remap and handle GIC registers.

This patch implementation is taking the first approach.

Currently the cpuidle driver is the only piece of code
using this set of functions, but it will later also be
used by the suspend/resume code which is currently under
review.

The header file is moved to:
<linux/platform_data/arm-ux500-pm.h>
The function prototypes need to be placed in a globally
visible header since the CPUidle code is planned to move
out to drivers/cpuidle.

Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Acked-by: Rickard Andersson <rickard.andersson@stericsson.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
b047d98127ccbf9fe83b6192a3562b3ead0b2415 19-Mar-2013 Linus Walleij <linus.walleij@linaro.org> mfd: db8500-prcmu: get base address from resource

We cannot use a global variable stored in <mach/hardware.h> to
find the base address of the PRCMU. The real resource is already
there from the board, so use this to look up the base address
instead.

Currently the patch is kept minimal so as not to interfere with
other work being done on refactoring this driver, but at a later
point the defines using (prcmu_base + 0xnnn) need to be replaced
by pure offset defined for (0xnnn) and the base inlined with the
readl()/writel() and similar codepaths.

Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
9a47a8dccf8866b497bd80809da1c665e7b07c2c 21-Mar-2013 Linus Walleij <linus.walleij@linaro.org> mfd: prcmu: pass a base and size with the early initcall

This patch will make an early remapping of the PRCMU, to be
used when setting up the clocks, that will call down into parts
of the PRCMU driver before it is probed.

Going forward this will be removed like this:

- The mailbox subsystem need to be merged.
http://marc.info/?l=linux-kernel&m=136314559201983&w=2

- At this point the PRCMU clock code can be moved over to the
ux500 clock driver in drivers/clk/ux500/* and maintained
there in a decentralized manner.

- This early initcall and PRCMU base parameters become part of
the ux500_clk_init() call instead.

Cc: Suman Anna <s-anna@ti.com>
Cc: Loic Pallardy <loic.pallardy@st.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
b269b1709d17794bef0397b3de7d1db72bdef926 24-Feb-2013 Russell King <rmk+kernel@arm.linux.org.uk> ARM: cleanup: soc_device_register() error checking

soc_device_register() never returns NULL, it only ever returns an
error pointer or a valid pointer. Use the right function (IS_ERR())
to check this.

soc_device_to_device() only ever returns &soc_dev->dev, and so can
never return an error or NULL if the pointer passed into it was
valid, so there's no point checking its return.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
7a4f26097d389c16c9956bc03b81532698d97d64 19-Sep-2012 Linus Walleij <linus.walleij@linaro.org> ARM: ux500: de-globalize <mach/id.h>

This removes the file <mach/id.h> from the global kernel include
scope, making it a pure mach-ux500 detail. All ASIC specifics
needed by drivers shall henceforth be passed from either platform
data or the device tree.

Cc: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
579400166a744890b2a67ca21765b5b6dc649441 27-Nov-2012 Lee Jones <lee.jones@linaro.org> ARM: ux500: Fix u9540 booting issues

The u9540 stopped booting after the v3.7 merge window due to
a lack of common clk support and early PRCMU initialisation.
In this patch we rectify these issues, placing the u9540
development board back into a successfully booting state.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
520f7bd73354f003a9a59937b28e4903d985c420 27-Dec-2012 Rob Herring <rob.herring@calxeda.com> irqchip: Move ARM gic.h to include/linux/irqchip/arm-gic.h

Now that we have GIC moved to drivers/irqchip and all GIC DT init for
platforms using irqchip_init, move gic.h and update the remaining
includes.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Anton Vorontsov <avorontsov@mvista.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: David Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Viresh Kumar <viresh.linux@gmail.com>
Cc: Shiraz Hashim <shiraz.hashim@st.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Samuel Ortiz <sameo@linux.intel.com>
0529e315bbda5d502c93df2cfafba9bb337fbdf4 05-Nov-2012 Rob Herring <rob.herring@calxeda.com> ARM: use common irqchip_init for GIC init

Convert all GIC DT initialization over to use common irqchip_init
function.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: David Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
Cc: Bryan Huntsman <bryanh@codeaurora.org>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
Cc: Viresh Kumar <viresh.linux@gmail.com>
Cc: Shiraz Hashim <shiraz.hashim@st.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
0ddf855af6162df41345ea6afabd0190d751bfb9 25-Sep-2012 Lee Jones <lee.jones@linaro.org> ARM: ux500: Fix initialisation order for UIBs

An earlier change prevented User Interface Boards (UIBs) from being
initialised on boards which did not support them. This change had
the undesired effect of reordering the UIB initialisation calls with
I2C registration. Here we ensure UIBs are only setup after all
required infrastructure is already in place.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
1ae325574ce4c5fe5792b33cef95793e01af6c46 23-Oct-2012 Lee Jones <lee.jones@linaro.org> ARM: ux500: Fix build error relating to IRQCHIP_SKIP_SET_WAKE

This patch fixes the build error below:

arch/arm/mach-ux500/cpu.c: In function ‘ux500_init_irq’:
arch/arm/mach-ux500/cpu.c:55:2: error: invalid use of undefined type ‘struct irq_chip’
arch/arm/mach-ux500/cpu.c:55:24: error: ‘IRQCHIP_SKIP_SET_WAKE’ undeclared (first use in this function)
arch/arm/mach-ux500/cpu.c:55:24: note: each undeclared identifier is reported only once for each function it appears in
arch/arm/mach-ux500/cpu.c:55:48: error: ‘IRQCHIP_MASK_ON_SUSPEND’ undeclared (first use in this function)

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
ebc96db7632f987e0b9bffcb782cf5cfb8afb0dd 27-Aug-2012 Ulf Hansson <ulf.hansson@linaro.org> ARM: ux500: Switch to use common clock framework

Remove machine specific clock implementation and switch to use
new common clock framework.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
7e1f97ea8ffa66679252520dbbbd6ec413ecae68 22-Aug-2012 Linus Walleij <linus.walleij@linaro.org> ARM: ux500: set proper GIC flags

The Ux500 will be able to wake up on any IRQ, so flag it with
IRQCHIP_SKIP_SET_WAKE, and we want to mask off the IRQs when
going to suspend to avoid transient effects so also flag
this with IRQCHIP_MASK_ON_SUSPEND.

Cc: Etienne Carriere <etienne.carriere@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
e1bbb55d11622012197a654af874f9f485ddbc47 09-Aug-2012 Linus Walleij <linus.walleij@linaro.org> ARM: ux500: reform Ux500 family names

Counting the U9540 and the new U8540 as a U8500 family member
does not work. Instead, split the function in two:

cpu_is_u8500_family() covering U8500 and U8520
cpu_is_ux540_family() covering U9540 and U8540

This works much better in practice. Update users to keep the
same behaviour.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
a010bc2b9e2ccc0b59057d4cc136d48a1f7cebcb 02-May-2012 Shawn Guo <shawn.guo@linaro.org> ARM: ux500: use machine specific hook for late init

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: srinidhi kasagar <srinidhi.kasagar@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
29746f48d1b2e903b23daf8cc951fcb47ff0110e 13-Apr-2012 Linus Walleij <linus.walleij@linaro.org> ARM: ux500: delete U5500 support

This platform has been obsoleted and was only available inside of
ST-Ericsson, no users of this code are left in the world. This
deletes the core U5500 support entirely in the same manner as the
obsoleted U8500 silicon was previously deleted.

The cpu_is_u5500() macros that can read out the CPU ID is left
until the next kernel cycle, this makes it possible to merge
deletion of dependent drivers without breakage.

This also has the upside of removing the mailbox driver which was
our only driver that was outside the drivers/* hiearchy, now the
machine directory only handles machines and nothing else.

Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Rabin Vincent <rabin.vincent@stericsson.com>
Cc: Jonas Aberg <jonas.aberg@stericsson.com>
Cc: Per Forlin <per.forlin@stericsson.com>
Cc: Ulf Hansson <ulf.hansson@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
bc71c0961c61d6082472203bfae9596899c9c896 23-Jan-2012 Linus Walleij <linus.walleij@linaro.org> ARM: ux500: core U9540 support

This adds support for the U9540 variant of the U8500 series. This
is an application processor without internal modem. This is the
most basic part with ASIC ID, CPU-related fixes, IRQ list, register
ranges, timer, UART, and L2 cache setup. This is based on a patch
by Michel Jaouen which was rewritten to fit with the latest 3.3
kernel.

ChangeLog v1->v2: deleted the irqs-db9540.h file since we expect to
migrate to using Device Tree for getting the IRQs to devices.
ChangeLog v2->v3: introduced a fixed virtual offset for the ROM
as suggested by Arnd Bergmann.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sebastien Pasdeloup <sebastien.pasdeloup-nonst@stericsson.com>
Signed-off-by: Michel Jaouen <michel.jaouen@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
a60b57eddaa8af6c02cf7bbeb58ebf82881f08ac 19-Apr-2012 Lee Jones <lee.jones@linaro.org> drivers/gpio: gpio-nomadik: Add support for irqdomains

Add irq domain support to the gpio-nomadik GPIO driver. This
enables its users to support dynamic IRQ assignment, which is
requried by Device Tree.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
dab6487e35680ac5043c58a60554c49052276f5e 07-Mar-2012 Lee Jones <lee.jones@linaro.org> ARM: ux500: Enable Cortex-A9 GIC (Generic Interrupt Controller) in Device Tree

This enables the embedded GIC on all u8500 based hardware using DT.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
08efd6ca6fae8ee22617b8d9d3f87d4e4cd56dab 10-Jan-2012 Marc Zyngier <marc.zyngier@arm.com> ARM: ux500: convert to twd_local_timer_register() interface

Add support for the new smp_twd runtime registration interface
to the ux500 platforms, and remove the old compile-time support.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
eda413c228e227d888bc13d210e7c4c6aa62a682 06-Feb-2012 Lee Jones <lee.jones@linaro.org> ARM: ux500: export System-on-Chip information ux500 via sysfs

Here we make use of the new System-On-Chip bus driver to export
vital SoC information out to userspace via sysfs. This patch
provides a data structure of strings to populate the base
nodes found in:

/sys/devices/soc[0|1|2|...]/[family|machine|revision|soc_id].

It also adds one more node as requested by ST-Ericsson.
'process' depicts the way in which the silicon was manufactured.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
73180f85f4ffbb66843f8248811b2ade29b22df2 12-Aug-2011 Mattias Nilsson <mattias.i.nilsson@stericsson.com> mfd: Move to the new db500 PRCMU API

Now that we have a shared API between the DB8500 and DB5500
PRCMU's, switch to using this neutral API instead. We delete the
parts of db8500-prcmu.h that is now PRCMU-neutral, and calls will
be diverted to respective driver. Common registers are in
dbx500-prcmu-regs.h and common accessors and defines in
<linux/mfd/dbx500-prcmu.h> This way we get a a lot more
abstraction and code reuse.

Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
5f5663a436a4c54ede441b4f8ab3f947e78db345 14-Sep-2011 Jonas Aaberg <jonas.aberg@stericsson.com> ARM: ux500: Move timer code to separate file

Just split off the timer code to its own file so we have a
more fine-grained file tree.

Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7ed00af7a960031ad00017e3ebcf1d3ef22af498 27-May-2011 Mattias Wallin <mattias.wallin@stericsson.com> ARM: ux500: add support for clocksource DBX500 PRCMU

This patch adds support for the DBX500 PRCMU clocksource
to ux500 platforms.

Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Mattias Wallin <mattias.wallin@stericsson.co>
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
1bf6d2c1bb23533af6930581cc39b74685bc29de 12-Aug-2011 Linus Walleij <linus.walleij@linaro.org> ARM: mach-ux500: unlock I&D l2x0 caches before init

Apparently U8500 U-Boot versions may leave the l2x0 locked down
before executing the kernel. Make sure we unlock it before we
initialize the l2x0. This fixes a performance problem reported
by Jan Rinze.

The l2x0 core has been modified to unlock the l2x0 by default,
but it will not touch the locking registers if the l2x0 was
already enabled, as on the ux500, so we need this quirk to
make sure it is properly turned off.

Cc: stable@kernel.org
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Rabin Vincent <rabin.vincent@stericsson.com>
Cc: Adrian Bunk <adrian.bunk@movial.com>
Reported-by: Jan Rinze <janrinze@gmail.com>
Tested-by: Robert Marklund <robert.marklund@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
458eef2f4d73a55efa835ed891922e31efe91920 12-Aug-2011 Linus Walleij <linus.walleij@linaro.org> mach-ux500: factor out l2x0 handling code

Following mach-imx we break out the l2x0 handling into its
own file, avoiding some ifdefs. Also remove unnecessary creation
of local pointers when there is already one file-local readily
available.

Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
fb0225871eea232fbfd2c4b356f5be172122a0fe 24-Aug-2011 Barry Song <Baohua.Song@csr.com> ARM: mach-ux500: add explicit cpu_relax() for busy wait loop

using cpu_relax in busy loops is a well-known idiom in the kernel. It's more
for documentation purposes than technically needed here.

Cc: Jamie Iles <jamie@jamieiles.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
8317797ca657081ed81312ea3501f3a3d59d52e9 03-May-2011 Linus Walleij <linus.walleij@linaro.org> mfd: add DB5500 PRCMU driver

This adds the DB5500 PRCMU driver. Right now this one is pretty
restricted in functionality, exposing a simple interface to send
I2C messages.

Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
650c2a2145981696c414be1d540a32447d0e353e 15-May-2011 Linus Walleij <linus.walleij@linaro.org> mach-ux500: move the DB8500 PRCMU driver to MFD

We have decided that this function arbiter fits better in the MFD
subsystem. Since we need to concatenate the split header files we move
it basically like this:

mv mach-ux500/prcmu-db8500.c drivers/mfd/db8500-prcmu.c
mv mach-ux500/include/mach/prcmu-defs.h include/linux/mfd/db8500-prcmu.h
mv mach-ux500/include/mach/prcmu-regs.h drivers/mfd/db8500-prcmu-regs.h
mach-ux500/include/mach/prcmu.h >> include/linux/mfd/db8500-prcmu.h
rm arch/arm/mach-ux500/include/mach/prcmu.h

Then we update different #include statements and Makefile orders etc
to make the PRCMU driver compile, link and boot in the new place
without really changing any code.

Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
118718905de6e32c11e09a8f41c7abff6155ba19 29-Mar-2011 Linus Walleij <linus.walleij@linaro.org> mach-ux500: make PRCMU base address dynamic

This makes the PRCMU base address be selected at runtime for U8500
and U5500 instead of being compiled-in.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
abf12d719a2c9e45f7f90c02a3a25107206ed57a 08-Dec-2010 Rabin Vincent <rabin.vincent@stericsson.com> ux500: dynamic SOC detection

Dynamically detect the DBx500 SOC an revision based on the ASIC ID.

Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
92389ca8362c42952c7ebb8a0350ac522dcde0f4 08-Dec-2010 Rabin Vincent <rabin.vincent@stericsson.com> ux500: remove build-time changing macros

To allow the possiblity of building U8500 and U5500 support in the same
image.

Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
[Rebased to latest changes in Russells tree]
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
b580b899dd05a007ad232ee49a07b32d91876462 04-Dec-2010 Russell King <rmk+kernel@arm.linux.org.uk> ARM: GIC: provide a single initialization function for boot CPU

Provide gic_init() which initializes the GIC distributor and current
CPU's GIC interface for the boot (or single) CPU.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
9b04f8b9070e60fe9d335613ec538223c159a5c9 05-Dec-2010 Per Forlin <per.forlin@linaro.org> ux500: Call prmcu_init only for u8500

PRCMU driver only supports u8500. Don't
initialize prcmu if running on u5500.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
fcbd458e95316fe5031f1b8eaf5e66ce8f3c3146 02-Dec-2010 Mattias Wallin <mattias.wallin@stericsson.com> ARM: ux500: prcmu db8500 v2 support

This patch adds support for db8500 chip version 2.
The TCDM memory address of the PRCMU is changed and
dynamic detection of that is added.

Signed-off-by: Mattias Wallin <mattias.wallin@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
fbf1eadf950da1f5f5ed2e454d2f191f90fe1ebe 29-Sep-2010 Rabin Vincent <rabin.vincent@stericsson.com> ux500: rework device registration

Change the Ux500 devices to be dynamically allocated and added by
calling functions instead of referencing structures, thereby allowing
5500 and other derivatives' support to be added without having to
duplicate structures, use fixup functions, or use compile-time macros.

Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
ffc43ef31395063d32e72de0a9c3d061347c3b94 15-Nov-2010 Per Fransson <per.xx.fransson@stericsson.com> ARM: 6473/1: Small update to ux500 specific L2 cache code

This change updates the ux500 specific outer cache code to use
the new *_relaxed() I/O accessors.

Signed-off-by: Per Fransson <per.xx.fransson@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ae6948048c417d429b8a0f85fad13e483f7cc1a3 08-Sep-2010 Per Fransson <per.xx.fransson@stericsson.com> ARM: ux500 specific L2 cache code

The generic version of l2x0_inv_all is only called just after disabling
the L2 cache and is surrounded by a spinlock. However, we're not really
turning off the L2 cache right now, and the PL310 does not support
exclusive accesses (used to implement the spinlock). So, the
invalidation needs to be done without the spinlock.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Hans-Juergen Koch <hjk@linutronix.de>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Per Fransson <per.xx.fransson@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
ba327b1e5296b70745e50bcf0446ae8f82e3d478 26-May-2010 Linus Walleij <linus.walleij@stericsson.com> ARM: 6145/1: ux500 MTU clockrate correction

This adjusts the clockrate for the MTU timer. On the different
UX500 variants this rate is different. The platform can also have
been set up at hardware initialization, bootloader or early init
for different clock speeds. To have the clock framework available
early so the timers can use them, the clock initialization for
Nomadik and ux500 is moved to IRQ init time. A custom per-clock
callback is added to handle special cases like this.

This solves a user-visible bug: without this patch the current
UX500 platforms will not be synchronized to wall-clock time and
the platform will drift in time.

Acked-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
41ac329f607add059ae8b063375c5d9d6e7471cf 03-May-2010 Rabin Vincent <rabin.vincent@stericsson.com> ARM: 6087/1: ux500: move sys_timer to cpu.c

Move the common system timer setup code to cpu.c.

Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Acked-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
d48fd006e6d9394e9abd14f4747034f73bb6a386 03-May-2010 Rabin Vincent <rabin.vincent@stericsson.com> ARM: 6082/1: ux500: put common devices into devices.c

Introduce devices.c, for placing devices common among Ux500 SoCs. Start
with the PL031 device.

Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Acked-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
178980f98eef58607647eb66e178bf984bf81f4c 03-May-2010 Rabin Vincent <rabin.vincent@stericsson.com> ARM: 6080/1: ux500: move irq and common maps to cpu.c

Move IRQ initialization and common io mapping setup code to cpu.c,
renaming U8500* to UX500* along the way.

Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Acked-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>