Commit graph

5,448 commits

Author SHA1 Message Date
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