| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/soc/qcom/qcom,saw2.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Qualcomm Subsystem Power Manager / SPM AVS Wrapper 2 (SAW2) |
| |
| maintainers: |
| - Andy Gross <agross@kernel.org> |
| - Bjorn Andersson <bjorn.andersson@linaro.org> |
| |
| description: | |
| The Qualcomm Subsystem Power Manager is used to control the peripheral logic |
| surrounding the application cores in Qualcomm platforms. |
| |
| The SAW2 is a wrapper around the Subsystem Power Manager (SPM) and the |
| Adaptive Voltage Scaling (AVS) hardware. The SPM is a programmable |
| power-controller that transitions a piece of hardware (like a processor or |
| subsystem) into and out of low power modes via a direct connection to |
| the PMIC. It can also be wired up to interact with other processors in the |
| system, notifying them when a low power state is entered or exited. |
| |
| properties: |
| compatible: |
| items: |
| - enum: |
| - qcom,ipq4019-saw2-cpu |
| - qcom,ipq4019-saw2-l2 |
| - qcom,ipq8064-saw2-cpu |
| - qcom,sdm660-gold-saw2-v4.1-l2 |
| - qcom,sdm660-silver-saw2-v4.1-l2 |
| - qcom,msm8998-gold-saw2-v4.1-l2 |
| - qcom,msm8998-silver-saw2-v4.1-l2 |
| - qcom,msm8909-saw2-v3.0-cpu |
| - qcom,msm8916-saw2-v3.0-cpu |
| - qcom,msm8939-saw2-v3.0-cpu |
| - qcom,msm8226-saw2-v2.1-cpu |
| - qcom,msm8226-saw2-v2.1-l2 |
| - qcom,msm8960-saw2-cpu |
| - qcom,msm8974-saw2-v2.1-cpu |
| - qcom,msm8974-saw2-v2.1-l2 |
| - qcom,msm8976-gold-saw2-v2.3-l2 |
| - qcom,msm8976-silver-saw2-v2.3-l2 |
| - qcom,apq8084-saw2-v2.1-cpu |
| - qcom,apq8084-saw2-v2.1-l2 |
| - qcom,apq8064-saw2-v1.1-cpu |
| - const: qcom,saw2 |
| |
| reg: |
| items: |
| - description: Base address and size of the SPM register region |
| - description: Base address and size of the alias register region |
| minItems: 1 |
| |
| regulator: |
| $ref: /schemas/regulator/regulator.yaml# |
| description: Indicates that this SPM device acts as a regulator device |
| device for the core (CPU or Cache) the SPM is attached to. |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| |
| /* Example 1: SoC using SAW2 and kpss-acc-v2 CPUIdle */ |
| cpus { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| cpu@0 { |
| compatible = "qcom,kryo"; |
| device_type = "cpu"; |
| enable-method = "qcom,kpss-acc-v2"; |
| qcom,saw = <&saw0>; |
| reg = <0x0>; |
| operating-points-v2 = <&cpu_opp_table>; |
| }; |
| }; |
| |
| saw0: power-manager@f9089000 { |
| compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2"; |
| reg = <0xf9089000 0x1000>; |
| }; |
| |
| - | |
| |
| /* |
| * Example 2: New-gen multi cluster SoC using SAW only for L2; |
| * This does not require any cpuidle driver, nor any cpu phandle. |
| */ |
| power-manager@17812000 { |
| compatible = "qcom,msm8998-gold-saw2-v4.1-l2", "qcom,saw2"; |
| reg = <0x17812000 0x1000>; |
| }; |
| |
| power-manager@17912000 { |
| compatible = "qcom,msm8998-silver-saw2-v4.1-l2", "qcom,saw2"; |
| reg = <0x17912000 0x1000>; |
| }; |
| |
| - | |
| /* |
| * Example 3: SAW2 with the bundled regulator definition. |
| */ |
| power-manager@2089000 { |
| compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2"; |
| reg = <0x02089000 0x1000>, <0x02009000 0x1000>; |
| |
| regulator { |
| regulator-min-microvolt = <850000>; |
| regulator-max-microvolt = <1300000>; |
| }; |
| }; |
| ... |