firefly-linux-kernel-4.4.55.git
14 years agoARM: S3C2412: SoC has the fractional baud rate register
Michel Pollet [Wed, 27 Jan 2010 16:38:08 +0000 (16:38 +0000)]
ARM: S3C2412: SoC has the fractional baud rate register

The S3C2412 has a fractional baud rate register, this patch adds the
corresponding flag to the UART definition to allow generation of more
precise baud rates for the various clock combinations.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: SPI: Make platform device compilation selectable
Jassi Brar [Thu, 28 Jan 2010 08:14:49 +0000 (17:14 +0900)]
ARM: S3C64XX: SPI: Make platform device compilation selectable

The SPI controller platform devices should be compiled in
independent of the driver support, otherwise we might end
up with dev-spi built as kernel module.
Change this to make every machine select if it has some SPI
device and wants to build device definitions.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Add DMA masks to hsotg device
Ben Dooks [Wed, 27 Jan 2010 09:13:59 +0000 (18:13 +0900)]
ARM: SAMSUNG: Add DMA masks to hsotg device

Add the required DMA masks to the hs-otg device definition to allow DMA
to work with it.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Move common memory map definitions for S5P
Kukjin Kim [Wed, 27 Jan 2010 07:57:07 +0000 (16:57 +0900)]
ARM: S5P6440: Move common memory map definitions for S5P

1. Moved common memory map definitions for S5P such as S5P_VA_XXX
   into plat-s5p/include/mach/map-s5p.h from mach-s5p6440/include/mach.
2. Removed unnecessary definitions in the map.h and irq.c
3. Removed the unnecessary support for unaligned UART address
4. Renamed S5P_VA_VICx definitions as VA_VICx
5. Moved the definitons of VIC_BASE to plat-s5p/include/plat/irqs.h

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Move CPU specific code in plat-s5p to machine directory
Kukjin Kim [Mon, 25 Jan 2010 05:24:04 +0000 (14:24 +0900)]
ARM: S5P6440: Move CPU specific code in plat-s5p to machine directory

The s5p6440-clock.c and s5p6440-init.c code in the plat-s5p is specific to
s5p6440 SoC based systems. So these files are being moved to the machine
directory of s5p6440. And these files are renamed in the machine directory.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: Merge next-smdk6410-defconfig
Ben Dooks [Tue, 26 Jan 2010 09:21:40 +0000 (18:21 +0900)]
ARM: Merge next-smdk6410-defconfig

Merge branch 'next-smdk6410-defconfig' into next-samsung

14 years agoARM: SAMSUNG: Add error printing to s3c24xx_register_clocks
Ben Dooks [Mon, 25 Jan 2010 01:46:51 +0000 (10:46 +0900)]
ARM: SAMSUNG: Add error printing to s3c24xx_register_clocks

Add an error print to s3c24xx_register_clocks to provide more useful
information when failing to register the clock.

I belive this was originally left out due to the possibility of a
problem with low-level debugging code. However, if the low-level
debug code is not functional by now there will be a whole other set of
problems being presented to the system.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Add documentation to the clock registration calls.
Ben Dooks [Mon, 25 Jan 2010 01:44:10 +0000 (10:44 +0900)]
ARM: SAMSUNG: Add documentation to the clock registration calls.

Add some kerneldoc documentation to the s3c24xx_register_clock and the
s3c24xx_register_clocks() call.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Fix bad use of __initdata for s3c_register_clocks()
Ben Dooks [Mon, 25 Jan 2010 01:39:23 +0000 (10:39 +0900)]
ARM: SAMSUNG: Fix bad use of __initdata for s3c_register_clocks()

Functions should be marked __init, not __initdata.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Fix null pointer dereference in ADC driver
Maurus Cuelenaere [Fri, 22 Jan 2010 22:29:16 +0000 (23:29 +0100)]
ARM: SAMSUNG: Fix null pointer dereference in ADC driver

ARM: SAMSUNG: Fix null pointer dereference in ADC driver

Use struct adc_device instead of relying on client (which could be
NULL) when checking for SoC type.

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5PV210: Add serial port support
Thomas Abraham [Fri, 22 Jan 2010 01:50:42 +0000 (10:50 +0900)]
ARM: S5PV210: Add serial port support

This patch adds UART serial port support for S5PV210.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add HSMMC and OTG base addresses to map.h
Ben Dooks [Wed, 20 Jan 2010 06:09:40 +0000 (15:09 +0900)]
ARM: S5P6440: Add HSMMC and OTG base addresses to map.h

Add the HSOTG and HSMMC block addresses to the map.h file.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Update s3c6400_defconfig for current kernel
Ben Dooks [Tue, 19 Jan 2010 04:16:50 +0000 (13:16 +0900)]
ARM: S3C64XX: Update s3c6400_defconfig for current kernel

