Commit Graph

144395 Commits

Author SHA1 Message Date
Ben Dooks 7a05a2cbd3 [ARM] S3C24XX: GPIO: Change usb-simtec.c to use gpiolib.
Make arch/arm/mach-s3c2410/usb-simtec.c use gpiolib to
manage gpio access.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 20:20:27 +01:00
Ben Dooks 5233c178d4 [ARM] S3C24XX: GPIO: Fix missing GPIOs in gpiolib
The GPG bank has 16 IOs, not 10. Add the missing GPH bank.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 20:20:12 +01:00
Ben Dooks 9c0ec95797 [ARM] S3C24XX: GPIO: Move gpiolib initialisation earlier
The arch_initcall() is too late for board initialisation to use
gpiolib when doing their machine specific initilisation via the
.init_machine callback.

Bring the file into line with the s3c64xx implementation and use
the core_initcall() to register the GPIO chips.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 20:03:23 +01:00
Ben Dooks 373e9644c5 [ARM] S3C24XX: GPIO: Fix error returns from gpio functions
Several GPIO functions have been returning -1 to indicate
an error instead of returning a proper error code. Change
to return -EINVAL for invalid argument(s).

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 19:40:18 +01:00
Ben Dooks 070276d5d0 [ARM] S3C24XX: GPIO: Change to macros for GPIO numbering
Prepare to remove the large number of S3C2410_GPxn defines
by moving to S3C2410_GPx(n) in arch/arm.

The following perl was used to change the files:

    perl -pi~ -e 's/S3C2410_GP([A-Z])([0-9]+)([^_^0-9])/S3C2410_GP\1\(\2\)\3/g'

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 16:26:03 +01:00
Ben Dooks 75cbcff372 [ARM] S3C24XX: GPIO: Add S3C64XX style GPIO numbering
Move the new style of GPIO numbering by using a single
macro for each GPIO bank. This means S3C2410_GPA0 becomes
S3C2410_GPA(0), and so on.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 16:26:03 +01:00
Ben Dooks fda7b2b097 [ARM] S3C24XX: GPIO: Start removal of S3C24XX_GPIO_BASE
The S3C24XX_GPIO_BASE makes it difficult to compress the
GPIO number space, and is only used in a few places of
which everything outside arch/arm/plat-s3c24xx/gpiolib.c
will be removed as soon as possible.

Change gpiolib.c to use the S3C2410_GPxCON register addresses
as the base for each bank, thus eliminating S3C24XX_GPIO_BASE.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 16:26:02 +01:00
Ben Dooks 9c7099ca75 [ARM] S3C24XX: GPIO: Clean out unused definitions in <mach/regs-gpio.h>
The <mach/regs-gpio.h> really does not need the input and output
pin configurations as these are standard and have a generic
representation (plus the s3c24xx gpio specific code is going to
be phased out soon).

The following sed was applied to remove the lines:

    sed -i~ -e '/S3C2410_GP[A-Z][0-9]*_\INP/d' \
	    -e '/S3C2410_GP[A-Z][0-9]*_\OUTP/d' \
	    -e '/S3C2410_GPA[0-9]*_OUT/d'

to remove these.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 16:26:01 +01:00
Ben Dooks 86c03c526e [ARM] S3C24XX: Fix missing <linux/sysdev.h>
In our recent changes, arch/arm/plat-s3c24xx/gpiolib.c needs
to have <linux/sysdev.h> included for it to build.

This fixes the following error/warnings:

arch/arm/plat-s3c/include/plat/pm.h:104: error: expected declaration specifiers or '...' before 'pm_message_t'
arch/arm/plat-s3c/include/plat/pm.h:104: warning: 'struct sys_device' declared inside parameter list
arch/arm/plat-s3c/include/plat/pm.h:104: warning: its scope is only this definition or declaration, which is probably not what you want
arch/arm/plat-s3c/include/plat/pm.h:105: warning: 'struct sys_device' declared inside parameter list

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 16:26:01 +01:00
Ben Dooks ec976d6eb0 [ARM] S3C24XX: GPIO: Move gpio functions out of <mach/hardware.h>
Move all the gpio functions out of <mach/hardware.h> as
this file is for defining the generic IO base addresses
for the kernel IO calls.

Make a new header <mach/gpio-fns.h> to take this and
include it via the chain from <linux/gpio.h> which is
what most of these files should be using (and will be
changed as soon as possible).

Note, this does make minor changes to some drivers but
should not mess up any pending merges.

