Commit Graph

4281 Commits

Author SHA1 Message Date
Ben Dooks
549d0460bc [ARM] S3C24A0: Remove duplicate <mach/io.h> file
The commit 39263db7986bf15c753f6847699107bdf5a2e318 added
a default <mach/io.h> implementation which is shared if
needed between all the s3c implementations. Remove the
s3c24a0 version which is the same as this.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 16:35:59 +00:00
Ben Dooks
5bdf67312e [ARM] S3C64XX: Remove __virt_to_bus/__bus_to_virt macros
The changes for ARM highmem support have removed the need
for the __virt_to_bus and __bus_to_virt macros, so remove them
from this build.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 16:35:54 +00:00
Ben Dooks
dbf35992e1 [ARM] S3C24XX: Add fourth UART definition for S3C2443
Add the fourth UART definition for the S3C2443, and at the
same time fixup the problems caused by the enlarging of the
UART array in the previous commits.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 16:26:16 +00:00
Ben Dooks
bdd4915a9f [ARM] S3C: Update CONFIG_SERIAL_SAMSUNG_UARTS handling
Fix the usage of CONFIG_SERIAL_SAMSUNG_UARTS in several places
in the kernel where it had been missed. This finishes fixing a
long standing issue where S3C2443 and S3C64XX could not use the
4th UART

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 16:26:14 +00:00
Ben Dooks
56c035c9ce Merge branch 'next-s3c64xx-device' into next-merged
Conflicts:

	arch/arm/mach-s3c2440/mach-at2440evb.c
2008-12-18 16:17:37 +00:00
Sascha Hauer
a244909152 [ARM] MXC: do not include mach/hardware.h from mach/memory.h
Instead of including other header files, define PHYS_OFFSET directly

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-18 16:40:14 +01:00
Sascha Hauer
44421e4258 [ARM] MXC: do not include mach/hardware.h from mach/timex.h
Instead of including other header files, define CLOCK_TICK_RATE directly

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-18 16:40:12 +01:00
Sascha Hauer
9d631b835f [ARM] MXC: remove dependency to other include files from irqs.h
This patch removes the inclusion of mach/hardware.h from mach/irqs.h and
switches to more meaningful names for the irq related macros.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-18 16:40:11 +01:00
Sascha Hauer
7c99502383 [ARM] MX1/MX2 DMA: add missing local_irq_restore()
This patch adds a missing call to local_irq_restore() and fixes some
compiler warnings about unused variables for MX1.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-18 16:40:04 +01:00
Ben Dooks
7f2754378f Merge branch 'next-s3c64xx' into next-merged 2008-12-18 14:52:04 +00:00
Ben Dooks
c6ad115876 Merge branch 'next-s3c24xx' into next-merged 2008-12-18 14:52:00 +00:00
Ben Dooks
1d19fdba14 [ARM] AT2440EVB: LCD frame buffer support.
Add LCD frame buffer support for AT2440EVB board.

Signed-off-by: Ramax Lo <ramaxlo@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 14:44:15 +00:00
Ben Dooks
4a045cb306 [ARM] S3C24XX: AT2440EVB MMC
Add SD/MMC support for AT2440EVB board.

Signed-off-by: Ramax Lo <ramaxlo@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 14:44:12 +00:00
Ben Dooks
6290ce3058 [ARM] ANUBIS: Add SM501 GPIO and update I2C setup
Add GPIO support to the SM501 on the Simtec Anubis,
and then add the necessary updates for allowing the
two gpio I2C busses to be used.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 14:43:33 +00:00
Ben Dooks
e2178d4374 [ARM] S3C24XX: Add extra GPIOs via Kconfig
Add Kconfig entries to allow more GPIO space to
be specified depending on the machine(s) selected.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 14:43:07 +00:00
Ben Dooks
8783b3446b [ARM] JIVE: fix spi gpio implementation
Fix the name of the driver, as well as the fact we are not
passing the number of chipselects to the driver.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 14:43:03 +00:00
Ben Dooks
28ab44c5be [ARM] S3C24XX: ADC driver core
A common core driver for the S3C24XX ADC block so that
the touchscreen, hwmon and any other drivers can share
the resource.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-18 14:20:04 +00:00
Sascha Hauer
b71edbe9a0 [ARM] MX27ads: fix function name
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-18 12:27:48 +01:00
Sascha Hauer
2955de5fad [ARM] MX1: Add missing selection of ARM920T
The MX1 only has one possible CPU type, ARM920T. Select it in
Kconfig.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-18 09:32:23 +01:00
Russell King
c95a44329e Merge branch 'rmk-devel-mxc-pu-v2' of git://pasiphae.extern.pengutronix.de/git/imx/linux-2.6 into devel 2008-12-17 20:05:39 +00:00
Russell King
c613bbba6f Merge branch 'mxc-pu-imxfb' of git://pasiphae.extern.pengutronix.de/git/imx/linux-2.6 into devel 2008-12-17 20:04:45 +00:00
Russell King
cd4348339c Merge branch 'hsmmc-init' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 into devel 2008-12-17 20:03:39 +00:00
Eric Miao
3b24f30c4f [ARM] pxa/littleton: add preliminary I2C board info (da9034 + max7320)
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:52:12 +08:00
Eric Miao
111059e7f4 [ARM] pxa/saar: add support for the on-board smart panel LCD
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:52:01 +08:00
Jonathan Cameron
b6795fa9fd [ARM] pxa: initial support for the Imote2 platform
Changes made as suggested by Eric Miao (including fix to map_io
silly mistake!).

Originally designed by Intel, now sold by Crossbow (www.xbow.com).

Very little actually on board. The patch includes sensors and
similar as found on commonly occurring daughter boards.

Some of the drivers are not in mainline as yet as they are either
part of the IIO subsystem or need a lot of work before submission.
What is the position wrt to putting them in i2c board configs etc?

Support for these boards has been maintained outside the kernel
for a long time, but now that there is a good da9030 pmic driver
available the last major hurdle no longer exists.

All comments welcomed.

The Imote2's big brother (stargate2) will follow once any problems
with this one have been cleaned up and a few bits and bobs have
been added to the da903x driver. Hopefully the cc2420 driver will
get cleaned up and submitted in the not too distant future as
well.

Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:51:39 +08:00
Stefan Schmidt
bc09cf6de2 [ARM] pxa/ezx: I2C configuration
I2C platform data setups.

Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com>
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:51:39 +08:00
Stefan Schmidt
fe9490c67a [ARM] pxa/ezx: Keypad configuration
Matrix and single key setups for all phones.

Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com>
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:51:39 +08:00
Stefan Schmidt
9078ac2153 [ARM] pxa/ezx: GPIO configuration
Pin configs for different generations and phones.

Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com>
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:51:38 +08:00
Stefan Schmidt
bab16dfc9b [ARM] pxa/ezx: Remove two memory banks fixup
Our bootloader now supports ATAGS_MEM

Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com>
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:51:38 +08:00
Jaya Kumar
3332b0c179 [ARM] pxa/gumstix: fix incorrect init done by am200
Signed-off-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Cc: Andre Puschmann <andre.puschmann@imms.de>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:51:38 +08:00
Eric Miao
69bdea7047 [ARM] pxafb: allow insertion of delay to the smart panel command sequence
Some smart panel requires a delay between command sequences, while PXA
LCD controller didn't provide such one, let's emulate this by software.

A software delay marker can be inserted into the command sequence, once
pxafb_smart_queue() detects this, it flushes the previous commands and
delay for a specified number of milliseconds.

Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:50:52 +08:00
Eric Miao
c1f99c215c [ARM] pxafb: allow better platform configurable smart panel timing
For smart panels (LCD panel with internal framebuffer), the following
LCCR3 register bits have different meanings than the parallel one:

  LCCR3_PCP - controls the L_PCLK_WR polarity
  LCCR3_HSP - controls the L_LCLK_A0 polarity
  LCCR3_VSP - controls the L_FCLK_RD polarity

To keep minimum change to the original parallel timing, the .lcd_conn
flags and 'pxafb_mode_info.sync' are re-used to reflect this:

  LCD_PCLK_EDGE_{RISE,FALL} - configures LCCR3_PCP
  sync & FB_SYNC_{HOR,VERT}_HIGH_ACT - configures LCCR3_{HSP,VSP}

Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:50:40 +08:00
Eric Miao
9587319bfe [ARM] pxa: convert legacy LCD setup of other boards to new one
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: Ian Molton <spyro@f2s.com>
Cc: pHilipp Zabel <philipp.zabel@gmail.com>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: Juergen Schindele <linux@schindele.name>
Acked-by: Stefan Schmidt <stefan@datenfreihafen.org>
Acked-by: Marc Zyngier <maz@misterjones.org>
Acked-by: Mike Rapoport <mike@compulab.co.il>
Acked-by: Jaya Kumar <jayakumar.lkml@gmail.com>
2008-12-17 22:45:30 +08:00
Eric Miao
5163304889 [ARM] pxafb: add color TFT 8BPP LCD panel type
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17 22:44:45 +08:00
Ingo Molnar
1f3f424a6b Merge branch 'linus' into cpus4096 2008-12-17 13:07:48 +01:00
Ben Dooks
5a93f42017 Merge branch 'i2c-for-ben' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 into i2c-next 2008-12-16 22:06:30 +00:00
Sascha Hauer
278892736e i.MX Framebuffer: rename imxfb_mach_info to imx_fb_platform_data
rename imxfb_mach_info to a name more common to kernel hackers

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 15:40:22 +01:00
Juergen Beisert
72330b0eee i.MX Framebuffer: Use readl/writel instead of direct pointer deref
This patch prepares the current i.MX1 framebuffer driver for usage in the
whole i.MX family. It switches to readl/writel for register accesses.
Also it moves the register definitions to the driver where they belong.