Update the s3c6400_defconfig with one from the current kernel which has been
build and run tested on an SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C6400: Update s3c6400_defconfig for bigger initrds for SMDK6410
Ben Dooks [Tue, 19 Jan 2010 02:34:58 +0000 (11:34 +0900)]
ARM: S3C6400: Update s3c6400_defconfig for bigger initrds for SMDK6410

The Samsung initrd for SMDK6410 is now bigger than the original initrds
that where used. Increase the command-line size and the size of the ramdisk
that it is unpacked into.

Also change the default init to /linuxrc to avoid problems with the current
SMDK ramdisk image failing to run /bin/bash.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Tidy up common code in s3c64xx_spi_set_info()
Ben Dooks [Thu, 21 Jan 2010 04:31:38 +0000 (13:31 +0900)]
ARM: S3C64XX: Tidy up common code in s3c64xx_spi_set_info()

The s3c64xx_spi_set_info() sets one of two platform data structures depending
on which controller is being specified. Change to taking a pointer to the
relevant platform data structure and then having one set of code to place
the data into the area being pointed to.

Cc: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Fix typo in s3c-hsotg platform data
Maurus Cuelenaere [Thu, 21 Jan 2010 00:37:28 +0000 (01:37 +0100)]
ARM: S3C64XX: Fix typo in s3c-hsotg platform data

ARM: S3C64XX: Fix typo in s3c-hsotg platform data

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Staticise gpiolib implementation functions
Mark Brown [Wed, 20 Jan 2010 13:06:05 +0000 (13:06 +0000)]
ARM: SAMSUNG: Staticise gpiolib implementation functions

They are not exported, they are referenced via vtables.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Staticise audio platform data
Mark Brown [Wed, 20 Jan 2010 13:06:04 +0000 (13:06 +0000)]
ARM: S3C64XX: Staticise audio platform data

It's not exported.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Fix dev-audio build
Mark Brown [Wed, 20 Jan 2010 12:05:55 +0000 (12:05 +0000)]
ARM: S3C64XX: Fix dev-audio build

