| PPC4xx Clock Power Management (CPM) node |
| |
| Required properties: |
| - compatible : compatible list, currently only "ibm,cpm" |
| - dcr-access-method : "native" |
| - dcr-reg : < DCR register range > |
| |
| Optional properties: |
| - er-offset : All 4xx SoCs with a CPM controller have |
| one of two different order for the CPM |
| registers. Some have the CPM registers |
| in the following order (ER,FR,SR). The |
| others have them in the following order |
| (SR,ER,FR). For the second case set |
| er-offset = <1>. |
| - unused-units : specifier consist of one cell. For each |
| bit in the cell, the corresponding bit |
| in CPM will be set to turn off unused |
| devices. |
| - idle-doze : specifier consist of one cell. For each |
| bit in the cell, the corresponding bit |
| in CPM will be set to turn off unused |
| devices. This is usually just CPM[CPU]. |
| - standby : specifier consist of one cell. For each |
| bit in the cell, the corresponding bit |
| in CPM will be set on standby and |
| restored on resume. |
| - suspend : specifier consist of one cell. For each |
| bit in the cell, the corresponding bit |
| in CPM will be set on suspend (mem) and |
| restored on resume. Note, for standby |
| and suspend the corresponding bits can |
| be different or the same. Usually for |
| standby only class 2 and 3 units are set. |
| However, the interface does not care. |
| If they are the same, the additional |
| power saving will be seeing if support |
| is available to put the DDR in self |
| refresh mode and any additional power |
| saving techniques for the specific SoC. |
| |
| Example: |
| CPM0: cpm { |
| compatible = "ibm,cpm"; |
| dcr-access-method = "native"; |
| dcr-reg = <0x160 0x003>; |
| er-offset = <0>; |
| unused-units = <0x00000100>; |
| idle-doze = <0x02000000>; |
| standby = <0xfeff0000>; |
| suspend = <0xfeff791d>; |
| }; |