Commit graph

6,429 commits

Author SHA1 Message Date
Catalin Marinas
347c8b70b1 Thumb-2: Implement the unified arch/arm/mm support
This patch adds the ARM/Thumb-2 unified support to the arch/arm/mm/*
files.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2009-07-24 12:32:56 +01:00
Catalin Marinas
b86040a59f Thumb-2: Implementation of the unified start-up and exceptions code
This patch implements the ARM/Thumb-2 unified kernel start-up and
exception handling code.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2009-07-24 12:32:54 +01:00
Catalin Marinas
0becb08850 Thumb-2: Add macros for the unified assembler syntax
This patch adds various C and assembler macros that help with using
the unified assembler syntax for compiling files to either ARM or
Thumb-2 modes.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2009-07-24 12:32:53 +01:00
Catalin Marinas
88987ef91b Thumb-2: Add some .align statements to the .S files
Since the Thumb-2 instructions can be 16-bit wide, data in the .text
sections may not be aligned to a 32-bit word and this leads to unaligned
exceptions. This patch does not affect the ARM code generation.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2009-07-24 12:32:52 +01:00
Santosh Shilimkar
4fef5f90ed OMAP4: sDMA: Update the request lines and new registers.
This patch updates the platform dma.h with new dma request lines
for OMAP4 peripherals. Also additional hardware register of OMAP4
sDMA module are included.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2009-07-24 10:52:24 +05:30
wanzongshun
3f3f1d9d8d [ARM] 5619/1: Add spi mfp api for w90p910 spi driver
Add spi mfp api for w90p910 spi driver.

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-23 10:24:31 +01:00
wanzongshun
c16d5d5657 [ARM] 5618/1: Add spi resource define for w90p910 spi driver
Add spi resource define for w90p910 spi driver.

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-23 10:24:30 +01:00
wanzongshun
b48147663b [ARM] 5617/1: rename this spi device as w90p910-spi
When programming clock api, I named this spi device
as w90p910-usi, now, I think named it as w90p910-spi better

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-23 10:24:30 +01:00
wanzongshun
768db4e04b [ARM] 5616/1: Add mac resource define for w90p910 mac driver
Add mac resource define for w90p910 mac driver.

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-23 10:24:29 +01:00
wanzongshun
42ff4cf957 [ARM] 5610/1: Add fmi resource define for w90p910 platform
Add fmi resource define for w90p910 platform.

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-23 10:22:45 +01:00
Hartley Sweeten
3174c88af4 [ARM] 5611/1: ep93xx: update ts72xx nor flash support
Update the NOR flash support for TS-7200.

The TS-7200 models all have 16-bit NOR flash.  Update the platform
init to support this.

Remove the private TS72XX_NOR_* defines and use the common ep93xx
defines for the external chip select physical base address instead.

Move the NOR flash registration into a static __init function.  When
the NAND flash support is updated this function will also be used
to register the NAND flash for the TS-7250 and TS-7260.

Tested-by: Matthieu Crapet <mcrapet@gmail.com>
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-23 10:21:24 +01:00
Nicolas Ferre
808347f6a3 dmaengine: at_hdmac: add DMA slave transfers
This patch for at_hdmac adds the slave transfers capability to the Atmel DMA
controller available on some AT91 SOCs. This allow peripheral to memory and
memory to peripheral transfers with hardware handshaking.

Slave structure for controller specific information is passed through channel
private data. This at_dma_slave structure is defined in at_hdmac.h header file
and relative hardware definition are moved to this file from at_hdmac_regs.h.
Doing this we allow the channel configuration from platform definition code.

This work is intensively based on dw_dmac and several slave implementations.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2009-07-22 23:15:33 -07:00
Nicolas Ferre
dc78baa2b9 dmaengine: at_hdmac: new driver for the Atmel AHB DMA Controller
This AHB DMA Controller (aka HDMA or DMAC on AT91 systems) is availlable on
at91sam9rl chip. It will be used on other products in the future.

This first release covers only the memory-to-memory tranfer type. This is the
only tranfer type supported by this chip.  On other products, it will be used
also for peripheral DMA transfer (slave API support to come).

I used dmatest client without problem in different configurations to test it.

Full documentation for this controller can be found in the SAM9RL datasheet:
http://www.atmel.com/dyn/products/product_card.asp?part_id=4243

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2009-07-22 22:41:27 -07:00
Dmitry Torokhov
52ec7752b4 Input: pxa27x_keypad - remove extra clk_disable
clk_disable() in remove method is not needed since we already
have clk_disable in pxa27x_keypad_close().

Also make sure the driver uses resource_size() and helpers from
include/input/matrix_keypad.h

Tested-by: Mike Rapoport <mike@compulab.co.il>
Acked-by: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-07-22 22:33:47 -07:00
Mike Rapoport
1d3e216f1d [ARM] pxa/em-x270: fix compile failure when CONFIG_APM_EMULATION=n
If CONFIG_APM_EMULATION=n em-x270 build fails with linker error:

arch/arm/mach-pxa/built-in.o: In function `em_x270_battery_critical': em-x270.c:(.text+0x12c0): undefined reference to `apm_queue_event'
arch/arm/mach-pxa/built-in.o: In function `em_x270_battery_low': em-x270.c:(.text+0x12c8): undefined reference to `apm_queue_event'
make: *** [.tmp_vmlinux1] Error 1

Fix it.

Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2009-07-23 10:43:40 +08:00
Magnus Damm
79ee031ff6 ARM: Rework omap suspend_late()/resume_early()
This patch reworks platform driver power management code
for omap drivers using late/early legacy callbacks.

The callbacks are converted for CONFIG_SUSPEND like this:
  suspend_late() -> suspend_noirq()
  resume_early() -> resume_noirq()

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2009-07-22 00:28:38 +02:00
Magnus Damm
d7aacaddca Driver Core: Add platform device arch data V3
Allow architecture specific data in struct platform_device V3.

With this patch struct pdev_archdata is added to struct
platform_device, similar to struct dev_archdata in found in
struct device. Useful for architecture code that needs to
keep extra data associated with each platform device.

Struct pdev_archdata is different from dev.platform_data, the
convention is that dev.platform_data points to driver-specific
data. It may or may not be required by the driver. The format
of this depends on driver but is the same across architectures.

The structure pdev_archdata is a place for architecture specific
data. This data is handled by architecture specific code (for
example runtime PM), and since it is architecture specific it
should _never_ be touched by device driver code. Exactly like
struct dev_archdata but for platform devices.

[rjw: This change is for power management mostly and that's why it
 goes through the suspend tree.]

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2009-07-22 00:28:38 +02:00
Uwe Kleine-König
4bf1fa5a34 [ARM] 5613/1: implement CALLER_ADDRESSx
From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

As __builtin_return_address(n) doesn't work for ARM with n > 0, the
kernel needs its own implementation.

This fixes many warnings saying:

	warning: unsupported argument to '__builtin_return_address'

The new methods and walk_stackframe must not be instrumented because
CALLER_ADDRESSx is used in the various tracers and tracing the tracer is
a bad idea.

What's currently missing is an implementation using unwind tables.  This
is not fatal though, it's just that the tracers don't get enough
information to be really useful.

Note that if both ARM_UNWIND and FRAME_POINTER are enabled,
walk_stackframe uses unwind information.  So in this case the same
implementation is used as when FRAME_POINTER is disabled.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-21 17:21:28 +01:00
Hartley Sweeten
3aa7a9a3cf [ARM] 5612/1: ep93xx: add platform LEDs
The EP93xx has two gpio pins specifically assigned to drive
external LEDs.  Add core support for these LEDs.

On the EDB93xx development boards, the rdled is connected to
an external reset circuit.  Turning this led on for an extended
amount of time will cause the circuit to issue a manual reset.

Refer to Cirrus App Note AN258 for more information.

	http://www.cirrus.com/en/pubs/appNote/AN258REV2.pdf

This led can be safely used as the system heartbeat with the
ledtrig-heartbeat driver.

	echo heartbeat > /sys/class/leds/platform:rdled/trigger

The grled can be used for any desired purpose.

Tested-by: Matthieu Crapet <mcrapet@gmail.com>
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-21 17:20:48 +01:00
Linus Torvalds
a7571a5c88 Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
  ARM: Realview & Versatile: Fix i2c_board_info definitions
  [ARM] 5608/1: Updated U300 defconfig
  [ARM] 5606/1: Fix ep93xx watchdog driver headers
  [ARM] 5594/1: Correct U300 VIC init PM setting
  [ARM] 5595/1: ep93xx: missing header in dma-m2p.c
  [ARM] Kirkwood: Correct header define
  [ARM] pxa: fix ULPI_{DIR,NXT,STP} MFP defines
  backlight: fix pwm_bl.c to notify platform code when suspending
  [ARM] pxa: use kzalloc() in pxa_init_gpio_chip()
  [ARM] pxa: correct I2CPWR clock for pxa3xx
  pxamci: correct DMA flow control
  ARM: add support for the EET board, based on the i.MX31 pcm037 module
  pcm037: add MT9T031 camera support
  Armadillo 500 add NAND flash device support (resend).
  ARM MXC: Armadillo 500 add NOR flash device support (resend).
  mx31: remove duplicated #include
2009-07-18 11:59:33 -07:00
Russell King
64e8be6ebd ARM: Realview & Versatile: Fix i2c_board_info definitions
Fix i2c_board_info definitions - we were defining the 'type' field
of these structures twice since the first argument of I2C_BOARD_INFO
sets this field.  Move the second definition into I2C_BOARD_INFO().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Ben Dooks <ben-linux@fluff.org>
2009-07-18 17:08:59 +01:00
Ben Dooks
bff78650a2 ARM: HWMON: S3C24XX series ADC driver
Add support for the ADC controller on the S3C series of processors to
drivers/hwmon for use with hardware monitoring systems.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-18 10:15:54 +01:00
Ben Dooks
e170adcb40 ARM: S3C: Add ADC synchronous read call.
To add HWMON support, we need a synchronous read() call that blocks
until completion. Add the client that is being service to the select
and convert callbacks to make the code easier.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-18 10:15:53 +01:00
Ben Dooks
885f9ebe75 ARM: BAST: Add hwmon device information
Add platform device information for the ADC channels to be exported
via HWMON. This exports all the ADCs not being used for the touchscreen
interface.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-18 10:15:53 +01:00
Ben Dooks
c197cec5fa ARM: S3C: Update hwmon device definition and name
Change the hwmon device name to something more generic as this
should be functional for both the s3c24xx and s3c64xx archs.

Since it has yet to have a driver, it is pretty safe to change
as there are no extant users.

Also add the necessary entry in devs.h which seems to have been
missed  out at somepoint.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-18 10:15:53 +01:00
Marek Vasut
ecf763c567 [ARM] pxa: add STUART MFP config for PalmTX,T5,LD
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2009-07-18 10:01:30 +08:00
Haojian Zhuang
eb9069119d [ARM] pxa: fix gpio issue in zylonite
WARNING: at drivers/gpio/gpiolib.c:83 gpio_ensure_requested+0x58/0xbc()
 autorequest GPIO-71
 Modules linked in:
 [<c0028bd0>] (unwind_backtrace+0x0/0xe8) from [<c003c328>] (warn_slowpath_common+0x48/0x78)
 [<c003c328>] (warn_slowpath_common+0x48/0x78) from [<c003c394>] (warn_slowpath_fmt+0x28/0x38)
 [<c003c394>] (warn_slowpath_fmt+0x28/0x38) from [<c0146128>] (gpio_ensure_requested+0x58/0xbc)
 [<c0146128>] (gpio_ensure_requested+0x58/0xbc) from [<c0146308>] (gpio_direction_input+0x80/0xf4)
 [<c0146308>] (gpio_direction_input+0x80/0xf4) from [<c000c668>] (zylonite_pxa300_init+0x108/0x214)
 [<c000c668>] (zylonite_pxa300_init+0x108/0x214) from [<c000c4e4>] (zylonite_init+0x8/0x84)
 [<c000c4e4>] (zylonite_init+0x8/0x84) from [<c00097cc>] (customize_machine+0x18/0x24)
 [<c00097cc>] (customize_machine+0x18/0x24) from [<c00222e0>] (do_one_initcall+0x30/0x1b0)
 [<c00222e0>] (do_one_initcall+0x30/0x1b0) from [<c00083f4>] (kernel_init+0xa4/0x11c)
 [<c00083f4>] (kernel_init+0xa4/0x11c) from [<c0023f3c>] (kernel_thread_exit+0x0/0x8)
 ---[ end trace 1b75b31a2719ed1c ]---

This issue is caused by using gpio pin without request. Add gpio_request()
into zylonite. To simplify the code, error checking is omitted since this
is being performed early.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2009-07-18 10:00:08 +08:00
Linus Walleij
d740d347f8 [ARM] 5608/1: Updated U300 defconfig
Removed the LBD support that isn't of any use right now at least,
then remove remnants of the TCM config flags that somehow crept
in by mistake (not yet merged patch for 2.6.32) and then the usual
defconfig noise from updated menus.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-17 13:38:56 +01:00
wanzongshun
0abe1856bd [ARM] 5604/1: Add keypad multi-function pin api for w90p910 platform
Add keypad multi-function pin api for w90p910 platform.

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-17 13:38:18 +01:00
wanzongshun
db58e90fdb [ARM] 5602/1: Add sub clock api for w90p910 platform
Add sub clock api for w90p910 platform.

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-17 13:38:17 +01:00
wanzongshun
d2c2419550 [ARM] 5601/1: Add HAVE_CLK depends on for w90p910 platform
Add HAVE_CLK depends on for w90p910 platform.

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-17 13:38:17 +01:00
Hartley Sweeten
5d43f11bcf [ARM] 5609/1: ep93xx: add register defines for keypad support
Add missing register defines for ep93xx keypad clock support.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-17 13:36:00 +01:00
Ryan Mallon
fbeeea5386 [ARM] 5607/1: ep93xx: Use __iomem pointer on syscon write function
Change the reg argument of the ep93xx_syscon_swlocked_write function
to be an __iomem pointer. Fixes a number of build warnings.

Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-17 13:35:59 +01:00
Ryan Mallon
595c050d89 [ARM] 5605/1: Fix ep93xx gpio.c headers
Fix a number of build errors in ep93xx gpio.c due to to missing irq.h

Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-17 13:35:58 +01:00
Hartley Sweeten
5b1c3c858c [ARM] 5600/1: ep93xx: core.c remove cast when copying dev_addr
The MAC address for the ep93xx ethernet driver can be optionally
copied from registers in the controller when booting.  Due to
[ARM] 5573/1: ep93xx: ensure typesafe io, the cast for the source
address is no longer needed.

EP93XX_ETHERNET_BASE is typed as a (void __iomem __force *) so
memcpy_fromio() needs to be used instead of memcpy().

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-17 13:35:55 +01:00
Hartley Sweeten
5396730b3c [ARM] 5598/1: ep93xx: core.c typesafe vic_init
The EP93XX_VIC{1/2}_BASE defines are now typesafe due to
[ARM] 5573/1: ep93xx: ensure typesafe io.  The (void *) cast
is not needed when calling vic_init().

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-11 23:01:30 +01:00
Russell King
6a00cded91 [ARM] pgtable: rearrange file PTE bit allocation
For future compatibility, we need to ensure that swap and file Linux
PTEs conform with the hardware PTEs "fault" encoding.  Swap PTEs
already fit in with this, but file PTEs do not.  Shift them by one
bit to ensure that they conform, using bit 2 to distinguish between
swap and file PTEs.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-11 16:59:39 +01:00
Russell King
f7a55fa6ec [ARM] remove L_PTE_BUFFERABLE and L_PTE_CACHEABLE
These old symbols are meaningless now that we have memory type
support implemented.  The entire memory type field needs to be
modified rather than just a few bits twiddled.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-11 16:55:52 +01:00
Huang Weiyi
ee0049d49a [ARM] remove duplicated #include
Remove duplicated #include('s) in
  arch/arm/mach-mx3/devices.c
  arch/arm/mach-omap1/mcbsp.c
  arch/arm/mach-omap2/mcbsp.c
  arch/arm/plat-stmp3xxx/pinmux.c

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-11 16:55:52 +01:00
Peter Zijlstra
c99e6efe1b sched: INIT_PREEMPT_COUNT
Pull the initial preempt_count value into a single
definition site.

Maintainers for: alpha, ia64 and m68k, please have a look,
your arch code is funny.

The header magic is a bit odd, but similar to the KERNEL_DS
one, CPP waits with expanding these macros until the
INIT_THREAD_INFO macro itself is expanded, which is in
arch/*/kernel/init_task.c where we've already included
sched.h so we're good.

