Commit Graph

360784 Commits

Author SHA1 Message Date
Thomas Abraham 6e3ad26816 clk: exynos5250: register clocks using common clock framework
The Exynos5250 clocks are statically listed and registered using the
Samsung specific common clock helper functions. Both device tree based
clock lookup and clkdev based clock lookups are supported.

Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-25 18:16:56 +09:00
Thomas Abraham e062b57177 clk: exynos4: register clocks using common clock framework
The Exynos4 clocks are statically listed and registered using the
Samsung specific common clock helper functions. Both device tree
based clock lookup and clkdev based clock lookups are supported.

Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Tested-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-25 18:16:47 +09:00
Thomas Abraham 1c4c5fe0b7 clk: samsung: add pll clock registration helper functions
There are several types of pll clocks used in Samsung SoC's and these
pll clocks can be represented as Samsung specific pll clock types and
registered with the common clock framework. Add support for pll35xx,
pll36xx, pll45xx, pll46xx and pll2550x clock types and helper functions
to register them.

Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Tested-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-25 18:16:37 +09:00
Thomas Abraham 721c42a351 clk: samsung: add common clock framework helper functions for Samsung platforms
All Samsung platforms include different types of clock including
fixed-rate, mux, divider and gate clock types. There are typically
hundreds of such clocks on each of the Samsung platforms. To enable
Samsung platforms to register these clocks using the common clock
framework, a bunch of utility functions are introduced here which
simplify the clock registration process. The clocks are usually
statically instantiated and registered with common clock framework.

Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Tested-by: Tomasz Figa <t.figa@samsung.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-25 18:16:09 +09:00
Kukjin Kim 8ec46b97f2 Merge branch 'next/mct-exynos' into next/clk-exynos
Conflicts:
	arch/arm/mach-exynos/mach-exynos4-dt.c
2013-03-09 16:56:34 +09:00
Kukjin Kim b85b64cc22 Merge branch 'next/timer-samsung' into next/clk-exynos 2013-03-09 16:55:32 +09:00
Thomas Abraham 6938d75a8c ARM: EXYNOS: move mct driver to drivers/clocksource
Move the multi core timer (mct) driver to from mach-exynos
to drivers/clocksource and update the Kconfig and makefiles.

Cc: Changhwan Youn <chaos.youn@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-09 16:18:14 +09:00
Thomas Abraham c933512bb6 ARM: EXYNOS: remove static io-remapping of mct registers for Exynos5
With device tree support enabled for MCT controller, the
staticio-remapping of the MCT controller address space is
removed for Exynos5 platforms (which supports only device
tree based boot).

Cc: Changhwan Youn <chaos.youn@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-09 16:18:14 +09:00
Thomas Abraham bbd9700a19 ARM: dts: add mct device tree node for all supported Exynos SoC's
Add MCT device tree node for Exynos4210, Exynos4212, Exynos4412
and Exynos5250.

Cc: Changhwan Youn <chaos.youn@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-09 16:18:13 +09:00
Thomas Abraham 9fbf0c85a1 ARM: EXYNOS: allow dt based discovery of mct controller using clocksource_of_init
Add entries to __clksrc_of_table so that Exynos MCT controller is
discoverable using call to clocksource_of_init. With this change,
it would be appropriate to rename the function 'exynos4_timer_init'
as 'mct_init' since it aptly describes this function. Additionally,
the 'init_time' callback of all machine descriptors for exynos
platforms that were previously set to 'exynos4_timer_init' are now
set to either 'mct_init' or 'clocksource_of_init'.

Cc: Changhwan Youn <chaos.youn@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-09 16:18:08 +09:00
Thomas Abraham 36ba5d527e ARM: EXYNOS: add device tree support for MCT controller driver
Allow the MCT controller base address and interrupts to be
obtained from device tree and remove unused static definitions
of these. The non-dt support for Exynos5250 is removed but
retained for Exynos4210 based platforms.

Cc: Changhwan Youn <chaos.youn@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-09 16:01:52 +09:00
Thomas Abraham c371dc60ae ARM: EXYNOS: prepare an array of MCT interrupt numbers and use it
Instead of using soc_is_xxx macro at more than one place in
the MCT controller driver to decide the MCT interrpt number
to be setup, populate a table of known MCT global and local
timer interrupts and use the values in table to setup the MCT
interrupts.

This also helps in adding device tree support for MCT controller
driver by allowing the driver to retrieve interrupt numbers from
device tree and populating them into this table, thereby supporting
both legacy and dt functionality to co-exist.

Cc: Changhwan Youn <chaos.youn@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-09 16:01:50 +09:00
Thomas Abraham a1ba7a7a92 ARM: EXYNOS: add a register base address variable in mct controller driver
All the MCT register read/writes use a fixed remapped address
S5P_VA_SYSTIMER.  With device tree support for MCT controller,
it is possible to remove the static remap of the MCT controller
address space and do the remap during the initialization of the
MCT controller with the physical address obtained from the device
tree.