Acked-by: Krzysztof Helt <krzysztof.h1@poczta.fm>
Signed-off-by: Juergen Beisert <j.beisert@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 15:40:19 +01:00
Claudio Scordino
47fee6fedd Unused variable 'reg' removed.
Signed-off-by: Claudio Scordino <claudio@evidence.eu.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:44 +01:00
Paulius Zaleckas
d7927e1916 patch-mxc-fiq
Drivers which are going to use it will have to select it and use
mxc_set_irq_fiq() to set FIQ mode for this interrupt.

Signed-off-by: Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:43 +01:00
Darius Augulis
5032630f39 patch-mx1-mtd-xip
Adds MTD XIP support for ARCH_MX1.

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:42 +01:00
Darius Augulis
219fed7558 patch-mx1-add-devices
Adds common devices to ARCH_MX1.

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:41 +01:00
Paulius Zaleckas
cfca8b539f patch-mxc-add-ARCH_MX1
Adds MX1 architecture to platform MXC. It will supersede mach-imx
and let it die.

Signed-off-by: Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:40 +01:00
Darius Augulis
d133d6a893 patch-iomux-mx1-mx2-cleanup
Fix GIUS register setup in the mxc_gpio_mode().

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:26 +01:00
Valentin Longchamp
376a960ee6 [ARM] MX31: defconfig for mx31moboard platform
Signed-off-by: Valentin Longchamp <valentin.longchamp@epfl.ch>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:20 +01:00
Valentin Longchamp
988d2d49f7 [ARM] MX31: basic support for mx31moboard platform
Initial support for mx31moboard platfor with 3 serial ports
and NOR Flash

Signed-off-by: Valentin Longchamp <valentin.longchamp@epfl.ch>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:19 +01:00
Valentin Longchamp
a3cce2a8e2 MX31: UART5 pins definition
pins definition for UART5 when used in alternate mode 2

Signed-off-by: Valentin Longchamp <valentin.longchamp@epfl.ch>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:18 +01:00
Valentin Longchamp
d1b3cc6de8 MX31: definitions for UART2 pins
UART2 pins when used in functionnal mode