CC: Richard Purdie <rpurdie@rpsys.net>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
CC: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-18 16:25:40 +01:00
Ben Dooks 9f05f6a921 [ARM] S3C24XX: GPIO: Remove pin specific input and output defines
The use of S3C2410_GP[A-Z]x_INP and S3C2410_GP[A-Z]x_OUTP are
very rare and are taking up large amounts of space in the
regs-gpio.h header.

The GPIO layer has had generic input and out defines called
S3C2410_GPIO_INPUT and S3C2410_GPIO_OUTPUT for a while which work
for all S3C24XX GPIOs.

Do the following replacements:

   S3C2410_GP[A-Z][0-9]*_\OUTP => S3C2410_GPIO_OUTPUT
   S3C2410_GP[A-Z][0-9]*_\INP  => /S3C2410_GPIO_INPUT
   S3C2410_GPA[0-9]*_OUT       => S3C2410_GPIO_OUTPUT

to remove any usages of these and prepare the header for
the removal of these.

The following command was used to acheive this:

find . -type f -writable ! -name regs-gpio.h ! -name "*~" | xargs sed -i~ -e 's/S3C2410_GP[A-Z][0-9]*_\OUTP/S3C2410_GPIO_OUTPUT/g' -e 's/S3C2410_GP[A-Z][0-9]*_\INP/S3C2410_GPIO_INPUT/g' -e 's/S3C2410_GPA[0-9]*_OUT/S3C2410_GPIO_OUTPUT/g'

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-17 22:21:26 +01:00
Ben Dooks ec7f4d5d67 [ARM] S3C24XX: GPIO: Remove s3c2410_gpio_irq2pin() call
Remove the s3c2410_gpio_irq2pin() function as it is not being
used in any in kernel driver and the function is probably not
being used anywhere else.

This is also part of the effort to remove any of the s3c24xx gpio
specific code that cannot be recreated by using the gpiolib
framework now in the kernel.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-17 22:21:11 +01:00
Ben Dooks 496a3f0927 [ARM] S3C64XX: Add ARM clock
Add ARM clock to provide 'arm' from the APLL to the ARM core.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:46:41 +01:00
Mark Brown 8f1ecf1d96 [ARM] S3C64XX: Configure clocks for DMA controller
Add missing DMA controller block clocks.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:14:27 +01:00
Werner Almesberger a03f7daf6d [ARM] S3C64XX: Add HCLKx2
Add doubled HCLK to S3C64xx.

Signed-off-by: Werner Almesberger <werner@openmoko.org>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:14:27 +01:00
Werner Almesberger e2c977dca2 [ARM] S3C6410: Add CAMIF clock
Add camera interface clock to S3C6410.

Signed-off-by: Werner Almesberger <werner@openmoko.org>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:14:27 +01:00
Ben Dooks a19339f430 [ARM] Merge next-s3c-s3c6410 into for-rmk-devel
Merge branch 'next-s3c-s3c6410' into for-rmk-devel
2009-05-07 11:06:32 +01:00
Ben Dooks 19e3f4858d [ARM] SMDK6400: Fix WM8753 i2c board definition
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:58 +01:00
Ben Dooks 4faf686763 [ARM] S3C64XX: Add S3C6400 SDHCI setup support
Add support for S3C6400 SDHCI channels 0 and 1, making
the GPIO code common to both S3C6400 and S3C6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:58 +01:00
Ben Dooks e074f98032 [ARM] S3C64XX: Add S3C6400 CPU detection.
Add detection support for the S3C6400 SoC which has it's
id register in a different place to the S3C6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:57 +01:00
Ben Dooks a6925c1c51 [ARM] S3C6400: Core support for S3C6400 SoC
Add the core support files for the Samsung S3C6400 SoC.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:57 +01:00
Ben Dooks 2ab408e875 [ARM] SMDK6400: Initial machine support for SMDK6400
Add minimial support for the SMDK6400 board to test
the S3C6400 support.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:57 +01:00
Ben Dooks c07f87f22e [ARM] VIC: Add power management device
Add power management support to the VIC by registering
each VIC as a system device to get suspend/resume
events going.

Since the VIC registeration is done early, we need to
record the VICs in a static array which is used to add
the system devices later once the initcalls are run. This
means there is now a configuration value for the number
of VICs in the system.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:57 +01:00
Ben Dooks d87964c460 [ARM] S3C: GPIO PM core GPIOlib integration
Move the GPIO suspend/resume support inline with the gpiolib support
so that it will work with both the S3C24XX and S3C64XX series.