As reported when the patch was posted commit 71269364 ("ARM: S3C64XX:
Add I2S resources in platform code") uses pin names for the IISv4
data output pins which are not present in mainline, causing dev-audio
to fail to build. Fix this by using the defines which are actually
present in the kernel source.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SMDK6410: Set up interrupt range for WM835x on 1190-EV1 PMIC board
Mark Brown [Tue, 19 Jan 2010 15:26:56 +0000 (15:26 +0000)]
ARM: SMDK6410: Set up interrupt range for WM835x on 1190-EV1 PMIC board

The WM835x driver won't actually use this yet but it will in the
future when the changes converting it to genirq are merged.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move pm-check.c to plat-samsung
Ben Dooks [Wed, 20 Jan 2010 03:29:25 +0000 (12:29 +0900)]
ARM: SAMSUNG: Move pm-check.c to plat-samsung

Move the pm-check.c file to plat-samsung for all Samsung SoC users, and
update Kconfig names to make them SAMSUNG_ instead of S3C2410_

Sed expresions used to make the change:

    s/S3C2410_PM_DEBUG/SAMSUNG_PM_DEBUG/g
    s/S3C2410_PM_CHECK/SAMSUNG_PM_CHECK/g

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move pmw.c to plat-samsung
Ben Dooks [Wed, 20 Jan 2010 03:22:24 +0000 (12:22 +0900)]
ARM: SAMSUNG: Move pmw.c to plat-samsung

Move the PWM driver support to plat-samsung, as these PWM blocks are
close enough across the current range to be supported by this driver.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move more support into plat-samsung
Ben Dooks [Wed, 20 Jan 2010 02:09:28 +0000 (11:09 +0900)]
ARM: SAMSUNG: Move more support into plat-samsung

Move header files which are not likely to be touched in
any further support addition out of plat-s3c's include
directory into plat-samsung.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: Merge next-samsung-s5p6440-iodec
Ben Dooks [Tue, 19 Jan 2010 09:53:46 +0000 (18:53 +0900)]
ARM: Merge next-samsung-s5p6440-iodec

Merge branch 'next-samsung-s5p6440-iodec' into next-samsung-try10

14 years agoARM: SAMSUNG: Add initial documentation directory and overview
Ben Dooks [Mon, 23 Nov 2009 23:32:31 +0000 (23:32 +0000)]
ARM: SAMSUNG: Add initial documentation directory and overview

Start Documentation/arm/Samsung and add an initial overview file
which whilst is not complete, is better than nothing.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add IO descriptor for ChipID block.
Kukjin Kim [Tue, 19 Jan 2010 02:21:39 +0000 (11:21 +0900)]
ARM: S5P6440: Add IO descriptor for ChipID block.

This patch adds the IO descriptor for ChipID block in S5P6440.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Remove empty gpio-core.h and use central plat/gpio-core.h
Ben Dooks [Tue, 19 Jan 2010 08:14:46 +0000 (17:14 +0900)]
ARM: SAMSUNG: Remove empty gpio-core.h and use central plat/gpio-core.h

Rename mach-s3c2410/include/mach/gpio-core.h to mach/gpio-track.h so that
it can be included by <plat/gpio-core.h> when needed.

Eliminate all other empty gpio-core.h files and just include the
<plat/gpio-core.h> as necessary.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move GPIO headers to plat-samsung
Ben Dooks [Mon, 18 Jan 2010 09:00:55 +0000 (18:00 +0900)]
ARM: SAMSUNG: Move GPIO headers to plat-samsung

Move the GPIO and GPIO configuration headers into arch/arm/plat-samsung
as they are common to all the Samsung SoCs.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move gpiolib support in gpio.c to plat-samsung
Ben Dooks [Mon, 18 Jan 2010 02:22:38 +0000 (11:22 +0900)]
ARM: SAMSUNG: Move gpiolib support in gpio.c to plat-samsung

Move the gpio.c code containing the core gpiolib and GPIO support to
plat-samsung from plat-s3c as it is used by all current Samsung SoCs.

Note, we didn't move this to gpiolib.c as it contains code that is not
strictly for gpiolib support and the 4bit code is already called gpiolib.c
so make the change easier by not renaming both files in one go.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move pm-gpio into plat-samsung
Ben Dooks [Mon, 18 Jan 2010 01:47:45 +0000 (10:47 +0900)]
ARM: SAMSUNG: Move pm-gpio into plat-samsung

Move the pm-gpio code into plat-samsung.

Note, this should be changed later to properly compile the 4bit code if
the 4bit settings are enabled.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add S5P6440 GPIO support
Kukjin Kim [Tue, 19 Jan 2010 06:31:17 +0000 (15:31 +0900)]
ARM: S5P6440: Add S5P6440 GPIO support

This patch adds Samsung's S5P6440 GPIO support.

Signed-off-by: Adityapratap Sharma <aditya.ps@samsung.com>
Signed-off-by: Atul Dahiya <atul.dahiya@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move GPIO common functions to plat-samsung
Kukjin Kim [Tue, 19 Jan 2010 06:30:54 +0000 (15:30 +0900)]
ARM: SAMSUNG: Move GPIO common functions to plat-samsung

This patch moves GPIO common functions (from plat-s3c64xx) into plat-samsung.
and adds the config option to build the plat-samsung/gpiolib for Samsung SoCs.

Signed-off-by: Adityapratap Sharma <aditya.ps@samsung.com>
Signed-off-by: Atul Dahiya <atul.dahiya@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: Merge next-samsung-serial1
Ben Dooks [Tue, 19 Jan 2010 09:36:16 +0000 (18:36 +0900)]
ARM: Merge next-samsung-serial1

Merge branch 'next-samsung-serial1' into next-samsung-try7

14 years agoARM: Merge next-samsung-clock2
Ben Dooks [Tue, 19 Jan 2010 09:36:12 +0000 (18:36 +0900)]
ARM: Merge next-samsung-clock2

Merge branch 'next-samsung-clock2' into next-samsung-try7

14 years agoARM: Merge next-samsung-devupdates1
Ben Dooks [Tue, 19 Jan 2010 09:36:09 +0000 (18:36 +0900)]
ARM: Merge next-samsung-devupdates1

Merge branch 'next-samsung-devupdates1' into next-samsung-try7

14 years agoARM: Merge next-jassi-spi
Ben Dooks [Tue, 19 Jan 2010 09:36:04 +0000 (18:36 +0900)]
ARM: Merge next-jassi-spi

Merge branch 'next-jassi-spi' into next-samsung-try7

14 years agoARM: SAMSUNG: serial: Modify console initialization.
Thomas Abraham [Thu, 14 Jan 2010 06:05:38 +0000 (15:05 +0900)]
ARM: SAMSUNG: serial: Modify console initialization.

This patch modifies s3c24xx_serial_initconsole function to accept multiple
platform UART information structures. This is required on platforms that have
differences among the instances of UART ports. As an example, the FIFO sizes
could be different for each UART instance and hence multiple platform UART
information structures would be needed.

This patch also modifies the s3c24xx_console_init macro since it wraps the
call to the s3c24xx_serial_initconsole function.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: Merge next-samsung-clock2
Ben Dooks [Tue, 19 Jan 2010 08:49:59 +0000 (17:49 +0900)]
ARM: Merge next-samsung-clock2

Merge branch 'next-samsung-clock2' into next-samsung-try5

14 years agoARM: Merge next-samsung-devupdates1
Ben Dooks [Tue, 19 Jan 2010 08:48:35 +0000 (17:48 +0900)]
ARM: Merge next-samsung-devupdates1

Merge branch 'next-samsung-devupdates1' into next-samsung-try5

14 years agoARM: Merge next-jassi-spi
Ben Dooks [Tue, 19 Jan 2010 08:47:39 +0000 (17:47 +0900)]
ARM: Merge next-jassi-spi

Merge branch 'next-jassi-spi' into next-samsung-try5

14 years agoARM: Merge next-s3c6410-andygreen
Ben Dooks [Tue, 19 Jan 2010 08:42:25 +0000 (17:42 +0900)]
ARM: Merge next-s3c6410-andygreen

Merge branch 'next-s3c6410-andygreen' into next-samsung-try5

14 years agoARM: Merge next-samsung-mc-adc
Ben Dooks [Tue, 19 Jan 2010 08:42:02 +0000 (17:42 +0900)]
ARM: Merge next-samsung-mc-adc

Merge branch 'next-samsung-mc-adc' into next-samsung-try5

Conflicts:
arch/arm/mach-s3c6400/include/mach/map.h
(fix ADC and RTC merge)

14 years agoARM: S3C24XX: Add mci platform data set call s3c24xx_mci_set_platdata().
Ben Dooks [Mon, 18 Jan 2010 07:24:22 +0000 (16:24 +0900)]
ARM: S3C24XX: Add mci platform data set call s3c24xx_mci_set_platdata().

Add a s3c24xx_mci_set_platdata() call for all the machine files that have
platform data for the MCI driver. This brings the MCI device into line with
the other devices with __initdata and a specific call to ensure the right
structure type is being passed.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: MINI2440: Remove commented out devices from device array
Ben Dooks [Fri, 15 Jan 2010 06:09:20 +0000 (15:09 +0900)]
ARM: MINI2440: Remove commented out devices from device array

There's no point in having these in until there is proper support for
them, so remove as they only confuse the device changing script.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Add platform data registration for OHCI
Ben Dooks [Wed, 13 Jan 2010 05:59:46 +0000 (14:59 +0900)]
ARM: SAMSUNG: Add platform data registration for OHCI

Add a platform data helper for the OHCI device

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Make UART device code common
Ben Dooks [Tue, 12 Jan 2010 06:15:28 +0000 (15:15 +0900)]
ARM: SAMSUNG: Make UART device code common

Move s3c24xx_uart_devs, s3c24xx_uart_src and the platform devices to a
common entry in plat-samsung since they are the same in all the current
implementations.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: SPI: Define SPI controller devices
Jassi Brar [Mon, 18 Jan 2010 08:32:02 +0000 (17:32 +0900)]
ARM: S3C64XX: SPI: Define SPI controller devices

Platform devices for SPI Controller of S3C64XX are defined and exported for
machines to include. Also, controller setup helper functions are defined for
machine code to set runtime configuration of the controller and the bus.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: SPI: Header for passing platform data
Jassi Brar [Mon, 18 Jan 2010 08:45:52 +0000 (17:45 +0900)]
ARM: S3C64XX: SPI: Header for passing platform data

We need a way to pass controller specific information to the SPI driver.
For that purpose new headers are made.

SPI Controller is assumed 'type-s3c64xx' and can be defined for newer SoCs.
 Hence, that part is placed under plat-samsung to be shared across newer SoCs.

SoC specific part - spi source clocks, will be placed
under plat-<soc>/include/plat/

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: SPI: Define SPI-48M clock sources
Jassi Brar [Mon, 18 Jan 2010 07:15:08 +0000 (16:15 +0900)]
ARM: S3C64XX: SPI: Define SPI-48M clock sources

Defined special 48MHz clock sources for SPI-0,1.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: SPI: Add SPI controller register base
Jassi Brar [Mon, 18 Jan 2010 07:15:07 +0000 (16:15 +0900)]
ARM: S3C64XX: SPI: Add SPI controller register base

Added SPI controller register base.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Fix bug in clksrc-clk round_rate call.
Ben Dooks [Mon, 18 Jan 2010 06:57:42 +0000 (15:57 +0900)]
ARM: SAMSUNG: Fix bug in clksrc-clk round_rate call.

The call has been assuming all clksrc-clks' divider size is 4 bits, but
this may not be the case anymore. Use the reg_div.size parameter to
calculate the maximum value it can take and check against that.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Fix clksrc-clk's checks for bad register settings
Ben Dooks [Mon, 18 Jan 2010 06:37:25 +0000 (15:37 +0900)]
ARM: SAMSUNG: Fix clksrc-clk's checks for bad register settings

The WARN_ON() was only checking the first clock in the array, instead of
being executed for each clksrc clock being registered.

Since this is an array of clocks, WARN_ON() does not provide a lot of
useful information about the problem, so change to using printk(KERN_ERR)
to report the problem to the console.

As a note, we still try and register the clock even if these problems are
present just in case and to avoid changing the behaviour of the registration
process.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Add check to ensure that clksrc_clk does have multiple clock sources
Thomas Abraham [Mon, 18 Jan 2010 05:30:16 +0000 (14:30 +0900)]
ARM: SAMSUNG: Add check to ensure that clksrc_clk does have multiple clock sources

Adds a additional check in s3c_set_clksrc function to ensure that the clksrc_clk
does have a choice of multiple clock sources. In addition to this, a check is
added to ensure that a parent is assigned to the clksrc_clk in case it does not
have a choice of parent clocks.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5PC1XX: Register pd0 and hd0 clocks, remove unecessary dummy_enable
Ben Dooks [Mon, 18 Jan 2010 04:24:01 +0000 (13:24 +0900)]
ARM: S5PC1XX: Register pd0 and hd0 clocks, remove unecessary dummy_enable

The clk_hd0 and clk_pd0 where given a local dummy_enable call due to
not being registered with the clock code, which they really should have
been. Register these two clocks and remove the clk_dummy_enable as this
is done by the default clock registration code.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SMDK6410: Add comments on ethernet connectivity
Andy Green [Tue, 29 Dec 2009 14:40:43 +0000 (14:40 +0000)]
ARM: SMDK6410: Add comments on ethernet connectivity

LAN9115 Ethernet only works on SMDK6410 if certain switches
are set in specific ways.  Document the requirement.

Signed-off-by: Andy Green <andy@warmcat.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Add virtual mapping for S3C64XX SROM area
Andy Green [Tue, 29 Dec 2009 14:40:30 +0000 (14:40 +0000)]
ARM: S3C64XX: Add virtual mapping for S3C64XX SROM area

This adds the physical address of the SROM unit, and
applies a virtual mapping for it to the S3C_VA_MEM
slot.

Signed-off-by: Andy Green <andy@warmcat.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SMDK6410: Add nC1 chipselect SROM setup
Andy Green [Tue, 29 Dec 2009 14:40:36 +0000 (14:40 +0000)]
ARM: SMDK6410: Add nC1 chipselect SROM setup

Since the mach-smdk6410.c file claims it can start up the
smsc9115 ethernet device on the board, it should take care
about configuring the necessary chip select nCS1 so it can
see the chip.  The select defaults to 8-bit mode so without
config the Ethernet doesn't work.

This patch uses the new SROM definitions to set nCS1 to the
state found in the Samsung U-Boot port for 6410.  It may be
more conservative that it needs to be since those settings
were marked as for CS8900A also using this chip select.

But this change is enough to get the ethernet working when
booted with Qi.

Signed-off-by: Andy Green <andy@warmcat.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Add SROM register definitions
Andy Green [Tue, 29 Dec 2009 14:40:23 +0000 (14:40 +0000)]
ARM: S3C64XX: Add SROM register definitions

This introduces a platform file for s3c64xx that defines
the SROM unit registers that control chip select
characteristics.

Signed-off-by: Andy Green <andy@warmcat.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: Merge next-s3c64xx
Ben Dooks [Mon, 18 Jan 2010 00:35:29 +0000 (09:35 +0900)]
ARM: Merge next-s3c64xx

Merge branch 'next-s3c64xx' into next-samsung

Conflicts:
arch/arm/mach-s3c6400/include/mach/map.h
( ADC and RTC PA merge fixed)

14 years agoARM: S3C64XX: Add S3C64XX support to the generic Samsung ADC driver
Maurus Cuelenaere [Wed, 13 Jan 2010 23:30:34 +0000 (00:30 +0100)]
ARM: S3C64XX: Add S3C64XX support to the generic Samsung ADC driver

Add S3C64XX support to the generic Samsung ADC driver

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move S3C24XX ADC driver to plat-samsung
Maurus Cuelenaere [Wed, 13 Jan 2010 23:30:31 +0000 (00:30 +0100)]
ARM: SAMSUNG: Move S3C24XX ADC driver to plat-samsung

Move S3C24XX ADC driver to plat-samsung

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Add I2S resources in platform code
Jassi Brar [Wed, 6 Jan 2010 06:33:44 +0000 (15:33 +0900)]
ARM: S3C64XX: Add I2S resources in platform code

Define resources needed by the I2S drivers in platform code.
Audio cfg_gpio callback and IORESOURCE_DMA are added.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Add S3C64XX RTC platform driver
Maurus Cuelenaere [Tue, 12 Jan 2010 00:40:14 +0000 (01:40 +0100)]
ARM: S3C64XX: Add S3C64XX RTC platform driver

Add S3C64XX RTC platform driver

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C2412: Fixup commented out device in SMDK2413
Ben Dooks [Sun, 29 Nov 2009 14:34:56 +0000 (14:34 +0000)]
ARM: S3C2412: Fixup commented out device in SMDK2413

The SMDK2413 has a commented out device that does not have any setup
data for it, so remove it for now.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C: Rename s3c_device_usb to s3c_device_ohci
Ben Dooks [Mon, 23 Nov 2009 00:13:39 +0000 (00:13 +0000)]
ARM: S3C: Rename s3c_device_usb to s3c_device_ohci

Prepare for the forthcoming device changes by renaming s3c_device_usb to
s3c_device_ohci as this is what the device represents.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add serial port support
Kukjin Kim [Wed, 13 Jan 2010 23:23:53 +0000 (08:23 +0900)]
ARM: S5P6440: Add serial port support

This patch adds UART serial port support for S5P6440 CPU. Most of the
serial support of Samsung's 6400 CPU is reused for 6440 CPU.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add configuration file
Kukjin Kim [Wed, 13 Jan 2010 23:23:04 +0000 (08:23 +0900)]
ARM: S5P6440: Add configuration file

This patch adds Samsung's S5P6440 default configuration file.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add Board support file
Kukjin Kim [Wed, 13 Jan 2010 23:22:00 +0000 (08:22 +0900)]
ARM: S5P6440: Add Board support file

This patch adds Samsung's SMDK6440 board support file.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add new Kconfig and Makefiles
Kukjin Kim [Wed, 13 Jan 2010 23:19:36 +0000 (08:19 +0900)]
ARM: S5P6440: Add new Kconfig and Makefiles

This patch adds the Kconfig and Makefile for the new S5P6440 machine
and platform directories. It also updates arch/arm Kconfig and Makefiles
to include the support for the new S5P6440 CPU.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add Timer support
Kukjin Kim [Wed, 13 Jan 2010 23:15:39 +0000 (08:15 +0900)]
ARM: S5P6440: Add Timer support

This patch adds timer support for S5P6440 CPU.

Signed-off-by: Atul Dahiya <atul.dahiya@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add IRQ support
Kukjin Kim [Wed, 13 Jan 2010 23:14:40 +0000 (08:14 +0900)]
ARM: S5P6440: Add IRQ support

This patch adds IRQ support for S5P6440 CPU.

Signed-off-by: Adityapratap Sharma <aditya.ps@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add Clock and PLL support
Kukjin Kim [Wed, 13 Jan 2010 23:13:37 +0000 (08:13 +0900)]
ARM: S5P6440: Add Clock and PLL support

This patch adds clock and pll support for S5P6440. This patch are based on
Harald Welte's patches and Ben's plat-samsung.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5P6440: Add new CPU initialization support
Kukjin Kim [Thu, 14 Jan 2010 06:29:17 +0000 (15:29 +0900)]
ARM: S5P6440: Add new CPU initialization support

This patch adds Samsung's S5P6440 CPU support.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5PC1XX: Use common UART IRQ handling code
Ben Dooks [Tue, 12 Jan 2010 05:13:58 +0000 (14:13 +0900)]
ARM: S5PC1XX: Use common UART IRQ handling code

Use the common UART IRQ handling code for the S5PC100 system.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5PC1XX: Move to using standard timer IRQ handling code
Ben Dooks [Thu, 7 Jan 2010 05:41:38 +0000 (14:41 +0900)]
ARM: S5PC1XX: Move to using standard timer IRQ handling code

Move to using the standard VIC/Timer IRQ handling code added previously
to avoid duplicating code.

Thanks to Marek Szyprowski for pointing out dual Kconfig change.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5PC1XX: Remove definitions deleted by previous clksrc changes
Ben Dooks [Tue, 12 Jan 2010 04:10:59 +0000 (13:10 +0900)]
ARM: S5PC1XX: Remove definitions deleted by previous clksrc changes

Remove the definitions we've deleted in the previous updates to the
clksrc_clk for arch/arm/plat-s5pc1xx/include/plat/regs-clock.h.

Added comments about the removal to the clock header since we only need
these defines in one place (and they've now been removed there) we get
rid of them from the header.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Add script to change old clksrc_clk to new register defs
Ben Dooks [Tue, 12 Jan 2010 03:52:43 +0000 (12:52 +0900)]
ARM: SAMSUNG: Add script to change old clksrc_clk to new register defs

This script is used to change the old style clksrc_clk as originally
found in plat-s3c64xx to the new style. It is here for reference if needed
for future code merges.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5PC1XX: Change clksrc_clks to use array of clocks
Ben Dooks [Tue, 12 Jan 2010 03:49:17 +0000 (12:49 +0900)]
ARM: S5PC1XX: Change clksrc_clks to use array of clocks

Remove the individual 'struct clksrc_clks' and place them into an array
so that we can simply use s3c_register_clksrcs to register tham all in one
go.

Since the spdif clock relies on the audio clock, move the audio clocks
into their own arrary.

Thanks to  Marek Szyprowski for testing and pointing out the four clocks
what where missed from the clock list.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5PC1XX: Move clock definitions around ready to turn into clksrc arrays
Ben Dooks [Tue, 12 Jan 2010 03:39:58 +0000 (12:39 +0900)]
ARM: S5PC1XX: Move clock definitions around ready to turn into clksrc arrays

Move the clock definitions around ready to turn the clocks into an array
of clocks and register them in one go.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S5PC1XX: Move to using generic clksrc_clk for clock code
Ben Dooks [Tue, 12 Jan 2010 03:19:28 +0000 (12:19 +0900)]
ARM: S5PC1XX: Move to using generic clksrc_clk for clock code

Remove the copy of the old s3c64xx struct clksrc_clk and use the new one
in plat-samsung. This eliminates a bug in the set_parent() call where it
failed to set the clk->parent after sucesfully updating the clock.

The script that was used to automate much of the process will be supplied
seperately.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Add config option for number of additional GPIO pins.
Kukjin Kim [Mon, 11 Jan 2010 03:21:51 +0000 (12:21 +0900)]
ARM: SAMSUNG: Add config option for number of additional GPIO pins.

This patch adds a configuration option for specifing the number
of additional GPIO pins to be used in addition to the GPIO pins
supported onchip.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: Add common entry code for system with two VICs
Ben Dooks [Wed, 6 Jan 2010 23:59:26 +0000 (08:59 +0900)]
ARM: Add common entry code for system with two VICs

Add a common entry-macro-vic2.S for systems where there are two VICs
so that the machine or platform directories just need to setup the
correct information before including <asm/entry-macro-vic2.S> into
their own entry-macro.S file.

Since this code is from the S3C64XX project, we update the S3C64XX
machine entry code to use this new header.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move IRQ UART handling for newer devices to plat-samsung
Ben Dooks [Wed, 6 Jan 2010 02:18:44 +0000 (11:18 +0900)]
ARM: SAMSUNG: Move IRQ UART handling for newer devices to plat-samsung

Move the handling for the UART interrupts out of the s3c64xx specific
code and into plat-samsung so that it can be used by all implementations
that need it.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move IRQ VIC timer handling out to common header files
Ben Dooks [Wed, 6 Jan 2010 01:14:51 +0000 (10:14 +0900)]
ARM: SAMSUNG: Move IRQ VIC timer handling out to common header files

Move the VIC based timer interrupt handling out of plat-s3c64xx and
into plat-samsung to be re-used for other systems. This also reduces
the code size as we now have a common init routine and use the irq_desc
to store the interrupt number of the timer.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move gpio-config.c into plat-samsung
Ben Dooks [Tue, 5 Jan 2010 17:28:20 +0000 (02:28 +0900)]
ARM: SAMSUNG: Move gpio-config.c into plat-samsung

The arch/arm/plat-s3c/gpio-config.c file is common to pretty much all the Samsung
SoCs, so move it to arch/arm/plat-samsung

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move device definitions in plat-samsung
Ben Dooks [Tue, 5 Jan 2010 17:45:09 +0000 (02:45 +0900)]
ARM: SAMSUNG: Move device definitions in plat-samsung

Move all the platform device definitions from plat-s3c into plat-samsung

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move pwm-clock code into plat-samsung
Ben Dooks [Tue, 5 Jan 2010 17:39:28 +0000 (02:39 +0900)]
ARM: SAMSUNG: Move pwm-clock code into plat-samsung

Move the code for the pwm-clock into plat-samsung, as it is common to
all Samsung SoCs.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Make clk_default_setrate and clk_ops_def_setrate visible
Kukjin Kim [Thu, 14 Jan 2010 03:50:23 +0000 (12:50 +0900)]
ARM: SAMSUNG: Make clk_default_setrate and clk_ops_def_setrate visible

This patch makes clk_default_setrate and clk_ops_def_setrate available
to code outside plat-samsung clock code.

Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Do not register set_parent call if no source
Ben Dooks [Tue, 5 Jan 2010 16:53:25 +0000 (01:53 +0900)]
ARM: SAMSUNG: Do not register set_parent call if no source

If there is no source register defined, do not register a clksrc
clock with a valid .set_parent in the ops.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Add call to register array of clocks
Ben Dooks [Tue, 5 Jan 2010 16:21:38 +0000 (01:21 +0900)]
ARM: SAMSUNG: Add call to register array of clocks

Add s3c_register_clocks() to register an array of clocks, printing
an error message if there is a problem. Replace all points in the code
where this could be used.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Do not allow get/set/round rate calls with no divider
Ben Dooks [Tue, 5 Jan 2010 16:07:57 +0000 (01:07 +0900)]
ARM: SAMSUNG: Do not allow get/set/round rate calls with no divider

If the reg_div field is not set, then do not register clk_ops with the
get/set/round rate calls as these will fail to work.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Move clock.c to arch/arm/plat-samsung
Ben Dooks [Wed, 23 Dec 2009 18:43:48 +0000 (18:43 +0000)]
ARM: SAMSUNG: Move clock.c to arch/arm/plat-samsung

This is the core implementation of the clock code for all Samsung based
SoCs, so move it to arch/arm/plat-samsung (the clock.h file has already
been moved).

Since the file is built for every Samsung SoC, no changes are needed to the
Kconfig system.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Avoid announcing clksrc clocks twice
Ben Dooks [Wed, 9 Dec 2009 00:08:35 +0000 (00:08 +0000)]
ARM: S3C64XX: Avoid announcing clksrc clocks twice

The new code calls the clock setup code on registration which
can be before the clock system has been fully initialised. The
following code re-does this setup at the end of the clock
registration and thus we get two printings.

Update the calls to only print on the last pass or when doing
the necessary resume work.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Fixup .reg_src and .reg_div with named initialisers
Ben Dooks [Tue, 8 Dec 2009 01:26:07 +0000 (01:26 +0000)]
ARM: S3C64XX: Fixup .reg_src and .reg_div with named initialisers

Change these two fields to have named initialisers as per the
review comments from Kyungmin Park.

sed used:

s@\.reg_src\(.*\)=\(.*\){\(.*\),\(.*\),\(.*\)}@.reg_src\1=\2{ .reg =\3, .shift =\4, .size =\5 }@g
s@\.reg_div\(.*\)=\(.*\){\(.*\),\(.*\),\(.*\)}@.reg_div\1=\2{ .reg =\3, .shift =\4, .size =\5 }@g

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Reduce size of struct clk.
Ben Dooks [Tue, 1 Dec 2009 01:24:37 +0000 (01:24 +0000)]
ARM: SAMSUNG: Reduce size of struct clk.

Reduce the size of struct clk by 12 bytes and make defining clocks with
common implementation functions easier by moving the set_rate, get_rate,
round_rate and set_parent calls into a new structure called 'struct clk_ops'
and using that instead.

This change does make a few clocks larger as they need their own clk_ops,
but this is outweighed by the number of clocks with either no ops or having
a common set of ops.

Update all the users of this.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Remove unused clock definitions from clock header
Harald Welte [Tue, 1 Dec 2009 01:24:36 +0000 (01:24 +0000)]
ARM: S3C64XX: Remove unused clock definitions from clock header

Clean out the definitions we are no longer using after the new clock
code updates.

Signed-off-by: Harald Welte <laforge@gnumonks.org>
[ben-linux@fluff.org: split from initial patch provided]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Use new clock-clksrc.c code for clocks.
Ben Dooks [Tue, 1 Dec 2009 01:24:35 +0000 (01:24 +0000)]
ARM: S3C64XX: Use new clock-clksrc.c code for clocks.

Move the s3c6400-clock.c implementation over to use the new common
plat-samsung based clock-clksrc.c.

Note, this does not delete the clocks definitions that are now unused
in the regs-clock.h to reduce the quantity of change in this commit.

Based on original patches by Harald Welte.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SAMSUNG: Add core clock implementation for clksrc based clocks
Harald Welte [Tue, 1 Dec 2009 01:24:34 +0000 (01:24 +0000)]
ARM: SAMSUNG: Add core clock implementation for clksrc based clocks

Add a core for the clksrc clock implementation, which is found in many of
the newer Samsung SoCs into plat-samsung.

Signed-off-by: Harald Welte <laforge@gnumonks.org>
[ben-linux@fluff.org: split from original patch to make change smaller]
[ben-linux@fluff.org: split clk and clksrc changes]
[ben-linux@fluff.org: moved to plat-samsung from plat-s3c]
[ben-linux@fluff.org: re-wrote headers after splits]
[ben-linux@fluff.org: added better documentation to headers]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Compress s3c6400-clock.c code
Ben Dooks [Mon, 30 Nov 2009 01:31:32 +0000 (01:31 +0000)]
ARM: S3C64XX: Compress s3c6400-clock.c code

The individually named clocks are all static to the code
and thus can be compressed into a single array and then
the array can be referenced. This removes the need for
a seperate array of pointers to clocks.

Fix a minor problem of re-initialising the pointers in
s3c6400_set_clksrc() as this is also called by the cpufreq
code. Move these initialisations to the code that does the
registration.

Based on Harald Welte's original clock changes patch.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: S3C64XX: Cleanup common init code in s3c6400-clock.c
Ben Dooks [Mon, 30 Nov 2009 01:10:57 +0000 (01:10 +0000)]
ARM: S3C64XX: Cleanup common init code in s3c6400-clock.c

Remove the four fields from clksrc_clk.clk which are always the same
and init them when the clock is registered. This helps remove the amount
of repeated code.

This is a re-work of Harald Welte's clock changes for the latest kernel.

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