Signed-off-by: Valentin Longchamp <valentin.longchamp@epfl.ch>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:17 +01:00
Sascha Hauer
3287abbd71 [ARM] pcm037: add NAND support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:14 +01:00
Sascha Hauer
cb96cf1ad6 [ARM] MX3: add NAND support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:02 +01:00
Sascha Hauer
01f71a3719 [ARM] pcm038: Add NAND support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:58:00 +01:00
Sascha Hauer
02870978ea [ARM] MX27: Add NAND resources
This patch adds the platform device and resources for NAND
on mx27 boards.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:57:58 +01:00
Fabio Estevam
46c3d567af Add default configuration for MX31PDK board.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:57:58 +01:00
Fabio Estevam
1553a1ec83 Add basic support for MX31PDK board.
Add basic support to the MX31PDK development board, also known
as MX31 3DS or MX31 3-stack board (http://www.freescale.com/imx31pdk).

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:57:57 +01:00
Sascha Hauer
3dad21a95b [ARM] pcm037: Add support for SRAM device
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:57:56 +01:00
Guennadi Liakhovetski
ba54b95899 [ARM] pcm037: add support for the on-board LAN9217 network controller
smc911x now also supports LAN921{5,7,8} network controllers.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:57:55 +01:00
Sascha Hauer
3620c0dccf pcm038: add driver for static ram
The pcm038 module (phyCORE-i.MX27) comes with a 512 KiB static RAM which
can be battery buffered. Add mtd_ram support and configure the chip select
line, to which the sram is attached.

Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:57:54 +01:00
Guennadi Liakhovetski
4a7b98d7e7 i.MX31: fix mxc_iomux_set_pad()
mxc_iomux_set_pad() is buggy on i.MX31 - it calculates the register and
the offset therein wrongly. Fix it.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:57:24 +01:00
Sascha Hauer
1d5aa17be1 [ARM] MX3 iomux: add more pin definitions
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:46:18 +01:00
Sascha Hauer
7bd1822135 [ARM] MX1/MX2: simplify mxc_gpio_setup_multiple_pins
mxc_gpio_setup_multiple_pins used to take several ALLOC_MODE flags. Most
of them are unused, so simplify the function by removing the flags. Also,
instead of using a confusing MXC_GPIO_ALLOC_MODE_RELEASE flag in a function
having alloc in its name, add a mxc_gpio_release_multiple_pins function.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:46:14 +01:00
Julien Boibessot
d1900d3a18 [ARM] MX27: add i.MX27 SDHC1 and SDHC2 GPIO declarations
Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:46:09 +01:00
Sascha Hauer
1e7f3f48b3 MX27: Add USB pin function defines
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:44:51 +01:00
Sascha Hauer
8c8409539b [ARM] MX27ads: remove unused define
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:44:38 +01:00
Sascha Hauer
7cb3f6d268 [ARM] MX2: Add IRQ_GPIOE definition
The MX2 has 5 gpio ports, IRQ_GPIOE was missing so far.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:44:29 +01:00
Sascha Hauer
619e15508b MX27: Fix EMMA Base addresses
The EMMA (Enhanced Multimedia Engine) is divided into two parts, the
postprocessor and the preprocessor. Fix the base addresses.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 14:44:17 +01:00
Sascha Hauer
33ebc19d54 [ARM] MX2: DMA updates
This one updates DMA support on MX2 which got broken in:
[ARM] Hide ISA DMA API when ISA_DMA_API is unset

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-16 12:17:47 +01:00
Ben Dooks
e7aa6f46f6 [ARM] S3C: Add UART FIFO selection during arch decompression
Add a configuration option to start the UART FIFOs during the
decompressions sequence to improve boot time when the bootloader
fails to enable the UART FIFOs.

For example, the SMDK6410 UBoot 1.1.6 leaves the FIFOs off.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-16 10:32:02 +00:00
Matt Hsu
a9c5d23ac7 [ARM] S3C64XX: Correct the EINT IRQ type configuration
Select the correct EINT configuration register when configuring
the external interrupt level/edge type.

Signed-off-by: Matt Hsu <matt_hsu@openmoko.org>
[ben-linux@fluff.org: description improvement]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-16 10:19:26 +00:00
Kyungmin Park
11e3bd0923 [ARM] S3C64XX: Mask the pll values correctly
Correct the PLL field masks to ensure the PLL functions return the
right value.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
[ben-linux@fluff.org: improve the description text]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-16 10:19:13 +00:00
Kyungmin Park
e4ea803ab0 [ARM] S3C64XX: Show uncompress messages
Fix the initialisation of the fifo data in the uncompression serial
routines to ensure that if the FIFO is enabled, that the serial output
is not corrupted.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
[ben-linux@fluff.org: edit description to add more detail]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-16 10:18:55 +00:00
Ben Dooks
9d325f2341 [ARM] S3C: Update time initialisation to fix S3C64XX time problems
The S3C64XX timer is running at the wrong rate due to the
assumptions made in the timer initialisation about the way
the pwm dividers work. This means that time on the S3C64XX
runs twice as fast as it should.

Fix the problem by moving to using the clk framework to setup
the pwm timer clock muxes, as the pwm-clock code has all the
necessary knowledge of how the timer clock inputs are routed.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-16 10:13:02 +00:00
Ben Dooks
b09bcdd4c2 [ARM] S3C64XX: Update TCFG for new timer divider settings.
The S3C64XX series has a new TCFG divider setting to allow the clock
directly through, which means that we need to update the pwm-clock
code to cope with this.

Add <mach/pwm-clock.h> containing the specific code to deal with the
TCFG divider settings and provide any other per-arch data that the
pwm-clock driver needs to function.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-16 10:01:23 +00:00
David S. Miller
eb14f01959 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:

	drivers/net/e1000e/ich8lan.c
2008-12-15 20:03:50 -08:00
Ben Dooks
438a5d42e0 [ARM] SMDK6410: Add LCD (LCD48WVGA) definitions
Add support for the LCD 48WVGA module attached to the
SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:57:26 +00:00
Ben Dooks
c7a0401e61 [ARM] S3C64XX: Add standard S3C64XX 24BPP LCD GPIO setup
Add a standard helper to configure the LCD output pins for a 24BPP
display with VSYNC/HSYNC/VDEN.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:57:19 +00:00
Ben Dooks
58435f7b2d [ARM] S3C: Add new FB device definition
Add a device definition for the new S3C framebuffer
driver.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:56:53 +00:00
Ben Dooks
1aba834da1 [ARM] S3C: Add i2c1 device definition
Add device definition and support functions for the
second i2c device (i2c1). If this is selected, the first
i2c bus will become index 0 instead of index -1.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:56:41 +00:00
Ben Dooks
8f995cc3ac [ARM] S3C: Add register defines for new style framebuffer
Provide  the initial register definitions for the newer
style of framebuffer cores found in the Samsung SoCs
such as S3C2450, S3C64XX.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:55:10 +00:00
Ben Dooks
713e9dede6 [ARM] S3C: Fix SDHCI setup compilation
Fix the compilation of the SDHCI configuration/setup
functions to depend on their respective configuration
variables.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:54:21 +00:00
Ben Dooks
d6bc5f70e0 [ARM] S3C6410: Fix gpio configuration for channel 1.
Select the correct GPIO configuration function for channel 1

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:53:59 +00:00
Ben Dooks
c33e14c724 [ARM] s3c6400_defconfig: Add SDHCI driver
Add the Samsung SDHCI driver to the build.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:53:51 +00:00
Ben Dooks
6c874d6fa8 [ARM] s3c6400_defconfig: Add I2C driver and devices
Add the new I2C driver and the EEPROM devices to
the system, as well as update to the latest kernel.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:53:23 +00:00
Ben Dooks
b24636cff1 [ARM] SMDK6410: Add availability of second hsmmc channel
Add SDHCI channel 1.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:53:05 +00:00
Ben Dooks
44539a7112 [ARM] S3C64XX: Fix MMC0 clock source register mask
Fix the definition of the MMC0 register shift and mask in the
CLKSRC register.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:50:22 +00:00
Ben Dooks
6a5f4b8535 [ARM] S3C64XX: Fix missing definition of s3c64xx_init_io()
The function s3c64xx_init_io was missing from <plat/cpu.h>
and was masked by the SMDK6410 having an local definition.

Fix by removing the SMDK6410 variant and adding it to the
relevant <plat/cpu.h> file.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:48:20 +00:00
Ben Dooks
4f507d19ca [ARM] S3C: Add header for initial i2c device core setup.
Add a header to define setup functions for the i2c
devices.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:47:03 +00:00
Ben Dooks
096941ed1e [ARM] SMDK6410: Add I2C device board information
Add the I2C devices on the SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:46:19 +00:00
Ben Dooks
d7ea3743ca [ARM] SMDK6410: Add second I2C channel.
Add the second I2C channel on the SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:46:05 +00:00
Ben Dooks
f9e2f3453c [ARM] S3C64XX: Setup functions for i2c bus 1.
Add common gpio setup for i2c bus 1 on all current
S3C64XX architectures.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:43:29 +00:00
Ben Dooks
d85fa24c51 [ARM] SMDK6410: Add i2c device
Add i2c bus 0 to the configuration

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:42:55 +00:00
Ben Dooks
55132b8b46 [ARM] S3C64XX: Add i2c device setup for I2C device 0
Add the necessary device initialisation information
for I2C device 0.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:42:21 +00:00
Ben Dooks
26da1bfc56 [ARM] S3C64XX: GPIO definitions for BANKS N,O,P,Q
GPIO register and configuration definitions for GPIO
banks N, O, P and Q.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:41:50 +00:00
Ben Dooks
4162d7e363 [ARM] S3C64XX: GPIO definitions for BANKS G,H,I,J
GPIO register and configuration definitions for GPIO
banks G, H, I and J.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:41:17 +00:00
Ben Dooks
b9f2d172f2 [ARM] S3C64XX: GPIO definitions for BANKS D,E,F
GPIO register and configuration definitions for GPIO
banks D, E and F.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:41:10 +00:00
Ben Dooks
995deb638d [ARM] S3C64XX: GPIO definitions for BANKS A,B,C
GPIO register and configuration definitions for GPIO
banks A, B and C.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:40:56 +00:00
Ben Dooks
3e1b776c2b [ARM] S3C: Make i2c device definition common to plat-s3c
Make the device i2c0 common to plat-s3c and move the
definitions from arch/arm/plat-s3c24xx/devs.c

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:40:26 +00:00
Ben Dooks
a2205cd2cb [ARM] S3C: Add SDHCI (HSMMC) channel 1 device definition
Add device definition and support code for the Samsung
HSMMC channel 1 device.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:40:07 +00:00
Ben Dooks
5cc7fd88fc [ARM] S3C6410: Add helper for setting SDHCI device information
Add the necessary helper functions for setting up the SDHCI
device information.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:39:34 +00:00
Ben Dooks
ea522c7a54 [ARM] S3C: Add Samsung SDHCI register definitions
Add the specific register definitions for the Samsung SDHCI
(HSMMC) block for the S3C2443 and S3C64XX series.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:39:24 +00:00
Ben Dooks
3627379fc6 [ARM] S3C6XX: Add enable for clk_48
Add apropriate enable call for clk_48m.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:36:29 +00:00
Ben Dooks
1451325ced [ARM] S3C6400: Register clk_fout_epll
The clk_fout_epll clock wasn't registered as part of the initial clock
work, which can cause problems if it is used by one of the hardware
blocks.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:36:22 +00:00
Ben Dooks
21b23664b9 [ARM] S3C: Add new GPIO configuration calls
Add new GPIO configuration calls that mesh with the
new gpiolib support.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:34:15 +00:00
Ben Dooks
89d043c3db [ARM] S3C64XX: GPIO library support
Add gpiolib registration for the GPIOs available on the
S3C64XX platform

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:33:59 +00:00
Ben Dooks
8a53bdb907 [ARM] S3C: Add GPIO chip tracking
The gpiolib driver keeps its chip array to itself
and having a separate array for s3c-only gpios stops
any non-s3c gpio being used in one of the s3c specific
configuration calls.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:33:42 +00:00
Ben Dooks
7db6c82a37 [ARM] S3C: Move common GPIO code from plat-s3c24xx
Move the common parts of the GPIO code into plat-s3c
for use with both the s3c24xx and s3c64xx systems.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:33:20 +00:00
Ben Dooks
efd3a8eb15 [ARM] S3C64XX: Add gpio bank numbering
Define the gpio numbers for the S3C64XX GPIO banks
available on the S3C6400 and S3C6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:33:08 +00:00
Ben Dooks
39057f237d [ARM] SMDK6410: Add HSMMC0 device
Add HSMMC0 device to SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:32:52 +00:00
Ben Dooks
5b323c7beb [ARM] S3C: Move HSMMC device definition to plat-s3ec
Move the definition for the hsmmc device to plat-s3c
to be shared between the s3c24xx and s3c64xx platforms.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:32:34 +00:00
Ben Dooks
8cdf47cb4b [ARM] S3C64XX: Add external interrupt group definitions
Add definitions for the external interrupt groups which accompany
the original IRQ_EINT from the s3c24xx series.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:19:49 +00:00
Ben Dooks
f945ee13cf [ARM] S3C64XX: Fix warnings from map_io initilaisers
Discard the 'void *' from the pointers used for the
virtual addresses when setting up the .virtual fields
of the io map to avoid implicit cast warnings

Signed-off-by: Ben Dooks <ben-linux@fluff.org>

 Index: linux.git/arch/arm/plat-s3c64xx/cpu.c
===================================================================
2008-12-15 23:19:35 +00:00
Ben Dooks
39669f594e [ARM] S3C64XX: Reduce some output from INFO to DEBUG
Some of the startup output can be reduced to
KERN_DEBUG from KERN_INFO as it is only really
useful when trying to debug kernel initialisation
problems.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:18:21 +00:00
Ben Dooks
92117a1fd3 [ARM] S3C64XX: Add s3c6400_defconfig
Add a basic defconfig for s3c6400 series machines.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:17:55 +00:00
Ben Dooks
5718df9dd0 [ARM] SMDK6410: Initial machine support
Initial machine support for the Samsung SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:16:07 +00:00
Ben Dooks
80789e7915 [ARM] S3C64XX: Add IRQ_EINT support
Add the necessary code to support IRQ_EINT(x) on
the S3C64XX series of CPUs.

Note, since there is no GPIO configuration support
in the kernel, the irq set_type method does not
configure the relevant pin to interrupt.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:15:46 +00:00
Ben Dooks
94df868b88 [ARM] S3C64XX: Map GPIO block
Add mapping for GPIO block in the static mappings.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:03:41 +00:00
Ben Dooks
a801cd6192 [ARM] VIC: Update asm/hardware/vic.h with PL192 information
The original arch/arm/include/asm/hardware/vic.h was
written for the PL190 ARM VIC implementation, and as
such does not have any information about the PL192
version.

Add details about the PL192 and PL190 specific registers
and any changes between the two units.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:03:10 +00:00
Ben Dooks
3e694d4bc6 [ARM] S3C64XX: Demux UART interrupts
Add demux handling for the UART interrupts
generated by the VIC into their seperate IRQs
that the serial driver can register.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 23:02:58 +00:00
Russell King
7e1548a597 Merge branch 'omap3-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 into devel 2008-12-15 22:13:26 +00:00
Ben Dooks
b690ace50b [ARM] S3C6400: serial support for S3C6400 and S3C6410 SoCs
Add support to the Samsung serial driver for the S3C6400
and S3C6410 serial ports.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:58:11 +00:00
Ben Dooks
cf18acf0e0 [ARM] S3C64XX: Clock support for S3C6400/S3C6410
Add the PLL clock initialisation and clock registration
and include the clocks sourced via CLKDIVx for most of
the on-chip peripherals.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:54:36 +00:00
Ben Dooks
c652d2ddb9 [ARM] S3C: Add TICK_MAX for timer code
Add TICK_MAX definition for the timer code
as the S3C64XX series have 32bit capable
PWM timers.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:54:16 +00:00
Ben Dooks
4b31d8b225 [ARM] S3C64XX: Add initial clock framework
Add the initial clocks definitions for the s3c6400
and s3c6410. Move the epll and ext clock from the
s3c2443 support into the common code.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:53:58 +00:00
Ben Dooks
952b564b4d [ARM] S3C64XX: Add PLL definitions
Add definitions for the s3c6400 epll and main pll
as well as functions to decode the rate. Add

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:53:38 +00:00
Ben Dooks
aa64ea3f78 [ARM] S3C64XX: Common init code for S3C6400 and S3C6410
Add the common initialisation code for both the
S3C6400 and S3C6410, the UART registration.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:53:14 +00:00
Ben Dooks
f982dc5321 [ARM] S3C64XX: Map timer memory and interrupts
Add the physical to virtual memory mapping and the
necessary interrupt demuxing for the PWM timer blocks.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:52:51 +00:00
Ben Dooks
e550ae7416 [ARM] S3C: Fix PWM build on S3C6400
The pwm-clock.c needs <mach/map.h> which is included
via other means on S3C24XX systems, so ensure it is
explicitly included.

Remove the includes of regs-clock.h and regs-gpio.h as
these are not needed by the build.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:52:11 +00:00
Ben Dooks
59ff6f2c0e [ARM] S3C6400: Add <mach/tick.h>
Add the necessary support for the timer on the
S3C6400 and S3C6410 by adding <mach/tick.h>

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:51:52 +00:00
Ben Dooks
d9b79fb568 [ARM] S3C64XX: Add VIC0 and VIC1 sourced interripts
Add and initialise the two VIC (PL192) found on
the S3C64XX series CPUs.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:51:22 +00:00
Ben Dooks
d626aeedc9 [ARM] S3C6410: Initial CPU support code
Initial support for the Samsung S3C6410 SoC.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:51:04 +00:00
Ben Dooks
beda30f6a9 [ARM] S3C64XX: Basic CPU detection and map initialisation
Initialise the basic physical to virtual mappings and
then detect the CPU that the system is being run on so
that the cpu code code can call the correct initialisation
code.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:50:31 +00:00
Ben Dooks
c142f173cd [ARM] S3C64XX: Add IRQ definitions for VIC0 and VIC1
Add IRQ definitions for the VIC0 and VIC1 interrupts
on the S3C6400 and S3C6410 SoCs.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:50:06 +00:00
Ben Dooks
0241cbb9d6 [ARM] S3C64XX: Add UARTdevice definitions
Add resources and information for the UART deviecs
on the S3C64XX CPUs.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:49:46 +00:00
Ben Dooks
e1a2bd1d2f [ARM] S3C64XX: Add system boot-time support
Add the necessary defines for <mach/uncompress.h>
to function and build an working header code block.

Signed-off-by: Ben Doioks <ben-linux@fluff.org>
2008-12-15 21:49:32 +00:00
Ben Dooks
0660fed465 [ARM] S3C64XX: Add <plat/regs-clock.h>
Initial clock register defines.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:49:11 +00:00
Ben Dooks
dcb0902b47 [ARM] S3C64XX: Add <mach/debug-macro.S>
Add the necessary support for the kernel low-level
debug macros via <mach/debug-macro.S>

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:47:31 +00:00
Ben Dooks
a520979745 [ARM] S3C64XX: Add <mach/entry-macro.S>
Add the include for the interrupt entry macros needed
to be included by <mach/entry-macro.S> for the kernel
interrupt handler.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:47:29 +00:00
Ben Dooks
d521f87e9c [ARM] S3C64XX: Initial arch header files
Add the initial header files for the S3C64XX support to satisfy the
minimal requirements to build a kernel. Some definitions will therefore
be placeholders or empty functions that will ensure that the system can
build and have base functionality. These will be filled in at a later
date.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:47:27 +00:00
Ben Dooks
a08ab63761 [ARM] S3C64XX: Initial arch directory
Add the initial PLAT_S3C64XX support files
and directory structure.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:47:24 +00:00
Ben Dooks
9bc1aaeac0 [ARM] S3C24XX: Split timer pending code out
Split the timer pending code out to a seperate per-machine
header so that when compiling for mach-s3c2410 or mach-s3c24a0
we can use the right timer code without having to #ifdef the
timer driver.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:41 +00:00
Ben Dooks
bcae8aeb32 [ARM] S3C24A0: Initial architecture support files
Initial architecture support for the S3C24A0 ARCH_S3C24A0.

We don't yet add an kconfig entry in the main arch/arm/Kconfig
file as the series is not complete, so that is left until enough
support is in to be useful.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:39 +00:00
Ben Dooks
ce46a9c497 [ARM] S3C24XX: Split map.h into plat-s3c24xx and mach-s3c2410
Split the map.h definitions into common S3C24XX code by
adding arch/arm/plat-s3c24xx/include/plat/map.h and
altering the machine specific header for the S3C24A0.

As we add a new <plat/map.h> we move the original one
in arch/arm/plat-s3c include directory to be called
map-base.h to distinguish the two files.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:38 +00:00
Sandeep Patil
1d4bab0824 [ARM] S3C24A0: Serial port definitions and driver support.
Add serial support for S3C24A0, based on current S3C2410
UART driver. It adds necessary new defines in regs-serial.h
for S3C24A0 and the code to support this device in
drivers/serial/s3c24a0.c

Signed-off-by: Sandeep Patil <sandeep.patil@azingo.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:36 +00:00
Ben Dooks
f0c9eb4ec2 [ARM] S3C24A0: Debug macro definitions
Add the necessary debug macros for the S3C24A0 to enable
kernel debugging, and fix a bug with selecting the wrong
default debug implementation from the base include.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:33 +00:00
Sandeep Patil
f1cb9eba5b [ARM] S3C24A0: Correct S3C2410_PA_GPIO in S3C24XX_VA_GPIO
The definition of S3C24XX_VA_GPIO used S3C2410_PA_GPIO
where it should have read S3C24XX_PA_GPIO.

Signed-off-by: Sandeep Patil <sandeep.patil@azingo.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:31 +00:00
Sandeep Patil
ddbf5654b4 [ARM] S3C24A0: arch/arm/mach-s3c24a0/include/mach header files
Add initial arch/arm/mach-s3c24a0/include/mach header
files for supporting Samsung S3C24A0 SoC.

Signed-off-by: Sandeep Patil <sandeep.patil@azingo.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:28 +00:00
Ben Dooks
7d2dbcf9fa [ARM] S3C: Fix scaler1 clock rate information
The pwm-scaler0 and pwm-scaler1 clocks have their
.id field set to -1 as they are not referenced to
any specific device. However, parts of the pwm-clock
code used the .id field to identify which scaler
clock was being used.

Fix the problem by comparing against the pointer to
the clock to identify the scalers.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:25 +00:00
Ben Dooks
82fd8e681d [ARM] S3C: Add set_rate/round_rate methods for pwm-scaler clock
Add the set_rate and round_rate methods for the pwm-scaler
clock for use with the time code.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:24 +00:00
Ben Dooks
f2edc7565a [ARM] S3C24XX: Reduce code lineage of gpiolib.c
All the s3c24xx gpiolib chips share the same get/set
calls and all but one bank shares the same calls for
.direction_input and .direction_output methods.

Change the initialisation process to use an new call
to register the chips that fills in any blank calls
with the default values to avoid having to fill them
in the structure initialisers.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:24 +00:00
Ben Dooks
cec444b790 [ARM] S3C: BUG_ON() if clock has already been registered
Add a simple check when registering a clock on whether
the clock has already been added to the list.

Any attempt to re-register a clock will cause the
clock list to be come looped and thus produces silent
failures when looking up clocks.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:22 +00:00
Ben Dooks
93b458858f [ARM] S3C: Move pwm-clock.c to arch/arm/plat-s3c
Move pwm-clock.c to arch/arm/plat-s3c
to be shared with the S3C64XX implementations.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:20 +00:00
Ben Dooks
adbefaa5fd [ARM] S3C: Move core clock support to plat-s3c
Move the core clock registration and definitions
in arch/arm/plat-s3c24xx/clock.c to arch/arm/plat-s3c
to be shared with the S3C64XX implementations.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:18 +00:00
Ben Dooks
b915a12511 [ARM] S3C: Move time.c to arch/arm/plat-s3c
Move time.c to arch/arm/plat-s3c
to be shared with the S3C64XX implementations.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:15 +00:00
Ben Dooks
6af0e929e9 [ARM] S3C: Move S3C2410_EXTINT to common regs-irqtype.h header
Add a common include file (regs-irqtype.h) for the IRQ
trigger control register values S3C2410_EXTINT*.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:13 +00:00
Ben Dooks
a503059c14 [ARM] S3C24XX: Move headers from plat-s3c24xx to plat-s3c
Move clock.h, cpu.h and devs.h to plat-s3c for use
with the s3c64xx support.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:10 +00:00
Ben Dooks
e425382ed9 [ARM] S3C24XX: Update clock data on resume
Update the clock settings on resume for suspend/resume
support so that if the boot loader changes anything or
the system's PLL is reset then we return with the correct
settings.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:08 +00:00
Ben Dooks
c3391e36d6 [ARM] S3C24XX: Change clock locking to use spinlocks.
We cannot sleep if we have cpufreq pm enabled during some
of the clock operations, so change to use a spinlock to
protect the clock system.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:07 +00:00
Ben Dooks
e24b864ab3 [ARM] S3C24XX: Split pll code out of regs-clock.h
Move the PLL calculation code into it's own header
file for re-use with the other plat-s3c24xx based
systems such as the S3C24A0.

Note, we change the name of s3c2410_get_pll to the
more generically named s3c24xx_get_pll as well as
the related defintions.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:02 +00:00
Ben Dooks
93bc6b6371 [ARM] S3C24XX: Split DCLK/CLKOUT definitions out of clock.c
Only certain boards need these clocks, and they are not
available on some CPUs (such as the S3C24A0) so remove
them from arch/arm/plat-s3c24xx/clock.c and into their
own file with appropriate Kconfig entries.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:46:00 +00:00
Ben Dooks
74b265d4e0 [ARM] S3C24XX: Move initialisation code to arch/arm/plat-s3c
We need to add plat-s3c to the build to get the headers
that will go in here once moved from include/asm-arm so
we may as well put some useful common s3c code in here
to stop the errors generated form having nothing built.

The cpu setup is now passed the cpu idcode and the table
of supported cpus to s3c_init_cpu() to abstract the
cpu identification out of the initial io setup.

As well as moving the cpu initialisation code, we move the
map of the board specific items up to the calling code as
none of the map_io() functions actually do anything other
than pass this to iotable_init().

This patch does not rename any of the init functions that
will be common to s3c24xx and any other s3c architectures
as this can be done at a later date as it will touch all
the board support files which use functions such as
s3c24xx_init_clocks() and s3c24xx_init_uarts().

Note, the header arch/arm/plat-s3c24xx/include/plat/cpu.h
still has functions that are used by both the cpu and
board initialisation functions. This means that each board
has definitions specific to the cpu support included and
the vice-versa.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:45:57 +00:00
Ben Dooks
2cd493fc10 [ARM] S3C24XX: Add default <mach/io.h> header
Add a default header for <mach/io.h> for systems
such as the S3C24A0 which do not need any of the
complex code that the S3C2410 uses.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:45:55 +00:00
Ben Dooks
112f4a708d [ARM] S3C24XX: Move vmalloc.h to plat-s3c
vmalloc.h is common across all the current s3c platforms,
so move it to arch/arm/plat-s3c/include/mach to be used
for all the targets.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:45:52 +00:00
Ben Dooks
95f42b3911 [ARM] S3C: Make <mach/timex.h> common
Move <mach/timex.h> to arch/arm/plat-s3c/include/mach/timex.h
so it can be the default for all S3C based architectures.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:45:50 +00:00
Ben Dooks
1b3ba68884 [ARM] S3C2410: Move base clock code to plat-s3c24xx
Move the S3C2410 base clock list to arch/arm/plat-s3c24xx
as this code is common to the S3C2410, S3C2440 and S3C2442
cpus.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:45:47 +00:00
Ben Dooks
7f565ecc33 [ARM] S3C: Add <plat/cpu-freq.h> for initial cpufreq definitions
This is the header file that defines the basic cpu frequency
scalling support for the Samsung S3C series of SoC.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:45:45 +00:00
Ben Dooks
b2a6cf3b1e [ARM] S3C24XX: Default SPI pin configuration for SPI
Add a set of default pin configuration routines for
setting up the SPI gpio configuration when using the
hardware SPI driver.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-15 21:45:42 +00:00
Russell King
1f7f569c0a Merge branch 'for_rmk' of git://git.mnementh.co.uk/linux-2.6-im into devel 2008-12-15 10:36:25 +00:00
Russell King
67306da610 [ARM] Ensure linux/hardirqs.h is included where required
... for the removal of it from asm-generic/local.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-15 10:34:48 +00:00
Ian Molton
b1ae1b7b27 [ARM] pxa: Add multi-io support for e-series
This patchset provides support for the TMIO based IO controller used in the
    Toshiba e-series PDAs.

    Signed-off-by: Ian Molton <spyro@f2s.com>
    Acked-by: Samuel Ortiz <sameo@openedhand.com>
    Acked-by: Eric Miao <eric.y.miao@gmail.com>
2008-12-15 03:29:34 +00:00
Russell King
a02f45cfca [ARM] move asm/xip.h's mach/hardware.h include to mach/xip.h
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-14 13:22:51 +00:00
Julia Lawall
6ce1b871db [ARM] eliminate NULL test and memset after alloc_bootmem
As noted by Akinobu Mita in patch b1fceac2b9,
alloc_bootmem and related functions never return NULL and always return a
zeroed region of memory.  Thus a NULL test or memset after calls to these
functions is unnecessary.

This was fixed using the following semantic patch.
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
expression E;
statement S;
@@

E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\|alloc_bootmem_node\|alloc_bootmem_low_pages_node\|alloc_bootmem_pages_node\)(...)
... when != E
(
- BUG_ON (E == NULL);
|
- if (E == NULL) S
)

