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