History log of /arch/arm/mach-ep93xx/clock.c
Revision Date Author Comments
e55f7cd2467631980f749fb0aef197c06ce38d6a 21-Oct-2013 H Hartley Sweeten <hartleys@visionengravers.com> usb: ohci: remove ep93xx bus glue platform driver

Convert ep93xx to use the OHCI platform driver and remove the
ohci-ep93xx bus glue driver.

Enable CONFIG_OHCI_HCD_PLATFORM in the ep93xx_defconfig so that USB
is still enabled by default on the EP93xx platform.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: Ryan Mallon <rmallon@gmail.com>
Cc: Lennert Buytenhek <kernel@wantstofly.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Olof Johansson <olof@lixom.net>
Cc: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
999c53fb2200070bdb8923c1894f9e14a5ec2de3 11-Jan-2012 Ryan Mallon <rmallon@gmail.com> ep93xx: Make syscon access functions private to SoC

The syscon access functions are no longer used outside of the core
EP93xx code. Move their definitions into the SoC code.

Signed-off-by: Ryan Mallon <rmallon@gmail.com>
Reviewed-by: Mika Westerberg <mika.westerberg@iki.fi>
Acked-by: Hartley Sweeten <hsweeten@visionengravers.com>
6d803ba736abb5e122dede70a4720e4843dd6df4 17-Nov-2010 Jean-Christop PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> ARM: 6483/1: arm & sh: factorised duplicated clkdev.c

factorise some generic infrastructure to assist looking up struct clks
for the ARM & SH architecture.

as the code is identical at 99%

put the arch specific code for allocation as example in asm/clkdev.h

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
732eacc0542d0aa48797f675888b85d6065af837 26-Oct-2010 Hagen Paul Pfeifer <hagen@jauu.net> replace nested max/min macros with {max,min}3 macro

Use the new {max,min}3 macros to save some cycles and bytes on the stack.
This patch substitutes trivial nested macros with their counterpart.

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Cc: Joe Perches <joe@perches.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Roland Dreier <rolandd@cisco.com>
Cc: Sean Hefty <sean.hefty@intel.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
a387f0f5409276c5cf75eecb61ef6e6896f851b4 03-Sep-2010 Mika Westerberg <mika.westerberg@iki.fi> ARM: 6359/1: ep93xx: move clock initialization earlier

