2009-07-31 06:23:41 +08:00
|
|
|
S3C24XX CPUfreq support
|
|
|
|
=======================
|
|
|
|
|
|
|
|
Introduction
|
|
|
|
------------
|
|
|
|
|
|
|
|
The S3C24XX series support a number of power saving systems, such as
|
|
|
|
the ability to change the core, memory and peripheral operating
|
|
|
|
frequencies. The core control is exported via the CPUFreq driver
|
|
|
|
which has a number of different manual or automatic controls over the
|
|
|
|
rate the core is running at.
|
|
|
|
|
|
|
|
There are two forms of the driver depending on the specific CPU and
|
|
|
|
how the clocks are arranged. The first implementation used as single
|
|
|
|
PLL to feed the ARM, memory and peripherals via a series of dividers
|
|
|
|
and muxes and this is the implementation that is documented here. A
|
tree-wide: Assorted spelling fixes
In particular, several occurances of funny versions of 'success',
'unknown', 'therefore', 'acknowledge', 'argument', 'achieve', 'address',
'beginning', 'desirable', 'separate' and 'necessary' are fixed.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Joe Perches <joe@perches.com>
Cc: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-02-03 08:01:28 +08:00
|
|
|
newer version where there is a separate PLL and clock divider for the
|
|
|
|
ARM core is available as a separate driver.
|
2009-07-31 06:23:41 +08:00
|
|
|
|
|
|
|
|
|
|
|
Layout
|
|
|
|
------
|
|
|
|
|
|
|
|
The code core manages the CPU specific drivers, any data that they
|
|
|
|
need to register and the interface to the generic drivers/cpufreq
|
|
|
|
system. Each CPU registers a driver to control the PLL, clock dividers
|
|
|
|
and anything else associated with it. Any board that wants to use this
|
|
|
|
framework needs to supply at least basic details of what is required.
|
|
|
|
|
|
|
|
The core registers with drivers/cpufreq at init time if all the data
|
|
|
|
necessary has been supplied.
|
|
|
|
|
|
|
|
|
|
|
|
CPU support
|
|
|
|
-----------
|
|
|
|
|
|
|
|
The support for each CPU depends on the facilities provided by the
|
|
|
|
SoC and the driver as each device has different PLL and clock chains
|
|
|
|
associated with it.
|
|
|
|
|
|
|
|
|
|
|
|
Slow Mode
|
|
|
|
---------
|
|
|
|
|
|
|
|
The SLOW mode where the PLL is turned off altogether and the
|
|
|
|
system is fed by the external crystal input is currently not
|
|
|
|
supported.
|
|
|
|
|
|
|
|
|
|
|
|
sysfs
|
|
|
|
-----
|
|
|
|
|
|
|
|
The core code exports extra information via sysfs in the directory
|
|
|
|
devices/system/cpu/cpu0/arch-freq.
|
|
|
|
|
|
|
|
|
|
|
|
Board Support
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Each board that wants to use the cpufreq code must register some basic
|
|
|
|
information with the core driver to provide information about what the
|
|
|
|
board requires and any restrictions being placed on it.
|
|
|
|
|
|
|
|
The board needs to supply information about whether it needs the IO bank
|
|
|
|
timings changing, any maximum frequency limits and information about the
|
|
|
|
SDRAM refresh rate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Document Author
|
|
|
|
---------------
|
|
|
|
|
|
|
|
Ben Dooks, Copyright 2009 Simtec Electronics
|
|
|
|
Licensed under GPLv2
|