@@
expression E,E1;
@@

E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\|alloc_bootmem_node\|alloc_bootmem_low_pages_node\|alloc_bootmem_pages_node\)(...)
... when != E
- memset(E,0,E1);
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-14 12:05:03 +00:00
Sascha Hauer
d517cab1c7 [ARM] pcm037: add 1wire support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-14 12:05:02 +00:00
Sascha Hauer
d40a09920b [ARM] MX2 pcm038: add 1-wire master support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-14 12:05:02 +00:00
Sascha Hauer
a840592933 [ARM] MX31: add w1 platform_device and resources
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-14 12:05:02 +00:00
Sascha Hauer
3d89baa73a [ARM] MX2: Add W1 device/resources
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-14 12:05:01 +00:00
Randy Dunlap
3909845e26 [ARM] fix kernel-doc syntax
Fix kernel-doc notation to use correct syntax.  Even though this should be
moved to where the function is actually implemented...

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-14 12:02:39 +00:00
Daniel Silverstone
7180d868e3 [ARM] DSM320: Update KS8695 defconfig to include DSM320
Update the KS8695 defconfig to bring it up to modern config
standards and include the DSM320 and appropriate drivers for the
DSM320 (E.g. prism54).

Signed-off-by: Daniel Silverstone <dsilvers@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-14 11:34:48 +00:00
Daniel Silverstone
6174dee514 [ARM] DSM320: Add support for the DSM320
Add support for the D-Link DSM-320 Wireless Media Player which is
based on the Micrel KS8695 SoC.

