Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST.
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.