Cc: tony.luck@intel.com
Cc: rth@twiddle.net
Cc: geert@linux-m68k.org
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-07-10 14:24:05 -07:00
Russell King
13892cf95d [ARM] Update mach-types
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-09 20:57:12 +01:00
Mark Brown
d7dbf6ea40 [ARM] 5596/1: at91sam9g20-ek: Register WM8731 in board file
The WM8731 driver has been updated to allow registration via normal
device model methods rather than from within the ASoC driver probe
so update the AT91SAM9G20-EK to make use of this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-09 17:15:23 +01:00
wanzongshun
19c0a7286f [ARM] 5591/1: Add group irq enable/disable for w90p910 platform.
Add group irq enable/disable for w90p910 platform.

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-09 17:14:48 +01:00
Linus Walleij
6860107a46 [ARM] 5594/1: Correct U300 VIC init PM setting
This makes the VIC resume from suspend flagged IRQ:s identical to
the flags indicating all possible interrupts. This is perhaps not
the optimal setting but setting it to 0 makes the system suspend
and never come back again (all IRQ sources masked off).

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-09 16:15:46 +01:00
Hartley Sweeten
c3e3baddbc [ARM] 5593/1: ep93xx: clock.c __iomem pointer
To ensure typesafe io, the enable_reg variable should be a
void __iomem pointer not u32.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-09 16:13:45 +01:00
Hartley Sweeten
583ddafe17 [ARM] 5592/1: ep93xx: cleanup platform header includes
arch/arm/mach-ep93xx/include/mach/hardware.h
  1. Properly name the include files so that they are loaded
     from the <mach/*> directory and not the local directory.
  2. Remove including the ts72xx.h header.  This header is not
     generic to the ep93xx platform.  It should only be included
     by the ts72xx specific files that require it.  The only
     two users in the tree are arch/arm/mach-ep93xx/ts72xx.c
     and drivers/mtd/nand/ts7250.c.

arch/arm/mach-ep93xx/include/mach/ts72xx.h
  1. <linux/io.h> should already be included by any user of this
     header.  Doing the include here hides it from being needed
     by the calling source file.

arch/arm/mach-ep93xx/core.c
  1. Remove unnecessary headers.  They were probably included
     originally due to cut-and-paste from other files.
  2. <linux/io.h> should be included not <mach/gpio.h>

arch/arm/mach-ep93xx/adsphere.c
arch/arm/mach-ep93xx/edb93xx.c
arch/arm/mach-ep93xx/gesbc9312.c
arch/arm/mach-ep93xx/micro9.c
arch/arm/mach-ep93xx/ts72xx.c
  1. Remove unnecessary headers.

arch/arm/mach-ep93xx/ts72xx.c
  1. Remove unnecessary headers.
  2. Add platform specific header <mach/ts72xx.h>.

drivers/mtd/nand/ts7250.c
  1. <linux/io.h> should be included not <asm/io.h>.
  2. Add platform specific header <mach/ts72xx.h>.

Cc: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-09 16:13:44 +01:00
Hartley Sweeten
a0b98ec87d [ARM] 5595/1: ep93xx: missing header in dma-m2p.c
<linux/io.h> was getting included by <mach/ts72xx.h>, is should be
included by this file.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-09 16:11:48 +01:00
Hartley Sweeten
701fac823e [ARM] 5578/1: ep93xx: add ep93xx-keypad clock
Add clkdev support for the ep93xx_keypad driver.

A matrix keypad driver for the ep93xx just got merged via the
input subsystem group.  For this driver to work the keypad clock
needs to be added to the ep93xx clkdev support.  In order to
accomplish this the following changes are implemented:

  1) Move the EP93XX_EXT_*_RATE defines to mach/include/hardware.h.
  2) Add EP93XX_KEYTCHCLK_DIV{4/16} for the keypad driver.
  3) Add support for programmable clocks (set_rate() callback).
  4) Add clk_keypad for the keypad driver.
  5) tab indent the clk_lookup table for easier reading.
  6) Add the set_rate() callback to program the keypad clock.
     This callback is generalized since the ADC clock (touchscreen)
     can use the same callback.
  7) Use the ep93xx_syscon_swlocked_write() core function for updating
     the software locked register.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-09 16:10:51 +01:00
Hartley Sweeten
02239f0a42 [ARM] 5577/2: ep93xx: syscon locked register functions
Add core functions to handle writes to the ep93xx software locked
registers.

There are a number of registers in the EP93xx System Controller
that require a write to the software lock register before they
can be updated. This patch adds a number of exported functions
to the ep93xx core that handle this access.

The software locked clock divider registers, VidClkDiv, MIRClkDiv,
I2SClkDiv and KeyTchClkDiv would typically involve writing a
specific value to the register. To support this the
ep93xx_syscon_swlocked_write() function is provided.

For the DeviceCfg register it's more typical to only need to
set or clear a single bit. A generic ep93xx_devcfg_set_clear()
function is provided to handle both operations. Two inline
functions, ep93xx_devcfg_set_bits() and ep93xx_devcfg_clear_bits()
are also provided to improve code readability.

In addition, the remaining bits in the System Controller Device
Config Register have been documented and the previously defined
names shortened.

All code paths that use this functionality have been updated
except for arch/arm/kernel/crunch.c. That code is in a context
switch path, which is not reentrant, so it is safe against itself.

Cc: Lennert Buytenhek <buytenh@wantstofly.org>
Cc: Matthias Kaehlcke <matthias@kaehlcke.net>
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-07-09 16:10:51 +01:00
Russell King
39bd8064ab Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 2009-07-09 16:08:59 +01:00