xref: /freebsd/sys/contrib/device-tree/Bindings/soc/qcom/qcom,aoss-qmp.txt (revision 2eb4d8dc723da3cf7d735a3226ae49da4c8c5dbc)
1c66ec88fSEmmanuel VadotQualcomm Always-On Subsystem side channel binding
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotThis binding describes the hardware component responsible for side channel
4c66ec88fSEmmanuel Vadotrequests to the always-on subsystem (AOSS), used for certain power management
5c66ec88fSEmmanuel Vadotrequests that is not handled by the standard RPMh interface. Each client in the
6c66ec88fSEmmanuel VadotSoC has it's own block of message RAM and IRQ for communication with the AOSS.
7c66ec88fSEmmanuel VadotThe protocol used to communicate in the message RAM is known as Qualcomm
8c66ec88fSEmmanuel VadotMessaging Protocol (QMP)
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel VadotThe AOSS side channel exposes control over a set of resources, used to control
11c66ec88fSEmmanuel Vadota set of debug related clocks and to affect the low power state of resources
12c66ec88fSEmmanuel Vadotrelated to the secondary subsystems. These resources are exposed as a set of
13c66ec88fSEmmanuel Vadotpower-domains.
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel Vadot- compatible:
16c66ec88fSEmmanuel Vadot	Usage: required
17c66ec88fSEmmanuel Vadot	Value type: <string>
18c66ec88fSEmmanuel Vadot	Definition: must be one of:
19c66ec88fSEmmanuel Vadot		    "qcom,sc7180-aoss-qmp"
20*2eb4d8dcSEmmanuel Vadot		    "qcom,sc7280-aoss-qmp"
21c66ec88fSEmmanuel Vadot		    "qcom,sdm845-aoss-qmp"
22c66ec88fSEmmanuel Vadot		    "qcom,sm8150-aoss-qmp"
23c66ec88fSEmmanuel Vadot		    "qcom,sm8250-aoss-qmp"
245def4c47SEmmanuel Vadot		    "qcom,sm8350-aoss-qmp"
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot- reg:
27c66ec88fSEmmanuel Vadot	Usage: required
28c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
29c66ec88fSEmmanuel Vadot	Definition: the base address and size of the message RAM for this
30c66ec88fSEmmanuel Vadot		    client's communication with the AOSS
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel Vadot- interrupts:
33c66ec88fSEmmanuel Vadot	Usage: required
34c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
35c66ec88fSEmmanuel Vadot	Definition: should specify the AOSS message IRQ for this client
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel Vadot- mboxes:
38c66ec88fSEmmanuel Vadot	Usage: required
39c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
40c66ec88fSEmmanuel Vadot	Definition: reference to the mailbox representing the outgoing doorbell
41c66ec88fSEmmanuel Vadot		    in APCS for this client, as described in mailbox/mailbox.txt
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel Vadot- #clock-cells:
44c66ec88fSEmmanuel Vadot	Usage: optional
45c66ec88fSEmmanuel Vadot	Value type: <u32>
46c66ec88fSEmmanuel Vadot	Definition: must be 0
47c66ec88fSEmmanuel Vadot		    The single clock represents the QDSS clock.
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot- #power-domain-cells:
50c66ec88fSEmmanuel Vadot	Usage: optional
51c66ec88fSEmmanuel Vadot	Value type: <u32>
52c66ec88fSEmmanuel Vadot	Definition: must be 1
53c66ec88fSEmmanuel Vadot		    The provided power-domains are:
54c66ec88fSEmmanuel Vadot		    CDSP state (0), LPASS state (1), modem state (2), SLPI
55c66ec88fSEmmanuel Vadot		    state (3), SPSS state (4) and Venus state (5).
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot= SUBNODES
58c66ec88fSEmmanuel VadotThe AOSS side channel also provides the controls for three cooling devices,
59c66ec88fSEmmanuel Vadotthese are expressed as subnodes of the QMP node. The name of the node is used
60c66ec88fSEmmanuel Vadotto identify the resource and must therefor be "cx", "mx" or "ebi".
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot- #cooling-cells:
63c66ec88fSEmmanuel Vadot	Usage: optional
64c66ec88fSEmmanuel Vadot	Value type: <u32>
65c66ec88fSEmmanuel Vadot	Definition: must be 2
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel Vadot= EXAMPLE
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel VadotThe following example represents the AOSS side-channel message RAM and the
70c66ec88fSEmmanuel Vadotmechanism exposing the power-domains, as found in SDM845.
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadot  aoss_qmp: qmp@c300000 {
73c66ec88fSEmmanuel Vadot	  compatible = "qcom,sdm845-aoss-qmp";
74c66ec88fSEmmanuel Vadot	  reg = <0x0c300000 0x100000>;
75c66ec88fSEmmanuel Vadot	  interrupts = <GIC_SPI 389 IRQ_TYPE_EDGE_RISING>;
76c66ec88fSEmmanuel Vadot	  mboxes = <&apss_shared 0>;
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot	  #power-domain-cells = <1>;
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadot	  cx_cdev: cx {
81c66ec88fSEmmanuel Vadot		#cooling-cells = <2>;
82c66ec88fSEmmanuel Vadot	  };
83c66ec88fSEmmanuel Vadot
84c66ec88fSEmmanuel Vadot	  mx_cdev: mx {
85c66ec88fSEmmanuel Vadot		#cooling-cells = <2>;
86c66ec88fSEmmanuel Vadot	  };
87c66ec88fSEmmanuel Vadot  };
88