The s3c_gpio_chip is extended to have a pm callback and a save block
to keep the state of the GPIO over suspend, and the code from the
s3c24xx implementation is added to a new common file.

The suspend process now uses the list of registered chips to go through
saving and restoring each one as appropriate, using the pm callback to
select the appropriate routine depending on the type of control register
present.

This change also means that any additional GPIO added should not require
changes to the PM.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:56 +01:00
Ben Dooks 966bcc1438 [ARM] S3C64XX: Add IRQ PM code
Add support for saving the state of the IRQ registers over suspend.

This requires moving the S3C64XX UART registers into <plat/regs-serial.h>
and adding irq-pm.c which saves the state of all the IRQ registers.

The irq-pm.c saves all the IRQ registers, including the IRQ_EINT and
IRQ_EINT_GROUP registers as it was easier than adding three different
files. Also ensuring that all the registers are restored to the same
state as before suspend is considered to be the best thing to do.

Note, we do not suspend the VIC here, this is done by the VIC driver
itself.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:56 +01:00
Ben Dooks 1deb507dc7 [ARM] S3C64XX: Add generic s3c64xx sys device.
Add an s3c64xx_sysclass and device for items that currently
want to bind to any s3c64xx processor. The first user of this
will be parts of the s3c64xx suspend support which need to
save device state over suspend/resume.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:56 +01:00
Ben Dooks 0abfe9aab1 [ARM] S3C64XX: Add s3c6410_sysclass export
Add definition for s3c6410_sysclass which was missing
from arch/arm/plat-s3c/include/plat/cpu.h.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:56 +01:00
Ben Dooks bd117bd161 [ARM] S3C64XX: Initial support for PM (suspend to RAM)
Add the initial support for the S3C64XX based systems to use
suspend-to-RAM to sleep.

Includes basic debugging for use with the SMDK6410 usign the
LEDs on the baseboard.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:55 +01:00
Ben Dooks 4b637dc231 [ARM] S3C: PM save UART UDIVSLOT if doing PM
Add the facility to save the UART UDIVSLOT register if the UART
state is being saved over suspend.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:55 +01:00
Ben Dooks 57699e9adf [ARM] S3C: Add debug to UART save and a per-arch callback pre-restore
Add a simple debug message on saving the UART state and add a per-arch
pre-restore function to be used by the s3c64xx restore code to ensure
the UARTs control registers do not go through any illegal state changes.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:55 +01:00
Ben Dooks 67b3e542ab [ARM] S3C64XX: Add USB OHCI support
Add USB OHCI host definitions.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:55 +01:00
Ben Dooks e6a2a9ce69 [ARM] S3C: Rename S3C24XX_PA_USBHOST to S3C_PA_USBHOST
The USB host base address is available on both the S3C24XX and S3C64XX
ranges.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:54 +01:00
Ben Dooks 98fd63ba61 [ARM] SMDK6410: Add USB OHCI host
Add USB OHCI host capability to the SMDK6410 for either USB OtG or
a single/double USB host port.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:54 +01:00
Ben Dooks eca8655ffa [ARM] S3C: Add common USB OHCI device definition
Add common definition for USB OHCI platform device, add a Kconfig
to selectively compile it and add update all the users.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07 11:04:54 +01:00
Mark Brown e3980b6a03 [ARM] SMDK6410: Hook regulator control of VDDARM up for WM1190-EV1
This allows the S3C CPUfreq driver to do DVFS.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01 15:03:26 +01:00
Kwangwoo Lee 1f26a8a0fd [PATCH] S3C64XX: Basic A&W6410 board support patch V2
A&W6410 board uses Samsung S3C6410 SoC and it is registered with 2183.
Framebuffer and ethernet devices are supported currently.

Unnecessary header file is removed.
Fix to use __raw_writel() and __raw_readl() for accessing mapped address.

Thank you for your comments.

Signed-off-by: Kwangwoo Lee <kwangwoo.lee@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01 11:38:46 +01:00
Mark Brown f53aee29be [ARM] SMDK6410: Mark all supplies as always_on
Since no consumers are currently configured for the SMDK6410 mark all
the supplies on the board as being always_on, ensuring interoperability
with future regulator API changes to disable unused regulators.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01 11:38:46 +01:00
Mark Brown db9256f33c [ARM] SMDK6410: Use active high IRQ for the WM8350 on the WM1190-EV1
Using an active high IRQ ensures that the WM8350 interrupt handling
does not spin when used with a SMDK6410 which has not had R20 removed
and R21 fitted to connect EINT12 to the PMIC module rather thant the
fixed regulators on the CPU module.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01 11:38:46 +01:00
Kyungmin Park 87c4122f17 [ARM] S3C6410: Basic support for NCP board (v2)
This is a basic support for NCP board based on s3c6410.