Signed-off-by: Daniel Silverstone <dsilvers@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-14 11:34:48 +00:00
Ben Dooks
7ef71320eb [ARM] KS8695: Add GPIO to IRQ mapping function
Use the GPIOlib .to_irq call to map KS8695 GPIOs
to the relevant IRQ line.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-14 11:34:47 +00:00
Daniel Silverstone
72880ad866 [ARM] KS8695: Fixup the KS8695 GPIO to be GPIOLIB
This patch is as small a change as possible to the KS8695 GPIO layer
to use GPIOLIB to allow the generic GPIO expanders and the like to
be compiled.

As a side-effect, we also remove __init_or_module from several
functions which could be called by drivers such as i2c-gpio which
could plausibly be compiled into a non-modular kernel.

Signed-off-by: Daniel Silverstone <dsilvers@simtec.co.uk>
Signed-off-by: Vincent Sanders <vince@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-14 11:34:47 +00:00
Daniel Silverstone
fbd627100b [ARM] KS8695: Fix up device registration.
The KS8695 device.c provides registration functionality for the
KS8695's various devices such as watchdog timers and ethernet
devices. Rather than predicating those on the config options for the
drivers, always register the platform devices so that a later built
module can hook on. Also, the ethernet used to register virtual
addresses in the platform data. This is wrong and so this patch
changes them to physical addresses and also passes in the
appropriate physical region for the PHY or Switch as appropriate.