So in preparation of adding device tree support for MCT controller,
add a new register base address variable that will hold the remapped
MCT controller base address and convert all MCT register read/writes
to use this new variable as the base address instead of the fixed
S5P_VA_SYSTIMER.

While at it, the MCT register offset and bit mask definitions are
moved into the MCT controller driver file since there are no other
consumers of these definitions.

Cc: Changhwan Youn <chaos.youn@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-09 16:01:47 +09:00
Abhilash Kesavan c877533ca3 ARM: dts: Add max77686 device tree support for CROS5250
The exynos5250 based chromebooks have a max77686 pmic on i2c channel 0.
Add support for the pmic in the common cros5250 dts file.
Tested after enabling cpufreq support for exynos5250 SoC and varying the
arm frequency/voltage using the userspace governer.

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
Acked-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:47:13 +09:00
Sachin Kamat b914c31881 ARM: dts: Add sdhci node for exynos4412-smdk4412
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:47:13 +09:00
Prasanna Kumar 6f9e95e6ed ARM: dts: Set up power domain for MFC and G-scaler for exynos5250
This patch adds device tree nodes for MFC and G-scaler power
domains of exynos5250.It binds these power-domain nodes to repsective
device tree nodes

It also adds support to enable PM generic domains for exynos5250.

Signed-off-by: Prasanna Kumar <prasanna.ps@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:47:13 +09:00
Vivek Gautam 7d40d86766 ARM: dts: Enabling ohci-exynos driver for EXYNOS5250
Adding OHCI device tree node for Exynos5250 along with
the device base address.

Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:47:12 +09:00
Vivek Gautam 13cbd1e303 ARM: dts: Enabling ehci-s5p driver for EXYNOS5250
Adding EHCI device tree node for Exynos5250 along with
the device base adress and gpio line for vbus.

Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:47:12 +09:00
Jingoo Han ad4aebe1ef ARM: dts: Add device tree node for DP controller for exynos5250
Add device tree node for DP controller in EXYNOS5250 and
enable the instance for the SMDK5250 board.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:43:52 +09:00
Jingoo Han 0b6f5e8344 ARM: EXYNOS: Add AUXDATA for DP controller
Use AUXDATA to set the device names for DP controller instance
discovered from device tree.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:42:46 +09:00
Sachin Kamat e24ef7227b ARM: dts: Add s5m8767 PMIC node to exynos4412-origen DT
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:41:38 +09:00
Sachin Kamat 4463282698 ARM: dts: Add MSHC node for exynos4412-origen DT
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:41:38 +09:00
Sachin Kamat 32486d1408 ARM: dts: Add MFC codec entry to exynos4412-smdk4412 DT
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:41:37 +09:00
Sachin Kamat c0b6be7d9e ARM: dts: Add MFC codec entry to exynos4412-origen DT
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:41:37 +09:00
Sachin Kamat 6fe577114b ARM: dts: Add MFC codec support to Origen DT
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:41:37 +09:00
Sachin Kamat 38640d419f ARM: dts: Add MFC codec support to SMDKV310 DT
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:41:37 +09:00
Sachin Kamat 20901f74e1 ARM: dts: Add MFC codec support for EXYNOS4 DT machines
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:41:36 +09:00
Sachin Kamat 43afcbad76 ARM: dts: Update MFC DT binding documentation
Added an example for bindings for illustration and clarity.

Cc: devicetree-discuss@lists.ozlabs.org
Cc: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:51 +09:00
Dongjin Kim f11503d989 ARM: dts: enable RTC device node for exynos4412-odroidx
This patch enables RTC device node defined in exynos4.dtsi for
exynos4412-odroidx.

Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:50 +09:00
Dongjin Kim ec34d52e2a ARM: dts: Fix the timing property of MSHC controller for exynos4412-odroidx
This fixes the property of dw-mshc-sdr-timing and dw-mshc-ddr-timing as per
its current binding, it only has two cells.

Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:50 +09:00
Girish K S e88d5ae61a ARM: dts: Add initial board support file for exynos5250-arndale
Arndale is a low cost board based on the Samsung Exynos5250 SoC.
This patch adds initial device tree support for this board.

Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
Signed-off-by: Girish K S <ks.giri@samsung.com>
Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:50 +09:00
Kukjin Kim f5108e1c51 ARM: dts: re-organized cpu node for exynos5440
This patch adds timer node and re-organizes cpu node for exynos5440.

Acked-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:50 +09:00
Giridhar Maruthy 49498c5609 ARM: dts: change compatible value for exynos5440 i2c
This patch removes disabled status from I2C node for exynos5440-ssdk5440,
and fixes the incorrect compatible property value of i2c for exynos5440.

