xref: /linux/Documentation/devicetree/bindings/soc/qcom/qcom,saw2.yaml (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
1c9491a16SDmitry Baryshkov# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c9491a16SDmitry Baryshkov%YAML 1.2
3c9491a16SDmitry Baryshkov---
4c9491a16SDmitry Baryshkov$id: http://devicetree.org/schemas/soc/qcom/qcom,saw2.yaml#
5c9491a16SDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml#
6c9491a16SDmitry Baryshkov
7c9491a16SDmitry Baryshkovtitle: Qualcomm Subsystem Power Manager / SPM AVS Wrapper 2 (SAW2)
8c9491a16SDmitry Baryshkov
9c9491a16SDmitry Baryshkovmaintainers:
10c9491a16SDmitry Baryshkov  - Andy Gross <agross@kernel.org>
11c9491a16SDmitry Baryshkov  - Bjorn Andersson <bjorn.andersson@linaro.org>
12c9491a16SDmitry Baryshkov
13c9491a16SDmitry Baryshkovdescription: |
14c9491a16SDmitry Baryshkov  The Qualcomm Subsystem Power Manager is used to control the peripheral logic
15c9491a16SDmitry Baryshkov  surrounding the application cores in Qualcomm platforms.
16c9491a16SDmitry Baryshkov
17c9491a16SDmitry Baryshkov  The SAW2 is a wrapper around the Subsystem Power Manager (SPM) and the
18c9491a16SDmitry Baryshkov  Adaptive Voltage Scaling (AVS) hardware. The SPM is a programmable
19c9491a16SDmitry Baryshkov  power-controller that transitions a piece of hardware (like a processor or
20c9491a16SDmitry Baryshkov  subsystem) into and out of low power modes via a direct connection to
21c9491a16SDmitry Baryshkov  the PMIC. It can also be wired up to interact with other processors in the
22c9491a16SDmitry Baryshkov  system, notifying them when a low power state is entered or exited.
23c9491a16SDmitry Baryshkov
24c9491a16SDmitry Baryshkovproperties:
25c9491a16SDmitry Baryshkov  compatible:
26c9491a16SDmitry Baryshkov    items:
27c9491a16SDmitry Baryshkov      - enum:
2831ac56a5SDmitry Baryshkov          - qcom,ipq4019-saw2-cpu
2931ac56a5SDmitry Baryshkov          - qcom,ipq4019-saw2-l2
3031ac56a5SDmitry Baryshkov          - qcom,ipq8064-saw2-cpu
31c9491a16SDmitry Baryshkov          - qcom,sdm660-gold-saw2-v4.1-l2
32c9491a16SDmitry Baryshkov          - qcom,sdm660-silver-saw2-v4.1-l2
33c9491a16SDmitry Baryshkov          - qcom,msm8998-gold-saw2-v4.1-l2
34c9491a16SDmitry Baryshkov          - qcom,msm8998-silver-saw2-v4.1-l2
35c9491a16SDmitry Baryshkov          - qcom,msm8909-saw2-v3.0-cpu
36c9491a16SDmitry Baryshkov          - qcom,msm8916-saw2-v3.0-cpu
37c9491a16SDmitry Baryshkov          - qcom,msm8939-saw2-v3.0-cpu
38c9491a16SDmitry Baryshkov          - qcom,msm8226-saw2-v2.1-cpu
39*aa05f474SLuca Weiss          - qcom,msm8226-saw2-v2.1-l2
4031ac56a5SDmitry Baryshkov          - qcom,msm8960-saw2-cpu
41c9491a16SDmitry Baryshkov          - qcom,msm8974-saw2-v2.1-cpu
4231ac56a5SDmitry Baryshkov          - qcom,msm8974-saw2-v2.1-l2
43c9491a16SDmitry Baryshkov          - qcom,msm8976-gold-saw2-v2.3-l2
44c9491a16SDmitry Baryshkov          - qcom,msm8976-silver-saw2-v2.3-l2
45c9491a16SDmitry Baryshkov          - qcom,apq8084-saw2-v2.1-cpu
4631ac56a5SDmitry Baryshkov          - qcom,apq8084-saw2-v2.1-l2
47c9491a16SDmitry Baryshkov          - qcom,apq8064-saw2-v1.1-cpu
48c9491a16SDmitry Baryshkov      - const: qcom,saw2
49c9491a16SDmitry Baryshkov
50c9491a16SDmitry Baryshkov  reg:
51c9491a16SDmitry Baryshkov    items:
52c9491a16SDmitry Baryshkov      - description: Base address and size of the SPM register region
53c9491a16SDmitry Baryshkov      - description: Base address and size of the alias register region
54c9491a16SDmitry Baryshkov    minItems: 1
55c9491a16SDmitry Baryshkov
56c9491a16SDmitry Baryshkov  regulator:
57aa4e327fSDmitry Baryshkov    $ref: /schemas/regulator/regulator.yaml#
58c9491a16SDmitry Baryshkov    description: Indicates that this SPM device acts as a regulator device
59c9491a16SDmitry Baryshkov      device for the core (CPU or Cache) the SPM is attached to.
60c9491a16SDmitry Baryshkov
61c9491a16SDmitry Baryshkovrequired:
62c9491a16SDmitry Baryshkov  - compatible
63c9491a16SDmitry Baryshkov  - reg
64c9491a16SDmitry Baryshkov
65c9491a16SDmitry BaryshkovadditionalProperties: false
66c9491a16SDmitry Baryshkov
67c9491a16SDmitry Baryshkovexamples:
68c9491a16SDmitry Baryshkov  - |
69c9491a16SDmitry Baryshkov
70c9491a16SDmitry Baryshkov    /* Example 1: SoC using SAW2 and kpss-acc-v2 CPUIdle */
71c9491a16SDmitry Baryshkov    cpus {
72c9491a16SDmitry Baryshkov        #address-cells = <1>;
73c9491a16SDmitry Baryshkov        #size-cells = <0>;
74c9491a16SDmitry Baryshkov
75c9491a16SDmitry Baryshkov        cpu@0 {
76c9491a16SDmitry Baryshkov            compatible = "qcom,kryo";
77c9491a16SDmitry Baryshkov            device_type = "cpu";
78c9491a16SDmitry Baryshkov            enable-method = "qcom,kpss-acc-v2";
79c9491a16SDmitry Baryshkov            qcom,saw = <&saw0>;
80c9491a16SDmitry Baryshkov            reg = <0x0>;
81c9491a16SDmitry Baryshkov            operating-points-v2 = <&cpu_opp_table>;
82c9491a16SDmitry Baryshkov        };
83c9491a16SDmitry Baryshkov    };
84c9491a16SDmitry Baryshkov
85c9491a16SDmitry Baryshkov    saw0: power-manager@f9089000 {
86c9491a16SDmitry Baryshkov        compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
87c9491a16SDmitry Baryshkov        reg = <0xf9089000 0x1000>;
88c9491a16SDmitry Baryshkov    };
89c9491a16SDmitry Baryshkov
90c9491a16SDmitry Baryshkov  - |
91c9491a16SDmitry Baryshkov
92c9491a16SDmitry Baryshkov    /*
93c9491a16SDmitry Baryshkov     * Example 2: New-gen multi cluster SoC using SAW only for L2;
94c9491a16SDmitry Baryshkov     * This does not require any cpuidle driver, nor any cpu phandle.
95c9491a16SDmitry Baryshkov     */
96c9491a16SDmitry Baryshkov    power-manager@17812000 {
97c9491a16SDmitry Baryshkov        compatible = "qcom,msm8998-gold-saw2-v4.1-l2", "qcom,saw2";
98c9491a16SDmitry Baryshkov        reg = <0x17812000 0x1000>;
99c9491a16SDmitry Baryshkov    };
100c9491a16SDmitry Baryshkov
101c9491a16SDmitry Baryshkov    power-manager@17912000 {
102c9491a16SDmitry Baryshkov        compatible = "qcom,msm8998-silver-saw2-v4.1-l2", "qcom,saw2";
103c9491a16SDmitry Baryshkov        reg = <0x17912000 0x1000>;
104c9491a16SDmitry Baryshkov    };
105c9491a16SDmitry Baryshkov
106aa4e327fSDmitry Baryshkov  - |
107aa4e327fSDmitry Baryshkov    /*
108aa4e327fSDmitry Baryshkov     * Example 3: SAW2 with the bundled regulator definition.
109aa4e327fSDmitry Baryshkov     */
110aa4e327fSDmitry Baryshkov    power-manager@2089000 {
111aa4e327fSDmitry Baryshkov        compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
112aa4e327fSDmitry Baryshkov        reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
113aa4e327fSDmitry Baryshkov
114aa4e327fSDmitry Baryshkov        regulator {
115aa4e327fSDmitry Baryshkov            regulator-min-microvolt = <850000>;
116aa4e327fSDmitry Baryshkov            regulator-max-microvolt = <1300000>;
117aa4e327fSDmitry Baryshkov        };
118aa4e327fSDmitry Baryshkov    };
119c9491a16SDmitry Baryshkov...
120