Signed-off-by: Daniel Silverstone <dsilvers@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-14 11:34:46 +00:00
Julia Lawall
442a902262 [ARM] arch/arm/common/sa1111.c: Correct error handling code
If it is reasonable to apply PTR_ERR to the result of calling clk_get, then
that result should first be tested with IS_ERR, not with !.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
expression E,E1;
@@

if (
-   E == NULL
+   IS_ERR(E)
   ) { <+... when != E = E1
        PTR_ERR(E)
       ...+> }
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-14 11:03:46 +00:00
Rusty Russell
320ab2b0b1 cpumask: convert struct clock_event_device to cpumask pointers.
Impact: change calling convention of existing clock_event APIs

struct clock_event_timer's cpumask field gets changed to take pointer,
as does the ->broadcast function.

Another single-patch change.  For safety, we BUG_ON() in
clockevents_register_device() if it's not set.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Ingo Molnar <mingo@elte.hu>
2008-12-13 21:20:26 +10:30
Rusty Russell
0de26520c7 cpumask: make irq_set_affinity() take a const struct cpumask
Impact: change existing irq_chip API

Not much point with gentle transition here: the struct irq_chip's
setaffinity method signature needs to change.

Fortunately, not widely used code, but hits a few architectures.

Note: In irq_select_affinity() I save a temporary in by mangling
irq_desc[irq].affinity directly.  Ingo, does this break anything?

(Folded in fix from KOSAKI Motohiro)

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Reviewed-by: Grant Grundler <grundler@parisc-linux.org>
Acked-by: Ingo Molnar <mingo@redhat.com>
Cc: ralf@linux-mips.org
Cc: grundler@parisc-linux.org
Cc: jeremy@xensource.com
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
2008-12-13 21:20:26 +10:30
Rusty Russell
98a79d6a50 cpumask: centralize cpu_online_map and cpu_possible_map
Impact: cleanup

Each SMP arch defines these themselves.  Move them to a central
location.

Twists:
1) Some archs (m32, parisc, s390) set possible_map to all 1, so we add a
   CONFIG_INIT_ALL_POSSIBLE for this rather than break them.

2) mips and sparc32 '#define cpu_possible_map phys_cpu_present_map'.
   Those archs simply have phys_cpu_present_map replaced everywhere.

3) Alpha defined cpu_possible_map to cpu_present_map; this is tricky
   so I just manipulate them both in sync.

4) IA64, cris and m32r have gratuitous 'extern cpumask_t cpu_possible_map'
   declarations.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Reviewed-by: Grant Grundler <grundler@parisc-linux.org>
Tested-by: Tony Luck <tony.luck@intel.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Mike Travis <travis@sgi.com>
Cc: ink@jurassic.park.msu.ru
Cc: rmk@arm.linux.org.uk
Cc: starvik@axis.com
Cc: tony.luck@intel.com
Cc: takata@linux-m32r.org
Cc: ralf@linux-mips.org
Cc: grundler@parisc-linux.org
Cc: paulus@samba.org
Cc: schwidefsky@de.ibm.com
Cc: lethal@linux-sh.org
Cc: wli@holomorphy.com
Cc: davem@davemloft.net
Cc: jdike@addtoit.com
Cc: mingo@redhat.com
2008-12-13 21:19:41 +10:30
Russell King
72aaf09fda Merge git://git.marvell.com/orion into devel 2008-12-13 09:12:51 +00:00
Russell King
67fbc23123 [ARM] fix xm_x2xx_defconfig build errors
drivers/built-in.o: In function `pci_set_consistent_dma_mask':
hid-quirks.c:(.text+0x2664): multiple definition of `pci_set_consistent_dma_mask'
drivers/built-in.o: In function `pci_set_dma_mask':
hid-quirks.c:(.text+0x42c4): multiple definition of `pci_set_dma_mask'

because drivers/pci/pci.c was not seeing the definition disabling these
functions.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-13 09:12:09 +00:00
Hartley Sweeten
3e7a728117 [ARM] 5343/1: ep93xx: include linux/i2c.h
Include <linux/i2c.h> in all ep93xx platforms.

Patch "5311/1: add core support for built in i2c bus" will cause build errors due to the following in
arch/arm/mach-ep93xx/include/mach/platform.h:

+void ep93xx_register_i2c(struct i2c_board_info *devices, int num);

The i2c.h header needs to be included in order to define struct i2c_board_info.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-13 09:12:09 +00:00
Hartley Sweeten
e48f3fa373 [ARM] 5342/1: ep93xx: platform init cleanup
Use EP93XX_*_PHYS_BASE and SZ_* defines in ep93xx platform inits.

The following patch changes the flash memory hard-coded resource
addresses and MACHINE_START boot_params to EP93XX_*_PHYS_BASE and
SZ_* defines to improve readability. Also some minor whitespace
cleanup resulting from previous patches.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-13 09:12:08 +00:00
Jaya Kumar
854feaede5 [ARM] 5337/1: gumstix: move am200 specific gpio pins into am200epd.
The gpio setup for AM200 specific GPIO pins should be done in the AM200
code rather than in generic gumstix code.

Signed-off-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-13 09:12:08 +00:00
Russell King
1124d6d21f [ARM] dma: correct dma_supported() implementation
dma_supported() is supposed to indicate whether the system can support
the DMA mask it was passed, which depends on the maximal address which
can be returned for DMA allocations.  If the mask is smaller than that,
we are unable to guarantee that the driver can reliably obtain suitable
memory.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-13 09:12:07 +00:00
Russell King
70d13e083c [ARM] netwinder: clean up GPIO naming
Netwinder was using gpio_xxx names which could clash with the GPIO
layer.  Add a 'nw_' prefix to ensure that these remain separate.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-13 09:12:07 +00:00
Uwe Kleine-Koenig
7971db5a4b Merge branch 'for-rmk-misc' into for-rmk 2008-12-12 11:18:54 +01:00
Uwe Kleine-König
c4edfced66 at91: warn if irqs are enabled in set_next_event
Thomas claims that irqs are disabled when set_next_event is called.  But
David and Remy claim they saw irqs being enabled here.  As both sides
don't seem to have time to investigate here, start with a warning that
might trigger if the problem still exists.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-By: David Brownell <dbrownell@users.sourceforge.net>
Cc: Bill Gatliff <bgat@billgatliff.com>
Acked-By: Remy Bohmer <linux@bohmer.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
2008-12-12 11:17:08 +01:00
Uwe Kleine-König
72cca72a6c remove a superfluous kconfig type definition
It's either

        bool
        default y

or

        def_bool y

but not a mixture of both.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2008-12-12 11:17:07 +01:00
Uwe Kleine-König
94fa873ff8 Fix configure warnings in defconfigs for netX and Picotux 200
Since May 8 2007 the symbols RTC_INTF_PROC, RTC_INTF_SYSFS and
RTC_INTF_DEV are not tristate anymore.  This fixes the following
warnings:

arch/arm/configs/picotux200_defconfig:1072:warning: symbol value 'm' invalid for RTC_INTF_SYSFS
arch/arm/configs/picotux200_defconfig:1073:warning: symbol value 'm' invalid for RTC_INTF_PROC
arch/arm/configs/picotux200_defconfig:1074:warning: symbol value 'm' invalid for RTC_INTF_DEV

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Robert Schwebel <r.schwebel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Simon Richter <Simon.Richter@kleinhenz.com>
Cc: Andrew Victor <linux@maxim.org.za>
2008-12-12 11:17:06 +01:00
Uwe Kleine-König
6ed70a792a small doc fix: ftrace_dyn_arch_init is called by ftrace_init
... not kstop_machine.  Add a note that irqs are disabled.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2008-12-12 11:15:45 +01:00
Nicolas Pitre
58c2467355 [ARM] Kirkwood: update defconfig
Signed-off-by: Nicolas Pitre <nico@marvell.com>
2008-12-11 16:39:09 -05:00
Nicolas Pitre
b71b9effb5 [ARM] Feroceon: pass proper -mtune argument to gcc
Compilation for the Feroceon core should use -mtune=marvell-f.  This is
available in Code Sourcery's 2008Q3 release at the moment. Otherwise
fall back to -mtune-=xscale.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
2008-12-11 16:39:09 -05:00
Ronen Shitrit
37787e449b [ARM] Kirkwood: properly handle the WAN port on newer RD88F6281 boards
On newer versions of the RD88F6281 board, the WAN port is connected to
its own ethernet port on the CPU, via a separate PHY, whereas on older
versions of the board, it is connected to one of the PHYs in the
ethernet switch.  In the RD8F6281 setup code, detect which version of
the board we are running on, and instantiate the ethernet ports and
switch driver accordingly.

