Root/
1 | Clock scaling |
2 | ------------- |
3 | |
4 | The kernel supports scaling of CLCK.CMODE, CLCK.CM and CLKC.P0 clock |
5 | registers. If built with CONFIG_PM and CONFIG_SYSCTL options enabled, four |
6 | extra files will appear in the directory /proc/sys/pm/. Reading these files |
7 | will show: |
8 | |
9 | p0 -- current value of the P0 bit in CLKC register. |
10 | cm -- current value of the CM bits in CLKC register. |
11 | cmode -- current value of the CMODE bits in CLKC register. |
12 | |
13 | On all boards, the 'p0' file should also be writable, and either '1' or '0' |
14 | can be rewritten, to set or clear the CLKC_P0 bit respectively, hence |
15 | controlling whether the resource bus rate clock is halved. |
16 | |
17 | The 'cm' file should also be available on all boards. '0' can be written to it |
18 | to shift the board into High-Speed mode (normal), and '1' can be written to |
19 | shift the board into Medium-Speed mode. Selecting Low-Speed mode is not |
20 | supported by this interface, even though some CPUs do support it. |
21 | |
22 | On the boards with FR405 CPU (i.e. CB60 and CB70), the 'cmode' file is also |
23 | writable, allowing the CPU core speed (and other clock speeds) to be |
24 | controlled from userspace. |
25 | |
26 | |
27 | Determining current and possible settings |
28 | ----------------------------------------- |
29 | |
30 | The current state and the available masks can be found in /proc/cpuinfo. For |
31 | example, on the CB70: |
32 | |
33 | # cat /proc/cpuinfo |
34 | CPU-Series: fr400 |
35 | CPU-Core: fr405, gr0-31, BE, CCCR |
36 | CPU: mb93405 |
37 | MMU: Prot |
38 | FP-Media: fr0-31, Media |
39 | System: mb93091-cb70, mb93090-mb00 |
40 | PM-Controls: cmode=0xd31f, cm=0x3, p0=0x3, suspend=0x9 |
41 | PM-Status: cmode=3, cm=0, p0=0 |
42 | Clock-In: 50.00 MHz |
43 | Clock-Core: 300.00 MHz |
44 | Clock-SDRAM: 100.00 MHz |
45 | Clock-CBus: 100.00 MHz |
46 | Clock-Res: 50.00 MHz |
47 | Clock-Ext: 50.00 MHz |
48 | Clock-DSU: 25.00 MHz |
49 | BogoMips: 300.00 |
50 | |
51 | And on the PDK, the PM lines look like the following: |
52 | |
53 | PM-Controls: cm=0x3, p0=0x3, suspend=0x9 |
54 | PM-Status: cmode=9, cm=0, p0=0 |
55 | |
56 | The PM-Controls line, if present, will indicate which /proc/sys/pm files can |
57 | be set to what values. The specification values are bitmasks; so, for example, |
58 | "suspend=0x9" indicates that 0 and 3 can be written validly to |
59 | /proc/sys/pm/suspend. |
60 | |
61 | The PM-Controls line will only be present if CONFIG_PM is configured to Y. |
62 | |
63 | The PM-Status line indicates which clock controls are set to which value. If |
64 | the file can be read, then the suspend value must be 0, and so that's not |
65 | included. |
66 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9