summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa/pxa25x.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ARM: 7104/1: plat-pxa: break out GPIO driver specificsLinus Walleij2011-10-021-0/+1
| | | | | | | | | | | The <mach/gpio.h> file is included from upper directories and deal with generic GPIO and gpiolib stuff. Break out the platform and driver specific defines and functions into its own header file. Cc: Eric Miao <eric.y.miao@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: gpio: convert includes of mach/gpio.h and asm/gpio.h to linux/gpio.hRussell King2011-08-081-1/+1
| | | | | | | | Convert arch/arm includes of mach/gpio.h and asm/gpio.h to linux/gpio.h before we start consolidating the individual platform implementations of the gpio header files. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: pm: hide 1st and 2nd arguments to cpu_suspend from platform codeRussell King2011-06-241-2/+2
| | | | | | | | | The first and second arguments shouldn't concern platform code, so hide them from each platforms caller. Tested-by: Kevin Hilman <khilman@ti.com> Acked-by: Jean Pihet <j-pihet@ti.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: pm: pxa: move cpu_suspend into C codeRussell King2011-06-241-1/+2
| | | | | | | | We don't need a veneer for cpu_suspend, it can be called directly from C code now. Move it into the PXA CPU suspend functions, along with the accumulator register saving/restoring. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM / PXA: Use struct syscore_ops for "core" power managementRafael J. Wysocki2011-04-241-19/+6
| | | | | | | | | | | | | Replace sysdev classes and struct sys_device objects used for "core" power management by the PXA platform code with struct syscore_ops objects that are simpler. This reduces the code size and the kernel memory footprint. It also is necessary for removing sysdevs entirely from the kernel in the future. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
* ARM: pxa: convert incorrect IRQ_TO_IRQ() to irq_to_gpio()Eric Miao2011-04-131-1/+1
| | | | | | | | | | This fixes the failure to register the IRQ_RTCAlrm alarm as a wakeup event. It is misinterpreted as a gpio irq not a PWER bitmask. Fixed this by converting the incorrect IRQ_TO_IRQ() to a correct version of irq_to_gpio(). Reported-by: Nick Bane <nickbane1@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
*-. Merge branches 'at91', 'ep93xx', 'errata', 'footbridge', 'fncpy', 'gemini', ↵Russell King2011-03-171-2/+3
|\ \ | | | | | | | | | 'irqdata', 'pm', 'sh', 'smp', 'spear', 'ux500' and 'via' into devel
| | * ARM: pxa: enable pxa-pcm-audio on pxa210/pxa25x platformDmitry Eremin-Solenikov2011-02-271-0/+1
| |/ |/| | | | | | | | | | | | | | | | | pxa25x platforms were left out of major ASoC Update patch. Since f0fba2ad1b a registration of pxa-pcm-audio device is required for ASoC to function on pxa platforms. Register one also for pxa210/pxa25x. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Cc: Eric Miao <eric.y.miao@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
| * ARM: pm: convert PXA to generic suspend/resume supportRussell King2011-02-221-2/+2
|/ | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* ARM: PXA SoCs: irq_data conversion.Lennert Buytenhek2011-01-131-3/+4
| | | | Signed-off-by: Lennert Buytenhek <buytenh@secretlab.ca>
* ARM: pxa: introduce pxa2xx_clock_sysclass for clock suspend/resumeEric Miao2010-12-161-4/+3
| | | | Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
* ARM: pxa: remove get_memclk_frequency_10khz()Eric Miao2010-12-161-10/+10
| | | | | | | Introduce 'struct clk' for memory and remove get_memclk_frequency_10khz(). Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
* ARM: pxa: separate the clock support into clock-{pxa2xx,pxa3xx}.cEric Miao2010-12-161-20/+21
| | | | Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
* ARM: pxa: Access SMEMC via virtual addressesMarek Vasut2010-12-161-2/+3
| | | | | | | | | | | | | This is important because on PXA3xx, the physical mapping of SMEMC registers differs from the one on PXA2xx. In order to get PCMCIA working on both PXA2xx and PXA320, the PCMCIA driver was adjusted accordingly as well. Also, various places in the kernel had to be patched to use __raw_read/__raw_write. Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
* ARM: pxa: Introduce pxa{25x,27x,3xx}_map_io()Marek Vasut2010-12-161-0/+17
| | | | | | | | | | | This patch introduces pxa2xx_map_io() and pxa3xx_map_io() to distinguish between PXA25x/PXA27x and PXA3xx memory mapping. Also, fixup for platforms broken after introducing pxa{25x,27x}_map_io() and pxa3xx_map_io() is included. Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
* [ARM] pxa: move pmu device back into mach-pxa/Eric Miao2010-08-051-0/+1
| | | | | | | | | Not tested and enabled on MMP at this moment, and since the IRQ is different from mach-pxa, I'd prefer to move the PMU device back into mach-pxa/. Will introduce the PMU device to MMP once it's enabled and tested. Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
* ARM: Consolidate clks_register() and similarRussell King2010-02-121-2/+2
| | | | | | | | | | | | | Most machine classes want some way to register a block of clk_lookup structures, and most do it by implementing a clks_register() type function which walks an array, or by open-coding a loop. Consolidate all this into clkdev_add_table(). Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com> Acked-by: Eric Miao <eric.y.miao@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: allow platforms to control which uarts are registeredRussell King2009-12-011-6/+1
| | | | | | | | | | | | | | | | | | For some platforms, it is inappropriate to register all PXA UARTs. In some cases, the UARTs may not be used, and in others we may want to avoid registering the UARTs to allow other drivers (eg, FICP) to make use of the UART. In addition, a while back there was a request to be able to pass platform data to the UART driver. This patch enables all of this by providing functions platforms can call to register each individual UART. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Mike Rapoport <mike@compulab.co.il> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
* [ARM] pxa: move IRQ handling of GPIO 0 and 1 outside of gpio.cEric Miao2009-03-091-2/+3
| | | | | | | | | | | | | | | This is part of the work making gpio.c generic enough, the changes include: 1. move IRQ handling of GPIO 0 and 1 outside (and back into irq.c) 2. pxa_init_gpio() accepts a range for muxed GPIO IRQs, and an IRQ number for the muxed GPIOs 3. __gpio_is_occupied() and __gpio_is_inverted() are made inline, and are moved into <mach/gpio.h> instead of generic gpio.c Signed-off-by: Eric Miao <eric.miao@marvell.com>
* [ARM] pxa: allow DMA controller IRQ being specifiedEric Miao2009-03-091-1/+1
| | | | Signed-off-by: Eric Miao <eric.miao@marvell.com>
* [ARM] pxa: introduce pxa{25x,27x,300,320,930}.h for board usageEric Miao2009-03-091-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Considering the header mess ATM, it is not always possible to include the correct header files within board code. Let's keep this simple: <mach/pxa25x.h> - for pxa25x based platforms <mach/pxa27x.h> - for pxa27x based platforms <mach/pxa300.h> - for pxa300 based platforms <mach/pxa320.h> - for pxa320 based platforms <mach/pxa930.h> - for pxa930 based platforms NOTE: 1. one header one board file, they are not compatible (i.e. they have conflicting definitions which won't compile if included together). 2. Unless strictly necessary, the following header files are considered to be SoC files use _only_, and is not recommended to be included in board code: <mach/hardware.h> <mach/pxa-regs.h> <mach/pxa2xx-regs.h> <mach/pxa3xx-regs.h> <mach/mfp.h> <mach/mfp-pxa2xx.h> <mach/mfp-pxa25x.h> <mach/mfp-pxa27x.h> <mach/mfp-pxa3xx.h> <mach/mfp-pxa300.h> <mach/mfp-pxa320.h> <mach/mfp-pxa930.h> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* Merge branch 'for-rmk' of ↵Russell King2008-12-021-8/+10
|\ | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel Conflicts: arch/arm/mach-pxa/pxa25x.c
| * [ARM] pxa: add resources for incoming rtc-pxa driverRobert Jarzmik2008-12-021-1/+1
| | | | | | | | | | | | | | | | Add IO memory and IRQ ressources for pxa based SoC to be able to use the new rtc-pxa driver. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * [ARM] pxa: add support for additional GPIOs on PXA26xEric Miao2008-12-021-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original patch from Marek Vasut, the problems with PXA26x are: 1. there are additional 4 GPIOs 86,87,88,89 have their direction bits inverted in GPDR2, as well as their alternate function bits being '1' for their GPIO functionality in GAFRx 2. there is no easy way to decide if the processor is a pxa26x or a pxa250/pxa255 at run-time, so the assumption here is the pxa26x will be treated as one of the pxa25x variants, and board code should have a better knowledge of the processor it is featured Introduce pxa26x_init_irq() for the second purpose, and treat the additional GPIOs > 85 on PXA25x specially. Kconfig option CONFIG_CPU_PXA26x is introduced to optimize the code a bit when PXA26x support isn't needed. Board config options have to select this to enable the support for PXA26x. __gpio_is_inverted() will be optimized way when CONFIG_CPU_PXA26x isn't selected. Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * Revert "[ARM] pxa: introduce cpu_is_pxa26x()"Eric Miao2008-12-021-7/+1
| | | | | | | | | | | | | | | | | | | | This reverts commit da1a3dc0ebb4f9209a1939eaa6b18901e0cd7bc0. The originally proposed way in the above commit is incorrect. And there is no easy way to distinguish between pxa25x and pxa26x at run-time. Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | [ARM] pxa: convert to clkdev and match clocks by struct device where possibleRussell King2008-11-271-28/+43
|/ | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge branches 'pxa-core' and 'pxa-machines' into pxa-allRussell King2008-10-071-25/+3
|\ | | | | | | | | | | | | | | Conflicts: arch/arm/mach-pxa/Kconfig arch/arm/mach-pxa/pxa25x.c arch/arm/mach-pxa/pxa27x.c
| * [ARM] pxa: better MFP low power state support for pxa25x/pxa27xEric Miao2008-09-271-25/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | When configured as a specific low power state: MFP_LPM_DRIVE_LOW, MFP_LPM_DRIVE_HIGH, the corresponding GPDR register bit during low power mode shall be re-configured as output (if they are not configured so), thus the PGSRx bits can output. Create an additional low power values GPDR registers, and properly save/restore the GAFR + GPDR registers when doing suspend/resume. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] pxa: introduce cpu_is_pxa26x()Eric Miao2008-09-251-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | PXA26x (PXA261/262) is actually a PXA250 with stacked Intel(R) StartaFlash. And this can be decided by bit 3 (PKG_TYPE) of BOOT_DEF register. Due to this extra I/O register access, make cpu_is_pxa26x() a public function instead of a macro. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] pxa: make cpu_is_pxa2* macros more consistentEric Miao2008-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 1. add a CPUID table in the comment 2. make cpu_is_pxa25x() true for PXA210/250/255/26x 3. PXA210 is treated as PXA25x, all related code modified to reflect this Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] pxa: merge common cpu_is_pxa255() code togetherEric Miao2008-09-251-6/+4
| | | | | | | | | | Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] pxa: Allow platforms to override PSPR settingRussell King2008-09-091-5/+15
|/ | | | | | | | | | | | Currently, we set PSPR just before entering sleep mode. However, some platforms have different requirements for setting PSPR in order to properly wake up. Set PSPR earlier in the suspend cycle so that platforms can change the setting by using a sysdev driver instead. Acked-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] clocklib: Update users of aliases to new APIIan Molton2008-08-121-9/+1
| | | | | | | This patch removes the hardcoded alias array from pxa25x.c and reimplements its functionality using the new clock alias call. Signed-off-by: Ian Molton <spyro@f2s.com>
* Merge branch 'for-rmk' of ↵Russell King2008-08-071-0/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 Conflicts: arch/arm/mach-pxa/generic.c arch/arm/mach-pxa/pxa25x.c arch/arm/mach-pxa/pxa27x.c arch/arm/mach-pxa/pxa2xx.c arch/arm/mach-pxa/pxa3xx.c arch/arm/mach-pxa/reset.c arch/arm/mach-pxa/spitz.c arch/arm/mach-pxa/tosa.c drivers/watchdog/sa1100_wdt.c
| * [ARM] pxa: introduce reset_status and clear_reset_status for driver's usageEric Miao2008-08-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Due to the problem of reset status bits being handled by different registers between pxa2xx and pxa3xx, introduce a global reset_status variable, initialized by SoC-specific code and later being used by other drivers. And also introduce clear_reset_status(), which is used to clear the corresponding status bits. Pass RESET_STATUS_ALL to clear all bits. Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/machRussell King2008-08-071-7/+7
| | | | | | | | | | | | This just leaves include/asm-arm/plat-* to deal with. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [ARM] Remove asm/hardware.h, use asm/arch/hardware.h insteadRussell King2008-08-071-1/+1
|/ | | | | | | | | Remove includes of asm/hardware.h in addition to asm/arch/hardware.h. Then, since asm/hardware.h only exists to include asm/arch/hardware.h, update everything to directly include asm/arch/hardware.h and remove asm/hardware.h. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Clocklib: Fix SA1111 clock name mess.Ian Molton2008-07-101-2/+29
| | | | | | | | This patch uses the ability of PXA's clocklib to alias clock to resolve the problem caused by sharing the SA1111 IO controller between PXA and SA1100 architectures, which have differing GPIO numbering. Signed-off-by: Ian Molton <spyro@f2s.com>
* Clocklib: Provide for GPIO 12 clock on PXAIan Molton2008-07-101-0/+24
| | | | Signed-off-by: Ian Molton <spyro@f2s.com>
* Fix serial broken-ness on PXA250Ian Molton2008-07-101-2/+2
| | | | | | | PXA255 and 26x are the only PXA CPUs with HWUART. This patch prevents bogus initialisation on other models. Signed-off-by: Ian Molton <spyro@f2s.com>
* [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC ↵Philipp Zabel2008-07-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | drivers The pxa2xx_udc.c driver is renamed to pxa25x_udc.c (the platform driver name changes from pxa2xx-udc to pxa25x-udc) and the platform driver name of pxa27x_udc.c is fixed to pxa27x-udc. pxa_device_udc in devices.c is split into pxa25x and pxa27x flavors and the pxa27x_device_udc is enabled in pxa27x.c. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Acked-by: Nicolas Pitre <nico@cam.org> Acked-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Including from Ian Molton: Fixes for mistakes left over from the PXA2{5,7}X UDC split. Signed-off-by: Ian Molton <spyro@f2s.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
*-. Merge branches 'pxa-misc', 'pxa-pwm' and 'pxa-multi' into pxaRussell King2008-07-091-2/+5
|\ \
| | * [ARM] pxa: separate out power manager and clock registersRussell King2008-06-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | The power manager and core clock registers aren't present in PXA3 CPUs. Move them out of pxa-regs.h into pxa2xx-regs.h, and include pxa2xx-regs.h where necessary. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | [ARM] pxa: Add PXA support for PWM APIeric miao2008-05-191-2/+4
| |/ | | | | | | | | | | | | | | | | | | | | Patch mainly from Eric Miao, with minor edits by rmk. Note: PWM0 and PWM2 share the same register I/O space and clock gating on pxa{27x, 3xx}, thus PWM2 is treated in the driver as a child PWM of PWM0. And this is also true for PWM1/3. Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* / [ARM] pxa: allow clk aliasesRussell King2008-07-091-0/+8
|/ | | | | | | | | We need to support more than one name+device for a struct clk for a small number of peripherals. We do this by re-using struct clk alias to another struct clk - IOW, if we find that the entry we're using is an alias, we return the aliased entry not the one we found. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: Fix RCSR handlingRussell King2008-05-081-0/+3
| | | | | | | | | | | | | | Related to d3930614e68bdf83a120d904c039a64e9f75dba1. RCSR is only present on PXA2xx CPUs, not on PXA3xx CPUs. Therefore, we should not be unconditionally writing to RCSR from generic code. Since we now clear the RCSR status from the SoC specific PXA PM code and before reset in the arch_reset() function, the duplication in the corgi, poodle, spitz and tosa code can be removed. Acked-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 5027/1: Fixed random memory corruption on pxa suspend cycle.Robert Jarzmik2008-05-041-5/+3
| | | | | | | | | | | Each time a pxa type cpu went in suspend, a portion of kmalloc memory was corrupted. The issue was an incorrect length allocation introduced by the commit 711be5ccfe9a02ba560aa918a008c31ea4760163 for the save registers array (=> overflow). Signed-off-by: Robert Jarzmik <rjarzmik@free.fr> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: initialise PXA devices before platform init codeRussell King2008-04-191-1/+1
| | | | | | | | Initialise PXA devices before platform initialisation, so that platforms can parent devices to these. Acked-by: eric miao <ymiao3@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: allow dynamic enable/disable of GPIO wakeup for pxa{25x,27x}eric miao2008-04-191-18/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes include: 1. rename MFP_LPM_WAKEUP_ENABLE into MFP_LPM_CAN_WAKEUP to indicate the board capability of this pin to wakeup the system 2. add gpio_set_wake() and keypad_set_wake() to allow dynamically enable/disable wakeup from GPIOs and keypad GPIO * these functions are currently kept in mfp-pxa2xx.c due to their dependency to the MFP configuration 3. pxa2xx_mfp_config() only gives early warning if MFP_LPM_CAN_WAKEUP is set on incorrect pins So that the GPIO's wakeup capability is now decided by the following: a) processor's capability: (only those GPIOs which have dedicated bits within PWER/PRER/PFER can wakeup the system), this is initialized by pxa{25x,27x}_init_mfp() b) board design decides: - whether the pin is designed to wakeup the system (some of the GPIOs are configured as other functions, which is not intended to be a wakeup source), by OR'ing the pin config with MFP_LPM_CAN_WAKEUP - which edge the pin is designed to wakeup the system, this may depends on external peripherals/connections, which is totally board specific; this is indicated by MFP_LPM_EDGE_* c) the corresponding device's (most likely the gpio_keys.c) wakeup attribute: Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: merge assignment of set_wake into pxa_init_{irq,gpio}()eric miao2008-04-191-3/+2
| | | | | | | | | | | | | To further clean up the GPIO and IRQ structure: 1. pxa_init_irq_gpio() and pxa_init_gpio() combines into a single function pxa_init_gpio() 2. assignment of set_wake merged into pxa_init_{irq,gpio}() as an argument Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>