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