Only enables the serial. also remove empty i2c device.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01 11:38:46 +01:00
Mark Brown ecc558acab [ARM] SMDK6410: Support WM1190-EV1 PMIC board
The SMDK6410 supports pluggable PMIC boards. One such board is the
Wolfson Microelectronics 1190-EV1 for the WM8350 PMICs. This patch
introduces initial support for this module. Further patches will
add additional integration with the system as support for the
S3C6410 and other devices on the system improves.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01 11:38:45 +01:00
Mark Brown 3056ea0afb [ARM] SMDK6410: Add support for SMSC9115 ethernet controller
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01 11:38:45 +01:00
Ben Dooks d6662c351a [ARM] SMDK6410: Ensure LCD settings are setup
Ensure that the LCD output type is RGB and that
the modem interface is not bypassing the LCD
block. This ensures the LCD interface output
gets to the pins in the correct format.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-01 11:38:45 +01:00
Linus Torvalds 091438dd56 Linux 2.6.30-rc4 2009-04-29 21:48:16 -07:00
Linus Torvalds 9ea66ab580 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:
  eCryptfs: Fix min function comparison warning
  ecryptfs: fix printk format warning
2009-04-29 21:25:53 -07:00
Linus Torvalds 93acda847f Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
  V4L/DVB (11652): au0828: fix kernel oops regression on USB disconnect.
  V4L/DVB (11626): cx23885: Two fixes for DViCO FusionHDTV DVB-T Dual Express
  V4L/DVB (11612): mx3_camera: Fix compilation with CONFIG_PM
  V4L/DVB (11570): patch: s2255drv: fix race condition on set mode
  V4L/DVB (11568): cx18: Fix the handling of i2c bus registration error
  V4L/DVB (11561a): move media after i2c
  V4L/DVB (11516): drivers/media/video/saa5246a.c: fix use-after-free
  V4L/DVB (11515): drivers/media/video/saa5249.c: fix use-after-free and leak
  V4L/DVB (11494a): cx231xx Kconfig fixes
  V4L/DVB (11494): cx18: Send correct input routing value to external audio multiplexers
2009-04-29 21:25:39 -07:00
Devin Heitmueller fe78a49c8a V4L/DVB (11652): au0828: fix kernel oops regression on USB disconnect.
A regression was introduced in hg changeset 33810c734a0d, which resulted in
a kernel panic whenever the device was disconnected from USB.  The call to
4l2_device_register() was overwriting the pointer for usb_set_intfdata(), so
when au0828_usb_disconnect() was called, the usb_get_intfdata() returned a
pointer to the v4l2_device instead of the au0828_dev structure.

Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-04-29 16:02:51 -03:00
Christopher Pascoe d4dc673da9 V4L/DVB (11626): cx23885: Two fixes for DViCO FusionHDTV DVB-T Dual Express
Two fixes for DViCO FusionHDTV DVB-T Dual Express:

 * Reset correct tuner when reinitializing xc3028.
 * Disable the I2C gate control to avoid locking up the I2C bus.

Tested-by: John Knops <jknops@australiaonline.net.au>
Reviewed-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Christopher Pascoe <linuxdvb@itee.uq.edu.au>
Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-04-29 16:00:38 -03:00
Sascha Hauer e39c904797 V4L/DVB (11612): mx3_camera: Fix compilation with CONFIG_PM
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-04-29 15:59:24 -03:00
Dean Anderson 9d63cec168 V4L/DVB (11570): patch: s2255drv: fix race condition on set mode
set_modeready flag must be set before command sent to USB in
s2255_write_config.

Signed-off-by: Dean Anderson <dean@sensoray.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-04-29 15:41:14 -03:00
Jean Delvare 272aa3966b V4L/DVB (11568): cx18: Fix the handling of i2c bus registration error
* Return actual error values as returned by the i2c subsystem, rather
  than 0 or 1.
* If the registration of the second bus fails, unregister the first one
  before exiting, otherwise we are leaking resources.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-04-29 15:41:13 -03:00