|
@@ -0,0 +1,75 @@
|
|
|
|
+ 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
|
|
|
|
+ newer version where there is a seperate PLL and clock divider for the
|
|
|
|
+ ARM core is available as a seperate driver.
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+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
|