Commit 7cfe24947 ("ARM: AMBA: Add pclk support to AMBA bus
infrastructure") changed AMBA bus to handle the PCLK automatically.
However, in EP93xx clock initialization is arch_initcall which is done
later than AMBA device identification. This causes
amba_get_enable_pclk() to fail resulting device where UARTs are not
functional.

So change ep93xx_clock_init() to be postcore_initcall.

Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi>
Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
3126c7bc4106c572ef47e2c220df5a00e7973379 15-Jul-2010 Russell King <rmk+kernel@arm.linux.org.uk> ARM: AMBA: Add pclk definition for platforms using primecells

Add a dummy clk definition for the APB pclk signal on all platforms
using the AMBA bus infrastructure. This ensures that these platforms
continue to work when the core amba bus code controls the APB pclk.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ed67ea82c0d9a163458dc6a69a7a3123db1a8b3b 08-Jun-2010 Ryan Mallon <ryan@bluewatersys.com> EP93xx: Add i2s core support

Add core support for EP93xx i2s audio

Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
4fec9978822a66b25f5645eb20c115034a18cfd1 11-May-2010 Mika Westerberg <mika.westerberg@iki.fi> ARM: 6124/1: ep93xx: SPI driver platform support code

This patch adds platform side support code for the EP93xx SPI
driver. This includes clock, resources and muxing. There is a new
function: ep93xx_register_spi() which can be used by board support
code to register new SPI devices for the board.

This patch depends on patch
5998/1 ep93xx: added chip revision reading function

Cc: Ryan Mallon <ryan@bluewatersys.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi>
Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Martin Guy <martinwguy@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ba7c6a3bccd25abd3c19d3655ecb1cc4d258271b 23-Feb-2010 Hartley Sweeten <hartleys@visionengravers.com> ARM: 5953/1: ep93xx: fix broken build of clock.c

Patch 5879/1: ep93xx: define magic numbers for pll1 and pll2 broke
the ep93xx build due to one missing rename of EP93XX_SYSCON_CLOCK_SET2.
The correct name should be EP93XX_SYSCON_CLKSET2.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
0a0300dc8c4b3f3ce5c9ef5a0a4be5442590398f 12-Jan-2010 Russell King <rmk+kernel@arm.linux.org.uk> ARM: Consolidate clks_register() and similar

Most machine classes want some way to register a block of clk_lookup
structures, and most do it by implementing a clks_register() type
function which walks an array, or by open-coding a loop.

Consolidate all this into clkdev_add_table().

Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
346e34abb2c56695ee4bd6af924141c97a0babfb 11-Jan-2010 Hartley Sweeten <hartleys@visionengravers.com> ARM: 5879/1: ep93xx: define magic numbers for pll1 and pll2

Add defines for the pll register magic numbers that determine if
the pll's are bypassed and if pll2 is enabled. Rename the clock
set registers to more closely match the datasheet. Also, remove
the unnecessary braces since each conditional statement is a single
statement.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
99acbb90c2440155d6b978e654ea875c8282d67b 11-Jan-2010 Hartley Sweeten <hartleys@visionengravers.com> ARM: 5875/1: ep93xx: use pr_fmt in clock.c

Use pr_fmt to prefix kernel output with the module name and change
all printk messages to pr_<level> format.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ebd00c08e28a0ab4dcb715d222214625fff6d62a 09-Oct-2009 Hartley Sweeten <hartleys@visionengravers.com> ARM: 5756/1: ep93xx: introduce clk parent

The clock generation system in the ep93xx uses two external oscillator's
and two internal PLLs to derive all the internal clocks. Many of these
internal clocks can be stopped to save power.

This introduces a "parent" hierarchy for the clocks so that the users
count can be correctly tracked for power management.

The "parent" for the video clock can either be one of the PLL outputs
or the external oscillator. In order to correctly track the "parent"
for the video clock calc_clk_div() needed to be modified. It now
returns an error code if the desired rate cannot be generated.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
c6012189a40d33213ead5d15769fab615443206f 23-Sep-2009 Ryan Mallon <ryan@bluewatersys.com> ep93xx video driver platform support

Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Daniele Venzano <linux@brownhat.org>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
ef12379f205bed7e92434e12ddd44e62d13bebe1 29-Jul-2009 Hartley Sweeten <hartleys@visionengravers.com> ARM: 5628/1: ep93xx: Introduce Pulse Width Modulator (PWM) driver

The EP93xx features two PWMs (one on the EP9307) with the following
features:

* Configurable dual output
* Separate input clocks for each PWM output
* 16-bit resolution
* Programmable pulse width (duty cycle), interval (frequency), and
polarity

This adds the necessary core support as well as the driver. A sysfs
interface is provided to control the PWM outputs.

Signed-off-by: Matthieu Crapet <mcrapet@gmail.com>
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
c3e3baddbc0b6636b01cb2aa3e44505ad61be17b 06-Jul-2009 Hartley Sweeten <hartleys@visionengravers.com> [ARM] 5593/1: ep93xx: clock.c __iomem pointer

To ensure typesafe io, the enable_reg variable should be a
void __iomem pointer not u32.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
701fac823e24676ea42451c6597f96d81d9b6aba 01-Jul-2009 Hartley Sweeten <hartleys@visionengravers.com> [ARM] 5578/1: ep93xx: add ep93xx-keypad clock

Add clkdev support for the ep93xx_keypad driver.

A matrix keypad driver for the ep93xx just got merged via the
input subsystem group. For this driver to work the keypad clock
needs to be added to the ep93xx clkdev support. In order to
accomplish this the following changes are implemented:

1) Move the EP93XX_EXT_*_RATE defines to mach/include/hardware.h.
2) Add EP93XX_KEYTCHCLK_DIV{4/16} for the keypad driver.
3) Add support for programmable clocks (set_rate() callback).
4) Add clk_keypad for the keypad driver.
5) tab indent the clk_lookup table for easier reading.
6) Add the set_rate() callback to program the keypad clock.
This callback is generalized since the ADC clock (touchscreen)
can use the same callback.
7) Use the ep93xx_syscon_swlocked_write() core function for updating
the software locked register.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
02239f0a4264608686cc0015d906c7b2dead89df 08-Jul-2009 Hartley Sweeten <hartleys@visionengravers.com> [ARM] 5577/2: ep93xx: syscon locked register functions

Add core functions to handle writes to the ep93xx software locked
registers.

There are a number of registers in the EP93xx System Controller
that require a write to the software lock register before they
can be updated. This patch adds a number of exported functions
to the ep93xx core that handle this access.

The software locked clock divider registers, VidClkDiv, MIRClkDiv,
I2SClkDiv and KeyTchClkDiv would typically involve writing a
specific value to the register. To support this the
ep93xx_syscon_swlocked_write() function is provided.

For the DeviceCfg register it's more typical to only need to
set or clear a single bit. A generic ep93xx_devcfg_set_clear()
function is provided to handle both operations. Two inline
functions, ep93xx_devcfg_set_bits() and ep93xx_devcfg_clear_bits()
are also provided to improve code readability.

In addition, the remaining bits in the System Controller Device
Config Register have been documented and the previously defined
names shortened.

All code paths that use this functionality have been updated
except for arch/arm/kernel/crunch.c. That code is in a context
switch path, which is not reentrant, so it is safe against itself.

Cc: Lennert Buytenhek <buytenh@wantstofly.org>
Cc: Matthias Kaehlcke <matthias@kaehlcke.net>
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ca8cbc8391cbd4d6e4304fc6b62682ed93d2b165 11-Jun-2009 Matthias Kaehlcke <matthias@kaehlcke.net> [ARM] 5552/1: ep93xx get_uart_rate(): use EP93XX_SYSCON_PWRCNT and EP93XX_SYSCON_PWRCN

