^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) $id: http://devicetree.org/schemas/arm/psci.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) title: Power State Coordination Interface (PSCI)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) description: |+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) Firmware implementing the PSCI functions described in ARM document number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) ARM DEN 0022A ("Power State Coordination Interface System Software on ARM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) processors") can be used by Linux to initiate various CPU-centric power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) operations.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) Issue A of the specification describes functions for CPU suspend, hotplug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) and migration of secure software.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Functions are invoked by trapping to the privilege level of the PSCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) firmware (specified as part of the binding below) and passing arguments
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) in a manner similar to that specified by AAPCS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) r0 => 32-bit Function ID / return value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) {r1 - r3} => Parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) Note that the immediate field of the trapping instruction must be set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) to #0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) [2] Power State Coordination Interface (PSCI) specification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) http://infocenter.arm.com/help/topic/com.arm.doc.den0022c/DEN0022C_Power_State_Coordination_Interface.pdf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) $nodename:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) const: psci
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) oneOf:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) - description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) For implementations complying to PSCI versions prior to 0.2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) const: arm,psci
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) - description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) For implementations complying to PSCI 0.2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) const: arm,psci-0.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) - description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) For implementations complying to PSCI 0.2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) Function IDs are not required and should be ignored by an OS with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) PSCI 0.2 support, but are permitted to be present for compatibility
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) with existing software when "arm,psci" is later in the compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) list.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) - const: arm,psci-0.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) - const: arm,psci
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) - description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) For implementations complying to PSCI 1.0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) const: arm,psci-1.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) - description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) For implementations complying to PSCI 1.0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) PSCI 1.0 is backward compatible with PSCI 0.2 with minor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) specification updates, as defined in the PSCI specification[2].
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) - const: arm,psci-1.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) - const: arm,psci-0.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) method:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) description: The method of calling the PSCI firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) $ref: /schemas/types.yaml#/definitions/string-array
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) - smc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) # HVC #0, with the register assignments specified in this binding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) - hvc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) cpu_suspend:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) description: Function ID for CPU_SUSPEND operation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) cpu_off:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) description: Function ID for CPU_OFF operation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) cpu_on:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) description: Function ID for CPU_ON operation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) migrate:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) description: Function ID for MIGRATE operation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) arm,psci-suspend-param:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) power_state parameter to pass to the PSCI suspend call.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) Device tree nodes that require usage of PSCI CPU_SUSPEND function (ie
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) idle state nodes with entry-method property is set to "psci", as per
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) bindings in [1]) must specify this property.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) [1] Kernel documentation - ARM idle states bindings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) Documentation/devicetree/bindings/arm/idle-states.yaml
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) patternProperties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) "^power-domain-":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) $ref: "../power/power-domain.yaml#"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) type: object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) ARM systems can have multiple cores, sometimes in an hierarchical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) arrangement. This often, but not always, maps directly to the processor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) power topology of the system. Individual nodes in a topology have their
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) own specific power states and can be better represented hierarchically.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) For these cases, the definitions of the idle states for the CPUs and the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) CPU topology, must conform to the binding in [3]. The idle states
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) themselves must conform to the binding in [4] and must specify the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) arm,psci-suspend-param property.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) It should also be noted that, in PSCI firmware v1.0 the OS-Initiated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) (OSI) CPU suspend mode is introduced. Using a hierarchical representation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) helps to implement support for OSI mode and OS implementations may choose
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) to mandate it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) [3] Documentation/devicetree/bindings/power/power-domain.yaml
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) [4] Documentation/devicetree/bindings/power/domain-idle-state.yaml
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) - method
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) allOf:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) - if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) contains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) const: arm,psci
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) - cpu_off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) - cpu_on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) - |+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) // Case 1: PSCI v0.1 only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) psci {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) compatible = "arm,psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) method = "smc";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) cpu_suspend = <0x95c10000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) cpu_off = <0x95c10001>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) cpu_on = <0x95c10002>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) migrate = <0x95c10003>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) - |+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) // Case 2: PSCI v0.2 only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) psci {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) compatible = "arm,psci-0.2";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) method = "smc";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) - |+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) // Case 3: PSCI v0.2 and PSCI v0.1.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) * A DTB may provide IDs for use by kernels without PSCI 0.2 support,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) * enabling firmware and hypervisors to support existing and new kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) * These IDs will be ignored by kernels with PSCI 0.2 support, which will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) * use the standard PSCI 0.2 IDs exclusively.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) psci {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) compatible = "arm,psci-0.2", "arm,psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) method = "hvc";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) cpu_on = <0x95c10002>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) cpu_off = <0x95c10001>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) - |+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) // Case 4: CPUs and CPU idle states described using the hierarchical model.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) cpus {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) CPU0: cpu@0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) compatible = "arm,cortex-a53";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) reg = <0x0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) power-domains = <&CPU_PD0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) power-domain-names = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) CPU1: cpu@1 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) device_type = "cpu";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) compatible = "arm,cortex-a53";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) reg = <0x100>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) enable-method = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) power-domains = <&CPU_PD1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) power-domain-names = "psci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) idle-states {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) CPU_PWRDN: cpu-power-down {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) compatible = "arm,idle-state";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) arm,psci-suspend-param = <0x0000001>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) entry-latency-us = <10>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) exit-latency-us = <10>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) min-residency-us = <100>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) domain-idle-states {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) CLUSTER_RET: cluster-retention {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) compatible = "domain-idle-state";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) arm,psci-suspend-param = <0x1000011>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) entry-latency-us = <500>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) exit-latency-us = <500>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) min-residency-us = <2000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) CLUSTER_PWRDN: cluster-power-down {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) compatible = "domain-idle-state";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) arm,psci-suspend-param = <0x1000031>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) entry-latency-us = <2000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) exit-latency-us = <2000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) min-residency-us = <6000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) psci {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) compatible = "arm,psci-1.0";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) method = "smc";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) CPU_PD0: power-domain-cpu0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) #power-domain-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) domain-idle-states = <&CPU_PWRDN>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) power-domains = <&CLUSTER_PD>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) CPU_PD1: power-domain-cpu1 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) #power-domain-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) domain-idle-states = <&CPU_PWRDN>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) power-domains = <&CLUSTER_PD>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) CLUSTER_PD: power-domain-cluster {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) #power-domain-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) ...