Signed-off-by: Ronen Shitrit <rshitrit@marvell.com>
Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
2008-12-11 16:39:08 -05:00
Ronen Shitrit
d15fb9efe9 [ARM] Kirkwood: allow instantiating the second ethernet port
The 88f6192 and 88f6281 Kirkwood SoCs support two ethernet ports.
Add the platform glue that will allow board support files to
instantiate the second ethernet port.

Signed-off-by: Ronen Shitrit <rshitrit@marvell.com>
Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
2008-12-11 16:39:08 -05:00
Matt Palmer
f93e4159b1 [ARM] DNS323: Initialise 88F5182 correctly
The 88F5182 found in the DNS-323 rev B1 (and some other devices, such
as the CH3SNAS) require different initialisation of the SATA
controller and MPP registers.

Tested on a DNS-323 rev B1.

Signed-off-by: Matt Palmer <mpalmer@hezmatt.org>
2008-12-11 16:38:56 -05:00
Matt Palmer
a93f44c175 [ARM] DNS323: Read MAC address from flash
Based on similar code from the tsx09 series of machines, just rips the MAC
address out of flash and stuffs it into the NIC. Tested on a DNS323 rev B1.
It's possible (though unlikely) that an A1 will have the MAC in a different
location in flash.

Signed-off-by: Matt Palmer <mpalmer@hezmatt.org>
2008-12-11 16:36:59 -05:00
Russell King
5369bea7d7 [ARM] dma: Use sensible DMA parameters for Acorn drivers
The hardware supports transfers up to a page boundary per buffer.
Currently, we work around that in the DMA code by splitting each
buffer up as we run through the scatterlist.  Avoid this by telling
the block layers about the hardware restriction.

Eventually, this will allow us to phase out the splitting code,
but not until the old IDE layer allows us to control the value it
gives to blk_queue_segment_boundary().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-11 16:37:06 +00:00
Russell King
9e28d7e8c5 [ARM] dma: convert IOMD DMA to use sg_next()
... rather than incrementing the sg pointer.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-11 14:52:43 +00:00
Russell King
d667522fdf [ARM] dma: ensure that the single entry sg is properly initialized
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-11 14:52:42 +00:00
Russell King
8c56afcbea [ARM] dma: constify dma controller name and dma ops
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-11 14:52:42 +00:00
Russell King
ad9dd94c38 [ARM] dma: move RiscPC specific DMA data out of dma_struct
Separate the RiscPC specific (IOMD and floppy FIQ) data out of the core
DMA structure by making the IOMD and floppy DMA supersets.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-11 14:35:57 +00:00
Russell King
2f757f2ab7 [ARM] dma: rejig DMA initialization
Rather than having the central DMA multiplexer call the architecture
specific DMA initialization function, have each architecture DMA
initialization function use core_initcall(), and register each DMA
channel separately with the multiplexer.

This removes the array of dma structures in the central multiplexer,
replacing it with an array of pointers instead; this is more flexible
since it allows the drivers to wrap the DMA structure (eventually
allowing us to transition non-ISA DMA drivers away.)

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-11 14:32:43 +00:00
Nicolas Pitre
674a0a6939 [ARM] 5341/2: there is no copy_page on nommu ARM
... as it is defined with memcpy, therefore no copy_page symbol to
export.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-11 09:39:18 +00:00
Kevin Hilman
917fa280e5 omap mmc: force MMC module reset on boot
The bootloader may leave the MMC in a state which prevents hitting
retention.  Even when MMC is not compiled in, each MMC module needs to
be forced into reset.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
2008-12-10 17:37:17 -08:00
Tony Lindgren
90c62bf08f omap mmc: Add low-level initialization for hsmmc controller
Add low-level initialization for hsmmc controller. Merged into
this patch patch are various improvments and board support by
Grazvydas Ignotas and David Brownell.

Also change wire4 to be wires, as some newer controllers support
8 data lines.

Cc: Pierre Ossman <drzeus-mmc@drzeus.cx>
Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:37:17 -08:00
Tony Lindgren
d88746652b omap mmc: Add better MMC low-level init
This will simplify the MMC low-level init, and make it more
flexible to add support for a newer MMC controller in the
following patches.

The patch rearranges platform data and gets rid of slot vs
controller confusion in the old data structures. Also fix
device id numbering in the clock code.

Some code snippets are based on an earlier patch by
Russell King <linux@arm.linux.org.uk>.

Cc: Pierre Ossman <drzeus-mmc@drzeus.cx>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:37:16 -08:00
Tony Lindgren
652bcd8f72 omap mmc: Remove broken MMC init code
Most of the omap1 MMC boards got broken by an earlier patch
138ab9f832. If you look closely,
the MMC init funtions are pretty much just stubs.

Remove broken init code to make room for cleaner MMC init code.

Cc: Pierre Ossman <drzeus-mmc@drzeus.cx>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:37:16 -08:00
Arun KS
2619bc3274 ARM: OMAP3: Pin multiplexing updates for 24xx and 34xx
This patch adds some new pin multiplexing options
for McBSP and McSPI from Arun KS. Also add two more
GPIOs from David Brownell.

Also mark omap24xx_cfg_reg() static.

Signed-off-by: Arun KS <arunks@mistralsolutions.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:54 -08:00
Grazvydas Ignotas
da177247e8 ARM: OMAP3: Add basic support for Pandora handheld console
This patch adds support for basic features: uarts, i2c,
and rtc. Also includes defconfig.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:54 -08:00
Santosh Shilimkar
a50f18c700 ARM: OMAP3: DMA: Fix for sDMA Errata 1.113
SDMA channel is not disabled after transaction error. So explicitly disable it.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked By : Nishant kamat <nskamat@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:53 -08:00
Stanley.Miao
b1c056d20c ARM: OMAP3: LDP: Add Ethernet device support to make ldp boot succeess
Add Ethernet device support in board-ldp.c to make ldp can boot and mount
nfs successfully.

Signed-off-by: Stanley.Miao <stanley.miao@windriver.com>
2008-12-10 17:36:53 -08:00
Jarkko Nikula
ad636ad84e ARM: OMAP3: Add OMAP34xx pin multiplexing into I2C bus registration helper
- Simplify function omap_i2c_mux_pins
- Add OMAP34xx pin multiplexing for busses 1 - 3

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:52 -08:00
Tony Lindgren
6ccc4c0ded ARM: OMAP3: Warn about spurious interrupts
In the case of spurious interrupt, the handler for previous interrupt
handler needs to flush posted writes with a read back of the interrupt
ack register. Warn about handlers that need to flush posted writes.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:52 -08:00
Paul Walmsley
64ce2907b1 ARM: OMAP2: skip unnecessary TLDR write during non-autoreload for gptimer
The GPTIMER TLDR register does not need to be written if the GPTIMER
is not in autoreload mode.  This is the usual case for dynamic tick-enabled
kernels.

Simulation data indicate that skipping the read that occurs as part of
the write should save at least 300-320 ns for each GPTIMER1 timer
reprogram.  (This assumes L4-Wakeup is at 19MHz and GPTIMER write
posting is enabled.)  Skipping the write itself probably won't have
much impact since it should be posted on the OCP interconnect.

Tested on 2430SDP and 3430SDP.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Richard Woodruff <r-woodruff2@ti.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:34 -08:00
Paul Walmsley
a94b9e5a81 ARM: OMAP2: drop redundant pending write check for gptimer
omap_dm_timer_write_reg() already waits for pending writes to complete,
so the extra wait in omap_dm_timer_set_load() is superfluous.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Richard Woodruff <r-woodruff2@ti.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:33 -08:00
David Brownell
6a769ed40a ARM: OMAP2: bard-h4: list those eeproms
Declare the two 1Kbit EEPROMs included in the H4 board stack.
One is on the CPU card; the other is on the mainboard.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:33 -08:00
Lauri Leukkunen
84a34344ea ARM: OMAP2: Use omap_rev() instead of system_rev
system_rev is meant for board revision, this patch changes
all relevant instances to use the new omap_rev() function
liberating system_rev to be used with ATAG_REVISION as it
has been designed.

Signed-off-by: Lauri Leukkunen <lauri.leukkunen@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:31 -08:00
Tony Lindgren
a882314303 ARM: OMAP2: Fix cpu detection
At some point omap2 changed the bits for GET_OMAP_CLASS, which
broke 15xx detection on 730 as noticed by Russell King.

This patch fixes omap2 cpu detection to respect the original
GET_OMAP_CLASS, and simplifies the detection for 34xx.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:30 -08:00
Tony Lindgren
5ba02dcab9 ARM: OMAP2: Prepare cpu detection for further improvements
Rename omap2_check_revision to omap24xx_check_revision.
Then next patch will split if further and add omap34xx_check_revision.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:36:30 -08:00
David Brownell
5dd81e2578 ARM: OMAP1: osk5912: LED trigger update for CF
Help OSK work better with root-on-CF, by having one of the LEDs
use the "ide-disk" trigger (to kick in during CF I/O).

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:54 -08:00
David Brownell
2430c62e4b ARM: OMAP1: osk5912: Mistral eeprom support
List the 4 Kbit I2C EEPROM included on the Mistral board.

