| Clock scaling | 
 | ------------- | 
 |  | 
 | The kernel supports scaling of CLCK.CMODE, CLCK.CM and CLKC.P0 clock | 
 | registers. If built with CONFIG_PM and CONFIG_SYSCTL options enabled, four | 
 | extra files will appear in the directory /proc/sys/pm/. Reading these files | 
 | will show: | 
 |  | 
 |       p0		-- current value of the P0 bit in CLKC register. | 
 |       cm		-- current value of the CM bits in CLKC register. | 
 |       cmode		-- current value of the CMODE bits in CLKC register. | 
 |  | 
 | On all boards, the 'p0' file should also be writable, and either '1' or '0' | 
 | can be rewritten, to set or clear the CLKC_P0 bit respectively, hence | 
 | controlling whether the resource bus rate clock is halved. | 
 |  | 
 | The 'cm' file should also be available on all boards. '0' can be written to it | 
 | to shift the board into High-Speed mode (normal), and '1' can be written to | 
 | shift the board into Medium-Speed mode. Selecting Low-Speed mode is not | 
 | supported by this interface, even though some CPUs do support it. | 
 |  | 
 | On the boards with FR405 CPU (i.e. CB60 and CB70), the 'cmode' file is also | 
 | writable, allowing the CPU core speed (and other clock speeds) to be | 
 | controlled from userspace. | 
 |  | 
 |  | 
 | Determining current and possible settings | 
 | ----------------------------------------- | 
 |  | 
 | The current state and the available masks can be found in /proc/cpuinfo. For | 
 | example, on the CB70: | 
 |  | 
 | 	# cat /proc/cpuinfo | 
 | 	CPU-Series:     fr400 | 
 | 	CPU-Core:       fr405, gr0-31, BE, CCCR | 
 | 	CPU:            mb93405 | 
 | 	MMU:            Prot | 
 | 	FP-Media:       fr0-31, Media | 
 | 	System:         mb93091-cb70, mb93090-mb00 | 
 | 	PM-Controls:    cmode=0xd31f, cm=0x3, p0=0x3, suspend=0x9 | 
 | 	PM-Status:      cmode=3, cm=0, p0=0 | 
 | 	Clock-In:       50.00 MHz | 
 | 	Clock-Core:     300.00 MHz | 
 | 	Clock-SDRAM:    100.00 MHz | 
 | 	Clock-CBus:     100.00 MHz | 
 | 	Clock-Res:      50.00 MHz | 
 | 	Clock-Ext:      50.00 MHz | 
 | 	Clock-DSU:      25.00 MHz | 
 | 	BogoMips:       300.00 | 
 |  | 
 | And on the PDK, the PM lines look like the following: | 
 |  | 
 | 	PM-Controls:    cm=0x3, p0=0x3, suspend=0x9 | 
 | 	PM-Status:      cmode=9, cm=0, p0=0 | 
 |  | 
 | The PM-Controls line, if present, will indicate which /proc/sys/pm files can | 
 | be set to what values. The specification values are bitmasks; so, for example, | 
 | "suspend=0x9" indicates that 0 and 3 can be written validly to | 
 | /proc/sys/pm/suspend. | 
 |  | 
 | The PM-Controls line will only be present if CONFIG_PM is configured to Y. | 
 |  | 
 | The PM-Status line indicates which clock controls are set to which value. If | 
 | the file can be read, then the suspend value must be 0, and so that's not | 
 | included. |