xref: /freebsd/sys/contrib/device-tree/Bindings/opp/opp-v2-qcom-adreno.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2ae5de77eSEmmanuel Vadot%YAML 1.2
3ae5de77eSEmmanuel Vadot---
4ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/opp/opp-v2-qcom-adreno.yaml#
5ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6ae5de77eSEmmanuel Vadot
7ae5de77eSEmmanuel Vadottitle: Qualcomm Adreno compatible OPP supply
8ae5de77eSEmmanuel Vadot
9ae5de77eSEmmanuel Vadotdescription:
10ae5de77eSEmmanuel Vadot  Adreno GPUs present in Qualcomm's Snapdragon chipsets uses an OPP specific
11ae5de77eSEmmanuel Vadot  ACD related information tailored for the specific chipset. This binding
12ae5de77eSEmmanuel Vadot  provides the information needed to describe such a hardware value.
13ae5de77eSEmmanuel Vadot
14ae5de77eSEmmanuel Vadotmaintainers:
15ae5de77eSEmmanuel Vadot  - Rob Clark <robdclark@gmail.com>
16ae5de77eSEmmanuel Vadot
17ae5de77eSEmmanuel VadotallOf:
18ae5de77eSEmmanuel Vadot  - $ref: opp-v2-base.yaml#
19ae5de77eSEmmanuel Vadot
20ae5de77eSEmmanuel Vadotproperties:
21ae5de77eSEmmanuel Vadot  compatible:
22ae5de77eSEmmanuel Vadot    contains:
23ae5de77eSEmmanuel Vadot      const: operating-points-v2-adreno
24ae5de77eSEmmanuel Vadot
25ae5de77eSEmmanuel VadotpatternProperties:
26*833e5d42SEmmanuel Vadot  '^opp(-[0-9]+){1,2}$':
27ae5de77eSEmmanuel Vadot    type: object
28ae5de77eSEmmanuel Vadot    additionalProperties: false
29ae5de77eSEmmanuel Vadot
30ae5de77eSEmmanuel Vadot    properties:
31ae5de77eSEmmanuel Vadot      opp-hz: true
32ae5de77eSEmmanuel Vadot
33ae5de77eSEmmanuel Vadot      opp-level: true
34ae5de77eSEmmanuel Vadot
35ae5de77eSEmmanuel Vadot      opp-peak-kBps: true
36ae5de77eSEmmanuel Vadot
37ae5de77eSEmmanuel Vadot      opp-supported-hw: true
38ae5de77eSEmmanuel Vadot
39ae5de77eSEmmanuel Vadot      qcom,opp-acd-level:
40ae5de77eSEmmanuel Vadot        description: |
41ae5de77eSEmmanuel Vadot          A positive value representing the ACD (Adaptive Clock Distribution,
42ae5de77eSEmmanuel Vadot          a fancy name for clk throttling during voltage droop) level associated
43ae5de77eSEmmanuel Vadot          with this OPP node. This value is shared to a co-processor inside GPU
44ae5de77eSEmmanuel Vadot          (called Graphics Management Unit a.k.a GMU) during wake up. It may not
45ae5de77eSEmmanuel Vadot          be present for some OPPs and GMU will disable ACD while transitioning
46ae5de77eSEmmanuel Vadot          to that OPP. This value encodes a voltage threshold, delay cycles &
47ae5de77eSEmmanuel Vadot          calibration margins which are identified by characterization of the
48ae5de77eSEmmanuel Vadot          SoC. So, it doesn't have any unit. This data is passed to GMU firmware
49ae5de77eSEmmanuel Vadot          via 'HFI_H2F_MSG_ACD' packet.
50ae5de77eSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
51ae5de77eSEmmanuel Vadot
52ae5de77eSEmmanuel Vadot    required:
53ae5de77eSEmmanuel Vadot      - opp-hz
54ae5de77eSEmmanuel Vadot      - opp-level
55ae5de77eSEmmanuel Vadot
56ae5de77eSEmmanuel Vadotrequired:
57ae5de77eSEmmanuel Vadot  - compatible
58ae5de77eSEmmanuel Vadot
59ae5de77eSEmmanuel VadotadditionalProperties: false
60ae5de77eSEmmanuel Vadot
61ae5de77eSEmmanuel Vadotexamples:
62ae5de77eSEmmanuel Vadot  - |
63ae5de77eSEmmanuel Vadot    #include <dt-bindings/power/qcom-rpmpd.h>
64ae5de77eSEmmanuel Vadot
65ae5de77eSEmmanuel Vadot    gpu_opp_table: opp-table {
66ae5de77eSEmmanuel Vadot        compatible = "operating-points-v2-adreno", "operating-points-v2";
67ae5de77eSEmmanuel Vadot
68ae5de77eSEmmanuel Vadot        opp-687000000 {
69ae5de77eSEmmanuel Vadot            opp-hz = /bits/ 64 <687000000>;
70ae5de77eSEmmanuel Vadot            opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
71ae5de77eSEmmanuel Vadot            opp-peak-kBps = <8171875>;
72ae5de77eSEmmanuel Vadot            qcom,opp-acd-level = <0x882e5ffd>;
73ae5de77eSEmmanuel Vadot        };
74ae5de77eSEmmanuel Vadot
75ae5de77eSEmmanuel Vadot        opp-550000000 {
76ae5de77eSEmmanuel Vadot            opp-hz = /bits/ 64 <550000000>;
77ae5de77eSEmmanuel Vadot            opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
78ae5de77eSEmmanuel Vadot            opp-peak-kBps = <6074219>;
79ae5de77eSEmmanuel Vadot            qcom,opp-acd-level = <0xc0285ffd>;
80ae5de77eSEmmanuel Vadot        };
81ae5de77eSEmmanuel Vadot
82ae5de77eSEmmanuel Vadot        opp-390000000 {
83ae5de77eSEmmanuel Vadot            opp-hz = /bits/ 64 <390000000>;
84ae5de77eSEmmanuel Vadot            opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
85ae5de77eSEmmanuel Vadot            opp-peak-kBps = <3000000>;
86ae5de77eSEmmanuel Vadot            qcom,opp-acd-level = <0xc0285ffd>;
87ae5de77eSEmmanuel Vadot        };
88ae5de77eSEmmanuel Vadot
89ae5de77eSEmmanuel Vadot        opp-300000000 {
90ae5de77eSEmmanuel Vadot            opp-hz = /bits/ 64 <300000000>;
91ae5de77eSEmmanuel Vadot            opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
92ae5de77eSEmmanuel Vadot            opp-peak-kBps = <2136719>;
93ae5de77eSEmmanuel Vadot            /* Intentionally left out qcom,opp-acd-level property here */
94ae5de77eSEmmanuel Vadot        };
95ae5de77eSEmmanuel Vadot
96ae5de77eSEmmanuel Vadot    };
97