Signed-off-by: Giridhar Maruthy <giridhar.m@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:49 +09:00
Giridhar Maruthy 8233854bec ARM: dts: remove disabled status from RTC node for exynos5440-ssdk5440
Signed-off-by: Giridhar Maruthy <giridhar.m@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:49 +09:00
Giridhar Maruthy 8e66d1936b ARM: dts: remove disabled status from watchdog node for exynos5440-ssdk5440
Signed-off-by: Giridhar Maruthy <giridhar.m@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:49 +09:00
Sachin Kamat 708c0dd900 ARM: dts: Add sdhci node for exynos4412-origen
Added sdhci node for exynos4412-origen.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:48 +09:00
Sachin Kamat 2da3d9562b ARM: dts: Add vmmc regulator node in exynos4412-origen.dts
Added vmmc regulator node in exynos4412-origen.dts file.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:48 +09:00
Dongjin Kim 800974ac04 ARM: dts: Add board dts file for ODROID-X
Add initial DT for Hardkernel's ODROID-X board based on EXYNOS4412
SoC. This patch including adds the node to support fixed voltage for
peripherals like LED, ethernet controller, and this patch adds GPIO
connected LEDS on ODROID-X board and configure its properties like
following:
LED1: use 'heartbeat' trigger, blinking while the board is running.
LED2: use 'mmc0' trigger, on when mmc0 is accessing.

And adds the device node to support eMMC storage on SDCARD4 ports,
controlled by MSHC.

Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Acked-by: Olof Johansson <olof@lixom.net>
[kgene.kim@samsung.com: squashed into one commit as per Olof's comment]
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:48 +09:00
Thomas Abraham 2107673e16 ARM: dts: add board dts file for EXYNOS4412 based Origen board
Add a minimal board dts file for EXYNOS4412 based Insignal Origen board.

Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-07 19:39:48 +09:00
Romain Naour ad38bdd15d ARM: SAMSUNG: Remove unused plat-samsung/time.c
Signed-off-by: Naour Romain <romain.naour@openwide.fr>
Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 20:19:54 +09:00
Romain Naour 6a5a2e3b0d ARM: S5PC100: Add samsung-time support for s5pc100
Signed-off-by: Naour Romain <romain.naour@openwide.fr>
Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 20:19:54 +09:00
Romain Naour 04a49b710d ARM: S3C64XX: Add samsung-time support for s3c64xx
Signed-off-by: Naour Romain <romain.naour@openwide.fr>
[tomasz.figa@gmail.com: tested on a Tiny6410 board]
Reviewed-and-Tested-by: Tomasz Figa <tomasz.figa@gmail.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 20:19:53 +09:00
Romain Naour 7f78b6eb5f ARM: S3C24XX: Add samsung-time support for s3c24xx
Signed-off-by: Naour Romain <romain.naour@openwide.fr>
Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>
[heiko@sntech.de: tested on a s3c2416 based machine]
Reviewed-and-Tested-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 20:16:38 +09:00
Romain Naour c1fcd403ce ARM: SAMSUNG: Rename s5p-time to samsung-time
Signed-off-by: Naour Romain <romain.naour@openwide.fr>
Reviewed-by: Tomasz Figa <tomasz.figa@gmail.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 20:15:55 +09:00
Kukjin Kim 99ffe6f4c2 ARM: dts: cleanup exynos5440.dtsi
remove duplicated compatible

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 10:44:41 +09:00
Heiko Stuebner 7488335dcf ARM: S3C24XX: cleanup the included soc init functions in common.h
Only the _init, _init_clocks, _init_uarts and _map_io functions need
NULL defines, as they are used in the cpu map.

Further integrate the two restart functions already in common.h in
their respective soc part and compact the numerous empty lines.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 10:42:48 +09:00
Heiko Stuebner e1a621da2f ARM: S3C24XX: move plat-samsung/s3c24XX headers to local common.h
The different soc functions are now only used in the mach-s3c24xx
directory, so it's not necessary anymore to keep the globally
visible.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 10:42:48 +09:00
Heiko Stuebner dc1a3538fe ARM: S3C24XX: remove plat/irq.h in plat-samsung
plat-samsung/irq.h did only contain functions for handling the spread out
subirqs on s3c24xx arches, which are not needed anymore.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
[kgene.kim@samsung.com: fixed build error on bast-irq.c]
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 10:42:47 +09:00
Kukjin Kim 4d512a908e ARM: S3C24XX: plat/common-smdk.h local
The header file plat/common-smdk.h is used only in mach-s3c24xx/,
so this patch moves it into mach-s3c24xx directory.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 10:42:47 +09:00
Kukjin Kim 24fae0fe2c mmc: s3cmci: moved mach/regs-sdi.h into s3cmci device driver
Since mach/regs-sdi.h is used only for s3cmci.c, so this moves the
header file into the driver file, drivers/mmc/host/s3cmci.c file.

Cc: Chris Ball <cjb@laptop.org>
Tested-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2013-03-05 10:42:47 +09:00