summaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-versatile
Commit message (Collapse)AuthorAgeFilesLines
* ARM: 7389/2: plat-versatile: modernize FPGA IRQ controllerLinus Walleij2012-05-043-21/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | This does two things to the FPGA IRQ controller in the versatile family: - Convert to MULTI_IRQ_HANDLER so we can drop the entry macro from the Integrator. The C IRQ handler was inspired from arch/arm/common/vic.c, recent bug discovered in this handler was accounted for. - Convert to using IRQ domains so we can get rid of the NO_IRQ mess and proceed with device tree and such stuff. As part of the exercise, bump all the low IRQ numbers on the Integrator PIC to start from 1 rather than 0, since IRQ 0 is now NO_IRQ. The Linux IRQ numbers are thus entirely decoupled from the hardware IRQ numbers in this controller. I was unable to split this patch. The main reason is the half-done conversion to device tree in Versatile. Tested on Integrator/AP and Integrator/CP. Cc: Grant Likely <grant.likely@secretlab.ca> Acked-by: Rob Herring <rob.herring@calxeda.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-armLinus Torvalds2012-03-291-2/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull more ARM updates from Russell King. This got a fair number of conflicts with the <asm/system.h> split, but also with some other sparse-irq and header file include cleanups. They all looked pretty trivial, though. * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (59 commits) ARM: fix Kconfig warning for HAVE_BPF_JIT ARM: 7361/1: provide XIP_VIRT_ADDR for no-MMU builds ARM: 7349/1: integrator: convert to sparse irqs ARM: 7259/3: net: JIT compiler for packet filters ARM: 7334/1: add jump label support ARM: 7333/2: jump label: detect %c support for ARM ARM: 7338/1: add support for early console output via semihosting ARM: use set_current_blocked() and block_sigmask() ARM: exec: remove redundant set_fs(USER_DS) ARM: 7332/1: extract out code patch function from kprobes ARM: 7331/1: extract out insn generation code from ftrace ARM: 7330/1: ftrace: use canonical Thumb-2 wide instruction format ARM: 7351/1: ftrace: remove useless memory checks ARM: 7316/1: kexec: EOI active and mask all interrupts in kexec crash path ARM: Versatile Express: add NO_IOPORT ARM: get rid of asm/irq.h in asm/prom.h ARM: 7319/1: Print debug info for SIGBUS in user faults ARM: 7318/1: gic: refactor irq_start assignment ARM: 7317/1: irq: avoid NULL check in for_each_irq_desc loop ARM: 7315/1: perf: add support for the Cortex-A7 PMU ...
| * Merge branch 'devel-stable' into for-linusRussell King2012-03-271-1/+0
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: arch/arm/Kconfig.debug arch/arm/plat-versatile/Kconfig Merge fixes: arch/arm/mach-integrator/Kconfig drivers/clocksource/Kconfig
| | * ARM: Make the sched_clock framework mandatoryMarc Zyngier2012-02-031-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All sched_clock() providers have been converted to the sched_clock framework, which also provides a jiffy based implementation for the platforms that do not provide a counter. It is now possible to make the sched_clock framework mandatory, effectively preventing new platforms to add new sched_clock() functions, which would be detrimental to the single zImage work. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
| * | ARM: 7310/1: integrator: implement sched_clock across all boardsLinus Walleij2012-03-241-1/+1
| |/ | | | | | | | | | | | | | | | | | | Now that we can select a sched_clock at runtime, let's implement it for the Integrator AP, default-select the one found in all other board it for all plat-versatile boards and make the right clock kick in at runtime. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM: plat-versatile: convert to twd_local_timer_register() interfaceMarc Zyngier2012-03-132-54/+0
| | | | | | | | | | | | | | | | Add support for the new smp_twd runtime registration interface to the RealView/VE platforms, and remove the old compile-time support. Tested on EB11MP. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
* | ARM: versatile: Map local timers using Device Tree when possiblePawel Moll2012-02-231-0/+26
| | | | | | | | | | | | | | Try to map TWD registers basing on a "arm,*-twd-timer" Device Tree node. This overrides existing twd_base value. Signed-off-by: Pawel Moll <pawel.moll@arm.com>
* | ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMPWill Deacon2012-01-231-0/+1
|/ | | | | | | | | | | | | | | | | It turns out that the logical CPU mapping is useful even when !CONFIG_SMP for manipulation of devices like interrupt and power controllers when running a UP kernel on a CPU other than 0. This can happen when kexecing a UP image from an SMP kernel. In the future, multi-cluster systems running AMP configurations will require something similar for mapping cluster IDs, so it makes sense to decouple this logic in preparation for this support. Acked-by: Yang Bai <hamo.by@gmail.com> Acked-by: Marc Zyngier <marc.zyngier@arm.com> Reported-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge branch 'fixes-for-arm-soc' of git://sources.calxeda.com/kernel/linux ↵Olof Johansson2012-01-161-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | into fixes * 'fixes-for-arm-soc' of git://sources.calxeda.com/kernel/linux: ARM: make BSYM macro assembly only ARM: highbank: remove incorrect BSYM usage ARM: imx: remove incorrect BSYM usage ARM: exynos: remove incorrect BSYM usage ARM: ux500: add missing ENDPROC to headsmp.S ARM: msm: Add missing ENDPROC to headsmp.S ARM: versatile: Add missing ENDPROC to headsmp.S
| * ARM: versatile: Add missing ENDPROC to headsmp.SPawel Moll2012-01-161-0/+1
| | | | | | | | | | | | | | | | | | Once the ENDPROC is in place, BSYM() in not longer necessary to get correct pointer to versatile_secondary_startup(). Tested-by: Jon Medhurst <tixy@linaro.org> Signed-off-by: Pawel Moll <pawel.moll@arm.com> Acked-by: Dave Martin <dave.martin@linaro.org>
* | ARM: 7205/2: sched_clock: allow sched_clock to be selected at runtimeMarc Zyngier2011-12-181-23/+6
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sched_clock() is yet another blocker on the road to the single image. This patch implements an idea by Russell King: http://www.spinics.net/lists/linux-omap/msg49561.html Instead of asking the platform to implement both sched_clock() itself and the rollover callback, simply register a read() function, and let the ARM code care about sched_clock() itself, the conversion to ns and the rollover. sched_clock() uses this read() function as an indirection to the platform code. If the platform doesn't provide a read(), the code falls back to the jiffy counter (just like the default sched_clock). This allow some simplifications and possibly some footprint gain when multiple platforms are compiled in. Among the drawbacks, the removal of the *_fixed_sched_clock optimization which could negatively impact some platforms (sa1100, tegra, versatile and omap). Tested on 11MPCore, OMAP4 and Tegra. Cc: Imre Kaloz <kaloz@openwrt.org> Cc: Eric Miao <eric.y.miao@gmail.com> Cc: Colin Cross <ccross@android.com> Cc: Erik Gilling <konkers@android.com> Cc: Olof Johansson <olof@lixom.net> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Alessandro Rubini <rubini@unipv.it> Cc: STEricsson <STEricsson_nomadik_linux@list.st.com> Cc: Lennert Buytenhek <kernel@wantstofly.org> Cc: Ben Dooks <ben-linux@fluff.org> Tested-by: Jamie Iles <jamie@jamieiles.com> Tested-by: Tony Lindgren <tony@atomide.com> Tested-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Nicolas Pitre <nico@linaro.org> Acked-by: Krzysztof Halasa <khc@pm.waw.pl> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: versatile: convert logical CPU numbers to physical numbersWill Deacon2011-10-171-1/+1
| | | | | | | | This patch uses the new cpu_logical_map() macro for converting logical CPU numbers into physical numbers when dealing with the pen_release variable in the SMP boot and CPU hotplug paths. Signed-off-by: Will Deacon <will.deacon@arm.com>
* ARM: consolidate SMP cross call implementationRussell King2011-05-231-1/+2
| | | | | | | | Rather than having each platform class provide a mach/smp.h header for smp_cross_call(), arrange for them to register the function with the core ARM SMP code instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* arm: Fold irq_set_chip/irq_set_handlerThomas Gleixner2011-03-291-2/+2
| | | | | | Use irq_set_chip_and_handler() instead. Converted with coccinelle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* arm: Cleanup the irq namespaceThomas Gleixner2011-03-291-6/+6
| | | | | | Convert to the new function names. Automated with coccinelle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* ARM: 6759/1: smp: Select local timers vs broadcast timer support runtimeSantosh Shilimkar2011-02-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | The current code support of dummy timers in absence of local timer is compile time. This is an attempt to convert it to runtime so that on few SOC version if the local timers aren't supported kernel can switch to dummy timers. OMAP4430 ES1.0 does suffer from this limitation. This patch should not have any functional impact on affected files. Cc: Daniel Walker <dwalker@codeaurora.org> Cc: Bryan Huntsman <bryanh@codeaurora.org> Cc: Tony Lindgren <tony@atomide.com> Cc: Kukjin Kim <kgene.kim@samsung.com> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Magnus Damm <magnus.damm@gmail.com> Cc: Colin Cross <ccross@android.com> Cc: Erik Gilling <konkers@android.com> Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> Cc: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: David Brown <davidb@codeaurora.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: integrator: add Integrator/CP sched_clock supportRussell King2011-02-191-1/+1
| | | | | | | | | | | Integrator/CP has the 24MHz counter which Versatile and later platforms also have, which we use for sched_clock support. Allow this counter to be used when building a kernel targetting Integrator/CP alone. Integrator/AP does not have this counter, so we must exclude support for the Integrator family when this is enabled. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: realview/vexpress: consolidate SMP bringup codeRussell King2011-02-193-1/+145
| | | | | | | | Realview and Versatile Express share the same SMP bringup code, so consolidate the two implementations. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: realview/vexpress: consolidate localtimer supportRussell King2011-02-192-0/+27
| | | | | | | | Realview and Versatile Express local timer support is identical, so consolidate the implementations. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: integrator/versatile: consolidate FPGA IRQ handling codeRussell King2011-02-194-0/+88
| | | | | | | | Consolidate the FPGA IRQ handling code. Integrator/AP and Versatile have one FPGA-based IRQ handler each. Integrator/CP has three. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: rationalize versatile family Kconfig/MakefileRussell King2011-02-192-7/+11
| | | | | | | | | | Move leds and sched_clock build conditionals out of the Makefile into the Kconfig file. Move selection of HAVE_SCHED_CLOCK into the platform Kconfig rather than duplicating it three times in the main architecture Kconfig. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: add versatile family consolidated CLCD supportRussell King2011-02-194-0/+198
| | | | | | | | | | | | | | | | | This consolidates the CLCD panel definitions and memory allocation into one location. Rename the Sanyo 2.5in and Epson 2.2in displays after their respective part numbers. Rather than using a general "Sanyo 2.5in" and "Epson 2.2in" description of the display panel, use the manufacturers part number to be more specific. This helps people identify what the timings actually refer to, which are panel specific. While here, add CLCD capability information to each panel definition, which has no effect until we add the board-level capabilities. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge branch 'clksrc' into develRussell King2011-01-053-25/+37
|\ | | | | | | | | | | | | Conflicts: arch/arm/mach-vexpress/v2m.c arch/arm/plat-omap/counter_32k.c arch/arm/plat-versatile/Makefile
| * ARM: vexpress: add sched_clock() for Versatile ExpressRussell King2011-01-051-2/+3
| | | | | | | | | | | | | | | | | | Add a sched_clock() implementation to Versatile Express using the new sched_clock() infrastructure for extending 32bit counters to full 64-bit nanoseconds. Tested-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * ARM: versatile: convert sched_clock() to use new infrastructureRussell King2010-12-222-22/+32
| | | | | | | | | | | | | | | | Convert versatile platforms to use the new sched_clock() infrastructure for extending 32bit counters to full 64-bit nanoseconds. Tested-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * ARM: ensure all sched_clock() implementations are notrace markedRussell King2010-12-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ftrace requires sched_clock() to be notrace. Ensure that all implementations are so marked. Also make sure that they include linux/sched.h Also ensure OMAP clocksource read functions are marked notrace as they're used for sched_clock() too. Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Will Deacon <will.deacon@arm.com> Tested-by: Mikael Pettersson <mikpe@it.uu.se> Tested-by: Eric Miao <eric.y.miao@gmail.com> Tested-by: Olof Johansson <olof@lixom.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * ARM: realview/versatile: update clock source registrationRussell King2010-12-221-3/+1
| | | | | | | | | | | | | | | | | | In d7e81c2 (clocksource: Add clocksource_register_hz/khz interface) new interfaces were added which simplify (and optimize) the selection of the divisor shift/mult constants. Switch over to using this new interface. Tested-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * ARM: versatile: ensure sched_clock() is notraceRabin Vincent2010-11-191-0/+1
| | | | | | | | | | | | | | Include sched.h to ensure sched_clock() has the notrace annotation. Signed-off-by: Rabin Vincent <rabin@rab.in>
* | ARM: 6432/1: move timer-sp.c from versatile to commonRob Herring2010-11-043-159/+0
|/ | | | | | | | | | From: Rob Herring <rob.herring@smooth-stone.com> The timer-sp h/w used on versatile platforms can also be used for other platforms, so move it to a common location. Signed-off-by: Rob Herring <rob.herring@smooth-stone.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 6264/1: fix Versatile Express LED oversightLinus Walleij2010-07-261-4/+5
| | | | | | | | | My attempt to make the LEDs only compile for RealView and Versatile was futile: I missed the Versatile Express. So invert the logic and explicitly include the platforms to compile for. Signed-off-by: Linus Walleij <triad@df.lth.se> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: 6235/2: driver for the LEDs found in the later ARM refdesignsLinus Walleij2010-07-262-2/+108
| | | | | | | | | | | This adds a simple driver supporting the new LED framework with triggers and all for the RealView and Versatile platforms. The RealView and Versatile platform drivers were arranged to compile for all-but-integrator as a side effect since the Integrator has a different LED driver. Signed-off-by: Linus Walleij <triad@df.lth.se> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: Indirect round/set_rate operations through clk structureRussell King2010-05-022-12/+41
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: Realview/Versatile: separate out common sched_clock()Russell King2010-05-022-0/+55
| | | | | | | Provide a common sched_clock() implementation for Versatile and Realview. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: Realview/Versatile: don't use magic numbers for timer frequencyRussell King2010-05-021-7/+5
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: Realview/Versatile: remove useless TIMER_RELOAD calculationsRussell King2010-05-021-11/+1
| | | | | | | | | | | | | | | | | | Realview/Versatile copied the Integrator timer code, including the calculations for ensuring that the reload value fits into the 16-bit counter. However, these platforms have a 32-bit counter which is clocked at a slower rate. The result is that the preprocessor conditions are never triggered: TICKS_PER_uSEC = 1, mSEC_10 = 10000, which is 0x2710 - less than 0x10000. So, remove the unnecessary complexity, reducing the TIMER_RELOAD calculation to just: TICKS_PER_uSEC * mSEC_10 Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: Realview/Versatile: separate out common SP804 timer codeRussell King2010-05-023-0/+171
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: Realview/Versatile/Integrator: separate out common clock codeRussell King2010-05-022-0/+61
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
OpenPOWER on IntegriCloud