ep93xx: get_uart_rate() uses the constants EP93XX_SYSCON_CLOCK_CONTROL
and EP93XX_SYSCON_CLOCK_UARTBAUD, which no longer exist. Use
EP93XX_SYSCON_PWRCNT and EP93XX_SYSCON_PWRCNT_UARTBAUD instead

Signed-off-by: Matthias Kaehlcke <matthias@kaehlcke.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
4070243250dd06a96d874b0be3cb3a39ef23597c 28-May-2009 Hartley Sweeten <hartleys@visionengravers.com> [ARM] 5528/1: ep93xx: add defines for dma clock magic numbers

Update the dma clocks so that the magic numbers are named.

All the dma clocks have an enable bit to turn them on/off as
needed. Currently these bits are in the code as "magic"
numbers. This changes all of them to named defines to
improve code readability.

Also, the EP93XX_SYSCON_CLOCK_CONTROL register is improperly
named. In the EP93xx User's Guide this register is called
PwrCnt (Power Control). All of the uses of this register
are associated with the clock support so this patch also
modifies the names to match the User's Guide.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
e3a6d01932f343c1cc0218909262f0f68b6f7db4 28-May-2009 Hartley Sweeten <hartleys@visionengravers.com> [ARM] 5526/1: ep93xx: usb driver cleanup

Cleanup the ohci-ep93xx driver.

1) Use the usb.h dbg() macro instead of pr_debug() so that
the source filename is prefixed to the message and it is
terminated with a linefeed.

2) Add error handling for the clk_get() call.

3) Update clkdev support so that the usb clock is matched by
the dev_id instead of the con_id.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ff05c0330b9880f9ccbb7fa40f2ed3b5842f5693 07-May-2009 Hartley Sweeten <hartleys@visionengravers.com> [ARM] 5509/1: ep93xx: clkdev enable UARTS

Fix the clkdev API support for the ep93xx uart clocks.

The uarts available in the ep93xx have individual clock controls.
The current implementation assumes that the bootloader has enabled
the clocks before the kernel has booted. It also assumes that the
bootloader has set the UARTBAUD bit indicating that the uarts are
running off the 14.7456MHz external crystal.

This fixes both issues. It also allows the uart clocks to be stopped
when there are no users.

Tested-by: Matthias Kaehlcke <matthias@kaehlcke.net>

Cc: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
1c8daabe1dafc30fcc1d929e620269ffe99b6f8a 25-Feb-2009 Ryan Mallon <ryan@bluewatersys.com> [ARM] 5413/1: Add ep93xx dma m2p clocks

Add the clocks for ep93xx m2p dma engine.

Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ae696fd53280d85b43ec1dd74f80162bee088862 30-Nov-2008 Russell King <rmk@dyn-67.arm.linux.org.uk> [ARM] ep93xx: convert to clkdev and match clocks by struct device where possible

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
fced80c735941fa518ac67c0b61bbe153fb8c050 06-Sep-2008 Russell King <rmk@dyn-67.arm.linux.org.uk> [ARM] Convert asm/io.h to linux/io.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
a09e64fbc0094e3073dbb09c3b4bfe4ab669244b 05-Aug-2008 Russell King <rmk@dyn-67.arm.linux.org.uk> [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach

This just leaves include/asm-arm/plat-* to deal with.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
be509729356b7433f73df2b9a966674a437fbbc1 04-Aug-2008 Russell King <rmk@dyn-67.arm.linux.org.uk> [ARM] Remove asm/hardware.h, use asm/arch/hardware.h instead

Remove includes of asm/hardware.h in addition to asm/arch/hardware.h.
Then, since asm/hardware.h only exists to include asm/arch/hardware.h,
update everything to directly include asm/arch/hardware.h and remove
asm/hardware.h.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
0c5d5b70449eddb7e2c8a5fdaf71b6108c1a9afc 10-Jul-2008 Dmitry Baryshkov <dbaryshkov@gmail.com> [ARM] 5171/1: ep93xx: fix compilation of modules using clocks

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ed519dede3d705e1c0012acd5b8de4074aa30fa4 22-Apr-2007 Russell King <rmk@dyn-67.arm.linux.org.uk> [ARM] Convert AMBA PL010 driver to use the clk infrastructure

Convert the AMBA PL010 serial driver to use the clock infrastructure
to allow EP93xx platforms to properly gate the clock to the UARTs.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
51dd249eff28924f838a72a50c417b2089e0f6a9 04-Feb-2007 Lennert Buytenhek <buytenh@wantstofly.org> [ARM] 4120/1: ep93xx: make clock init an arch_initcall()

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
1d81eedb8f6c13c262a70b8167530ec24b09c0ff 24-Jun-2006 Lennert Buytenhek <buytenh@wantstofly.org> [ARM] 3634/1: ep93xx: initial implementation of the clk_* API

Patch from Lennert Buytenhek

Add an initial implementation of the clk_* API for the cirrus ep93xx
to the tree. The initial implementation is somewhat minimal, with the
intention of extending it as we go along.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>