aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa
Commit message (Collapse)AuthorAgeFilesLines
* [ARM] pxa: Add PXA3 standby code hooked into the IRQ wake schemeRussell King2008-01-262-0/+303
| | | | | | | | | | | | | | | | Wakeup sources on PXA3 are enabled at two levels. First, the MFP configuration has to be set to enable which edges a specific pin will trigger a wakeup. The pin also has to be routed to a functional unit. Lastly, the functional unit must be enabled as a wakeup source in the appropriate AD*ER registers (AD2D0ER for standby resume.) This doesn't fit well with the IRQ wake scheme - we currently do a best effort conversion from IRQ numbers to functional unit wake enable bits. For instance, there's several USB client related enable bits but there's no corresponding IRQs to determine which you'd want. Conversely, there's a single enable bit covering several functional units. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: Add zylonite MFP wakeup configurationsRussell King2008-01-262-33/+33
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: program MFPs for low power mode when suspendingRussell King2008-01-261-2/+57
| | | | | | | | | | | | Hook the MFP code into the power management code so that the MFPs can be reconfigured when suspending and resuming. However, note the FIXME - low power mode MFP configuration may depend on the system state being entered. Also note that we have to clear any detected edge events prior to entering a low power mode - otherwise we immediately wake up. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: make MFP configuration processor independenteric miao2008-01-261-15/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two reasons for making the MFP configuration to be processor independent, i.e. removing the relationship of configuration bits with actual MFPR register settings: 1. power management sometimes requires the MFP to be configured differently when in run mode or in low power mode 2. for future integration of pxa{25x,27x} GPIO configurations The modifications include: 1. introducing of processor independent MFP configuration bits, as defined in [include/asm-arm/arch-pxa/mfp.h]: bit 0.. 9 - MFP Pin Number (1024 Pins Maximum) bit 10..12 - Alternate Function Selection bit 13..15 - Drive Strength bit 16..18 - Low Power Mode State bit 19..20 - Low Power Mode Edge Detection bit 21..22 - Run Mode Pull State and so on, 2. moving the processor dependent code from mfp.h into mfp-pxa3xx.h 3. cleaning up of the MFPR bit definitions 4. mapping of processor independent MFP configuration into processor specific MFPR register settings is now totally encapsulated within pxa3xx_mfp_config() 5. using of "unsigned long" instead of invented type of "mfp_cfg_t" according to Documentation/CodingStyle Chapter 5, usage of this in platform code will be slowly removed in later patches Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: remove un-used pxa3xx_mfp_set_xxx() functionseric miao2008-01-261-111/+0
| | | | | | | | | | pxa3xx_mfp_set_xxx() functions are originally provided for overwriting MFP configurations performed by pxa3xx_mfp_config(), the usage of such a dirtry trick is not recommended, since there is currently no user of these functions, they are safely removed Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: omit PXA25x or PXA27x standby/sleep code as appropriateRussell King2008-01-263-7/+10
| | | | | | | There's no point building standby/sleep code for processors which aren't configured. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: clean up pxa{27x,25x}_init_pm() to empty if CONFIG_PM not definederic miao2008-01-262-4/+8
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: move memory controller registers into pxa2xx-regs.hRussell King2008-01-266-0/+6
| | | | | | | PXA3 has a different memory controller from PXA2 platforms. Avoid clashing definitions by moving the PXA2 definitions to pxa2xx-regs.h Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: increase size of memory mappingRussell King2008-01-261-1/+1
| | | | | | | | | The mapping for physical address 0x48000000 is not sufficient to allow access to the dynamic memory controller configuration registers on PXA3. These registers need to be accessed to reconfigure the SDRAM when waking from a low power mode. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: move pxa27x_device_ohci out of pxa27x.c for use with pxa3xxeric miao2008-01-262-31/+31
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: add clk of CKEN_USBHOST for pxa3xxeric miao2008-01-261-0/+1
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: ensure SSP TX FIFO is empty instead of not full for pxa3xxeric miao2008-01-261-0/+10
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: mmc: add 3rd host controller support for pxa310Bridge Wu2008-01-265-1/+56
| | | | | | | | | | This patch is to add the third mmc controller support _only_ for pxa310. On zylonite, the third controller support one slot. Signed-off-by: Bridge Wu <bridge.wu@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: mmc: add 2nd host controller support for pxa3xxBridge Wu2008-01-266-0/+64
| | | | | | | | | | This patch is to add the second mmc controller support for pxa3xx. It's valid for pxa3[0|1|2]0. On zylonite, the second controller has no slot. Signed-off-by: Bridge Wu <bridge.wu@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: mmc: add 1st host controller support for pxa3xxBridge Wu2008-01-265-1/+115
| | | | | | | | | | | This patchis to add the first mmc controller support for pxa3xx. It's valid for pxa3[0|1|2]0. On zylonite, the first controller supports two slots, this patch only support the first one right now. Signed-off-by: Bridge Wu <bridge.wu@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: create arch/arm/mach-pxa/device.c for all on-chip deviceseric miao2008-01-263-549/+553
| | | | | | | | Considering that generic.c is getting more and more bloated by device information, moving that part out side will be much cleaner. Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4711/1: pxa: mmc: move DMA specific code to platform layerBridge Wu2008-01-261-0/+10
| | | | | | | | | | | This patch is to move pxamci DMA specific code to corresponding platform layer because using DRCMRRXMMC/DRCMRTXMMC in pxamci.c makes the driver code dedicated to platform which is not extensible. It is applicable to all pxa platforms. Signed-off-by: Bridge Wu <bridge.wu@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: add cpufreq supportRussell King2008-01-262-0/+294
| | | | | | | There have been patches hanging around for ages to add support for cpufreq to PXA255 processors. It's about time we applied one. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: initialise SSP earlierRussell King2008-01-261-1/+1
| | | | | | | Initialise the SSP driver at arch_initcall() time, so it's available for other drivers to use it. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: only register "cpld_irq" for the correct platformRussell King2008-01-262-6/+14
| | | | | | | Only register the "cpld_irq" sysclass for mainstone/lubbock if we're running on one of those platforms. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: make pxa2xx_spi driver use ssp_request()/ssp_free()eric miao2008-01-261-17/+0
| | | | | | | | | | | | | | | | | | | | 1. make pxa2xx_spi.c use ssp_request() and ssp_free() to get the common information of the designated SSP port. 2. remove those IRQ/memory request code, ssp_request() has done that for the driver 3. the SPI platform device is thus made psuedo, no resource (memory/IRQ) has to be defined, all will be retreived by ssp_request() 4. introduce ssp_get_clk_div() to handle controller difference in clock divisor setting 5. use clk_xxx() API for clock enable/disable, and clk_get_rate() to handle the different SSP clock frequency between different processors Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: use __raw_writel()/__raw_readl() for ssp_xxxx()eric miao2008-01-261-28/+49
| | | | | | | | | | 1. change SSP register definitions from absolute virtual addresses to offsets 2. use __raw_writel()/__raw_readl() for functions of ssp_xxxx() Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: move SSP register definitions from pxa-regs.h to regs-ssp.heric miao2008-01-262-0/+2
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: define "struct ssp_device" and add ssp_request()/ssp_free()eric miao2008-01-261-56/+240
| | | | | | | | | | 1. define "struct ssp_device" for SSP information, which is requested and released by function ssp_request()/ssp_free() 2. modify the ssp_init() and ssp_exit() to use the interface Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: add ssp devices and clk support for pxa25x/pxa27x/pxa3xxeric miao2008-01-263-5/+24
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: define SSP platform devices for pxa2xx/pxa3xxeric miao2008-01-262-0/+285
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: Don't wind OSCR backwards over suspend/resumeRussell King2008-01-261-9/+12
| | | | | | | | | OSCR is supposed to monotonically increment; however restoring it to a time prior to OSMR0 may result in it being wound backwards. Instead, if OSMR0 is within the minimum expiry time, wind OSMR0 forwards. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: remove periodic mode emulation supportRussell King2008-01-261-53/+8
| | | | | | | | | Apparantly, the generic time subsystem can accurately emulate periodic mode via the one-shot support code, so we don't need our own periodic emulation code anymore. Just ensure that we build support for one shot into the generic time subsystem. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: mainstone: update backlight to use the backlight infrastructureRussell King2008-01-261-10/+50
| | | | | | | Linux has framebuffer backlight support infrastructure which should be used to expose backlight attributes. Mainstone should use it. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: avoid always registering MMC, I2C, IrDA and framebuffer devicesRussell King2008-01-265-18/+19
| | | | | | | | Only register the MMC, framebuffer, I2C and FICP devices when the platform supplies the necessary platform data structures for the devices. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Driver core: change sysdev classes to use dynamic kobject namesKay Sievers2008-01-244-4/+4
| | | | | | | | | | All kobjects require a dynamically allocated name now. We no longer need to keep track if the name is statically assigned, we can just unconditionally free() all kobject names on cleanup. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* [ARM] pxa: don't rely on r2 being preserved over a function callRussell King2008-01-201-4/+2
| | | | | | | | r2 is not guaranteed to be preserved over a function call, so relying on it to store the link register over the call to sleep_phys_sp() is unreliable. Store the link register on the stack instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4735/1: Unbreak pxa25x suspend/resumeRichard Purdie2008-01-031-1/+12
| | | | | | | | | | | Suspend/resume on the pxa25x was fairly obviously broken in revision 711be5ccfe9a02ba560aa918a008c31ea4760163. This patch fixes the damage by adding back the missing code. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Acked-by: Eric Miao <eric.y.miao@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4667/1: CM-X270 fixesMike Rapoport2007-12-081-10/+8
| | | | | | | | Change printk to dev_dbg in ITE 8152 driver and remove printk in ITE 8152 ISR. Move PCI intialization from ->scan to ->preinit method Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4675/1: pxa: fix mfp address definition error for pxa320eric miao2007-11-291-2/+5
| | | | | | Signed-off-by: bridge wu <bridge.wu@marvell.com> Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] PXA ssp: unlock when ssp tries to close an invalid portRoel Kluin2007-11-261-0/+1
| | | | | | Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4652/1: pxa: fix a typo of pxa27x usb host clk definitioneric miao2007-11-261-1/+1
| | | | | | | CKEN_USBHOST should be used instead of CKEN_USB for usb host Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4638/1: pxa: use PXA3xx specific macros to define clkseric miao2007-11-161-7/+30
| | | | | | | | PXA3xx uses its own clk_pxa3xx_cken_ops, modify the code to use the PXA3xx specific macros to define its clocks Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: fix one-shot timer modeRussell King2007-11-081-9/+14
| | | | | | | | | | | | | | | | | One-shot timer mode on PXA has various bugs which prevent kernels build with NO_HZ enabled booting. They end up spinning on a permanently asserted timer interrupt because we don't properly clear it down - clearing the OIER bit does not stop the pending interrupt status. Fix this in the set_mode handler as well. Moreover, the code which sets the next expiry point may race with the hardware, and we might not set the match register sufficiently in the future. If we encounter that situation, return -ETIME so the generic time code retries. Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4635/1: pxa: Change Eric Miao's email address to eric.miao@marvell.comeric miao2007-10-317-7/+7
| | | | | Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: shut up CLOCK_EVT_MODE_RESUME warningRussell King2007-10-311-0/+3
| | | | | | | | | Resolve: CC arch/arm/mach-pxa/time.o arch/arm/mach-pxa/time.c: In function `pxa_osmr0_set_mode': arch/arm/mach-pxa/time.c:154: warning: enumeration value `CLOCK_EVT_MODE_RESUME' not handled in switch Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4613/1: pxa300: MFP typo fixAleksey Makarov2007-10-201-2/+4
| | | | | | | | This fixes a typo in MFP address map. Signed-off-by: Aleksey Makarov <amakarov@ru.mvista.com> Acked-by: Eric Miao <eric.y.miao@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* PM: Rename struct pm_ops and related thingsRafael J. Wysocki2007-10-182-3/+3
| | | | | | | | | | | | | | | | The name of 'struct pm_ops' suggests that it is related to the power management in general, but in fact it is only related to suspend.  Moreover, its name should indicate what this structure is used for, so it seems reasonable to change it to 'struct platform_suspend_ops'.  In that case, the name of the global variable of this type used by the PM core and the names of related functions should be changed accordingly. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Cc: Len Brown <lenb@kernel.org> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* PM: Move definition of struct pm_ops to suspend.hRafael J. Wysocki2007-10-182-2/+2
| | | | | | | | | | | | | | | | | | | | | | Move the definition of 'struct pm_ops' and related functions from <linux/pm.h> to <linux/suspend.h> . There are, at least, the following reasons to do that: * 'struct pm_ops' is specifically related to suspend and not to the power management in general. * As long as 'struct pm_ops' is defined in <linux/pm.h>, any modification of it causes the entire kernel to be recompiled, which is unnecessary and annoying. * Some suspend-related features are already defined in <linux/suspend.h>, so it is logical to move the definition of 'struct pm_ops' into there. * 'struct hibernation_ops', being the hibernation-related counterpart of 'struct pm_ops', is defined in <linux/suspend.h> . Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Cc: Len Brown <lenb@kernel.org> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [ARM] 4576/1: CM-X270 machine supportMike Rapoport2007-10-155-0/+887
| | | | | | | This patch provides core support for CM-X270 platform. Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: Avoid pxa_gpio_mode() in gpio_direction_{in,out}put()Russell King2007-10-151-0/+38
| | | | | | | | | | | | | | | | | pxa_gpio_mode() is a universal call that fiddles with the GAFR (gpio alternate function register.) GAFR does not exist on PXA3 CPUs, but instead the alternate functions are controlled via the MFP support code. Platforms are expected to configure the MFP according to their needs in their platform support code rather than drivers. We extend this idea to the GAFR, and make the gpio_direction_*() functions purely operate on the GPIO level. This means platform support code is entirely responsible for configuring the GPIOs alternate functions on all PXA CPU types. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: move pxa_set_mode() from pxa2xx_mainstone.c to mainstone.cRussell King2007-10-151-0/+19
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: move pxa_set_mode() from pxa2xx_lubbock.c to lubbock.cRussell King2007-10-151-0/+19
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: PXA3xx base supporteric miao2007-10-1512-4/+1229
| | | | | Signed-off-by: eric miao <eric.y.miao@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: tidy up arch/arm/mach-pxa/MakefileRussell King2007-10-151-16/+16
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>