diff options
Diffstat (limited to 'Documentation/frv/clock.txt')
-rw-r--r-- | Documentation/frv/clock.txt | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Documentation/frv/clock.txt b/Documentation/frv/clock.txt new file mode 100644 index 000000000000..c72d350e177a --- /dev/null +++ b/Documentation/frv/clock.txt | |||
@@ -0,0 +1,65 @@ | |||
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. | ||