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