Also add a comment about the hardware workaround needed to
properly support the WAKE button.  More info at

  http://elinux.org/OSK_Mistral_wakeup_button_mod

Still no support for the (optional) camera sensor.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:53 -08:00
Jarkko Nikula
f2d18fea8b ARM: OMAP: Switch to gpio_request/free calls
Switch to gpio_request/free calls

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:30 -08:00
David Brownell
e031ab23de ARM: OMAP: minor gpio bugfixes
Minor GPIO fixes:

 - If get_gpio_bank() fails, then BUG() out.

 - In omap_set_gpio_debounce():
    * protect the read/modify/write with the relevant spinlock
    * make the omap3 clock ops pass "sparse" checking

Except for the spinlock problem, these were reported through "make".

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:27 -08:00
Jarkko Nikula
3ff164e155 ARM: OMAP: make legacy gpio request/free calls superfluous
Clean up OMAP GPIO request/free functions

 - Rename and declare static OMAP specific GPIO request/free functions
 - Register them into gpiolib as chip-specific hooks
 - Add omap_request_gpio/omap_free_gpio wrappers for existing code not
   converted yet to use gpiolib

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
[ dbrownell@users.sourceforge.net: remove needless check_gpio() calls ]
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:27 -08:00
David Brownell
15f74b0335 ARM: OMAP: use gpio_to_irq
Have most uses of OMAP_GPIO_IRQ() use gpio_to_irq() instead.
Calls used for table initialization are left alone, at least
this time around.

(This patch is for code in both the OMAP tree and mainline.)

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:26 -08:00
David Brownell
e918edf7c2 ARM: OMAP: switch to gpio_direction_output
More conversion to the standard GPIO interfaces:  stop using
omap_set_gpio_direction() entirely, and switch over to the
gpio_direction_output() call.

Note that because gpio_direction_output() includes the initial
value, this change isn't quite transparent.

 - For the call sites which defined an initial value either
   before or after setting the direction, that value was used.

   When that value was previously assigned afterwards, this
   could eliminate a brief output glitch ... and possibly
   change behavior.  In a few cases (LCDs) several values
   were assigned together ... those were re-arranged to match
   the explicit sequence provided.

 - Some call sites didn't define such a value; so I chose an
   initial "off/reset" value that seemed to default to "off".

In short, files touched by this patch might notice some small
changes in startup behavior (with trivial fixes).

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:26 -08:00
David Brownell
40e3925ba1 ARM: OMAP: switch to gpio_direction_input
More switchover to the cross-platform GPIO interface:
use gpio_direction_input(), not an OMAP-specific call.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:26 -08:00
David Brownell
0b84b5ca43 ARM: OMAP: switch to standard gpio get/set calls
This patch replaces some legacy OMAP GPIO calls with the "new" (not
really, any more!) calls that work on most platforms.

The calls addressed by this patch are the simple ones to get and set
values ... for code that's in mainline, including the implementations
of those calls.

Except for the declarations and definitions of those calls, all of
these changes were performed by a simple SED script.  Plus, a few
"if() set() else set()" branches were merged by hand.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:25 -08:00
David Brownell
a007b7096f ARM: OMAP: gpios implement new to_irq()
Make OMAP use the new __gpio_to_irq() hook, to make it easier to
support IRQs coming in from off-chip gpio controllers like the
TWL4030/TPS65930 chip used on OMAP3 boads like Beagleboard.org and
the Gumstix Overo.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:25 -08:00
Jarkko Nikula
21c867f1de ARM: OMAP: Extend gpio label column width in omap_gpio debugfs file
There are already various drivers having bigger label than 10 bytes. Most
of them fit well under 20 bytes but make column width exact so that
oversized labels don't mess up output alignment.

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:24 -08:00
Jouni Hogander
89db948254 ARM: OMAP: Enable GPIO debounce clock only when debounce is enabled v3
This patch changes gpio "driver" to enable debounce clock for
gpio-bank only when debounce is enabled for some gpio in that bank.

Gpio functional clocks are also renamed in clock tree, gpioX_fck ->
gpioX_dbck.

This patch triggers problem with gpio wake-up and Omap3. Gpios in PER
domain aren't capable to generate wake-up if PER domain is in sleep
state. For this iopad wake-up should be used and needed pad
configuration should be done. Enabling iopad wake-up for gpio pads is
left for bootloader or omap mux configuration in kernel.

Signed-off-by: Jouni Hogander <jouni.hogander@nokia.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2008-12-10 17:35:24 -08:00
David Woodhouse
c4956ed6fa Merge branch 'misc/mtd/sharpsl-nand' of git://git.kernel.org/pub/scm/linux/kernel/git/lumag/tosa-2.6 2008-12-10 15:49:12 +00:00
Uwe Kleine-König
d403700bf8 netx: define register MEMCR
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-09 21:58:03 +01:00
Uwe Kleine-König
e0a84ebd48 netx/xc: add a few "const"s to fix compiler warnings
the fixed warnings are:

	arch/arm/mach-netx/xc.c: In function ‘xc_request_firmware’:
	arch/arm/mach-netx/xc.c:152: warning: assignment discards qualifiers from pointer target type
	arch/arm/mach-netx/xc.c:162: warning: assignment discards qualifiers from pointer target type

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-09 21:58:01 +01:00
Uwe Kleine-König
2fcfe6b872 netx: add support for clockevents
This is based on a patch by Luotao Fu <lfu@pengutronix.de>

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Luotao Fu <lfu@pengutronix.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-09 21:57:59 +01:00
Uwe Kleine-König
21edecd355 netx: enable GENERIC_TIME
the needed infrastructure is already in place, only selecting
GENERIC_TIME was missing.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-09 21:57:58 +01:00
Uwe Kleine-König
24e7857677 netx: Use a cpp symbol for the clocksource timer number
instead of hardcoding the same value each time.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-09 21:57:22 +01:00
Uwe Kleine-König
9853848860 mach-netx/time.c: codingstyle cleanup
To prevent cluttering the next patches with noop noise, do the cleanup
in this separate patch:

 - use tab to indent
 - break comments before column 80

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
2008-12-09 21:57:21 +01:00
Linus Torvalds
437f2f91d6 Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] Fix alignment fault handling for ARMv6 and later CPUs
  [ARM] 5340/1: fix stack placement after noexecstack changes
  [ARM] 5339/1: fix __fls() on ARM
  [ARM] Orion: fix bug in pcie configuration cycle function field mask
  [ARM] omap: fix a pile of issues
2008-12-09 08:29:31 -08:00
Russell King
3afb6e9c63 [ARM] dma: factor out code looking up the DMA channel
This is a preparitory patch to allow us to easily change the way we
add and lookup DMA channel structures.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-08 16:56:22 +00:00
Russell King
1df8130278 [ARM] dma: remove dmach_t typedef
Remove a pointless integer typedef.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-08 15:58:50 +00:00
Russell King
baa745a337 [ARM] Fix alignment fault handling for ARMv6 and later CPUs
On ARMv6 and later CPUs, it is possible for userspace processes to
get stuck on a misaligned load or store due to the "ignore fault"
setting; unlike previous CPUs, retrying the instruction without
the 'A' bit set does not always cause the load to succeed.

We have no real option but to default to fixing up alignment faults
on these CPUs, and having the CPU fix up those misaligned accesses
which it can.

Reported-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-07 09:44:55 +00:00
Lennert Buytenhek
794baba637 [ARM] 5340/1: fix stack placement after noexecstack changes
Commit 8ec53663d2 ("[ARM] Improve
non-executable support") added support for detecting non-executable
stack binaries.  One of the things it does is to make READ_IMPLIES_EXEC
be set in ->personality if we are running on a CPU that doesn't support
the XN ("Execute Never") page table bit or if we are running a binary
that needs an executable stack.

This exposed a latent bug in ARM's asm/processor.h due to which we'll
end up placing the stack at a very low address, where it will bump into
the heap on any application that uses significant amount of stack or
heap or both, causing many interesting crashes.

Fix this by testing the ADDR_LIMIT_32BIT bit in ->personality instead
of testing for equality against PER_LINUX_32BIT.

Reviewed-by: Nicolas Pitre <nico@marvell.com>

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-06 08:32:02 +00:00
Nicolas Pitre
94fc733664 [ARM] 5339/1: fix __fls() on ARM
Commit 0c65f459ce intended to fix truncation issues with fls() on
ARMv5+ by renaming it to __fls() and wrapping it into a C function.
However that didn't take into account the fact that __fls() already
already had different semantics in the kernel.

Let's move the __fls() code into fls() function directly, and redefine
__fls() with the appropriate semantics.  While at it, bring a generic
__fls() definition for pre ARMv5 too.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-12-04 09:21:55 +00:00