1*0be43924SKonrad Dybcio# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*0be43924SKonrad Dybcio%YAML 1.2 3*0be43924SKonrad Dybcio--- 4*0be43924SKonrad Dybcio$id: http://devicetree.org/schemas/soc/qcom/qcom,rpm-master-stats.yaml# 5*0be43924SKonrad Dybcio$schema: http://devicetree.org/meta-schemas/core.yaml# 6*0be43924SKonrad Dybcio 7*0be43924SKonrad Dybciotitle: Qualcomm Technologies, Inc. (QTI) RPM Master Stats 8*0be43924SKonrad Dybcio 9*0be43924SKonrad Dybciomaintainers: 10*0be43924SKonrad Dybcio - Konrad Dybcio <konrad.dybcio@linaro.org> 11*0be43924SKonrad Dybcio 12*0be43924SKonrad Dybciodescription: | 13*0be43924SKonrad Dybcio The Qualcomm RPM (Resource Power Manager) architecture includes a concept 14*0be43924SKonrad Dybcio of "RPM Masters". They can be thought of as "the local gang leaders", usually 15*0be43924SKonrad Dybcio spanning a single subsystem (e.g. APSS, ADSP, CDSP). All of the RPM decisions 16*0be43924SKonrad Dybcio (particularly around entering hardware-driven low power modes: XO shutdown 17*0be43924SKonrad Dybcio and total system-wide power collapse) are first made at Master-level, and 18*0be43924SKonrad Dybcio only then aggregated for the entire system. 19*0be43924SKonrad Dybcio 20*0be43924SKonrad Dybcio The Master Stats provide a few useful bits that can be used to assess whether 21*0be43924SKonrad Dybcio our device has entered the desired low-power mode, how long it took to do so, 22*0be43924SKonrad Dybcio the duration of that residence, how long it took to come back online, 23*0be43924SKonrad Dybcio how many times a given sleep state was entered and which cores are actively 24*0be43924SKonrad Dybcio voting for staying awake. 25*0be43924SKonrad Dybcio 26*0be43924SKonrad Dybcio This scheme has been used on various SoCs in the 2013-2023 era, with some 27*0be43924SKonrad Dybcio newer or higher-end designs providing this information through an SMEM query. 28*0be43924SKonrad Dybcio 29*0be43924SKonrad Dybcioproperties: 30*0be43924SKonrad Dybcio compatible: 31*0be43924SKonrad Dybcio const: qcom,rpm-master-stats 32*0be43924SKonrad Dybcio 33*0be43924SKonrad Dybcio qcom,rpm-msg-ram: 34*0be43924SKonrad Dybcio $ref: /schemas/types.yaml#/definitions/phandle-array 35*0be43924SKonrad Dybcio description: Phandle to an RPM MSG RAM slice containing the master stats 36*0be43924SKonrad Dybcio minItems: 1 37*0be43924SKonrad Dybcio maxItems: 5 38*0be43924SKonrad Dybcio 39*0be43924SKonrad Dybcio qcom,master-names: 40*0be43924SKonrad Dybcio $ref: /schemas/types.yaml#/definitions/string-array 41*0be43924SKonrad Dybcio description: 42*0be43924SKonrad Dybcio The name of the RPM Master which owns the MSG RAM slice where this 43*0be43924SKonrad Dybcio instance of Master Stats resides 44*0be43924SKonrad Dybcio minItems: 1 45*0be43924SKonrad Dybcio maxItems: 5 46*0be43924SKonrad Dybcio 47*0be43924SKonrad Dybciorequired: 48*0be43924SKonrad Dybcio - compatible 49*0be43924SKonrad Dybcio - qcom,rpm-msg-ram 50*0be43924SKonrad Dybcio - qcom,master-names 51*0be43924SKonrad Dybcio 52*0be43924SKonrad DybcioadditionalProperties: false 53*0be43924SKonrad Dybcio 54*0be43924SKonrad Dybcioexamples: 55*0be43924SKonrad Dybcio - | 56*0be43924SKonrad Dybcio stats { 57*0be43924SKonrad Dybcio compatible = "qcom,rpm-master-stats"; 58*0be43924SKonrad Dybcio qcom,rpm-msg-ram = <&apss_master_stats>, 59*0be43924SKonrad Dybcio <&mpss_master_stats>, 60*0be43924SKonrad Dybcio <&adsp_master_stats>, 61*0be43924SKonrad Dybcio <&cdsp_master_stats>, 62*0be43924SKonrad Dybcio <&tz_master_stats>; 63*0be43924SKonrad Dybcio qcom,master-names = "APSS", 64*0be43924SKonrad Dybcio "MPSS", 65*0be43924SKonrad Dybcio "ADSP", 66*0be43924SKonrad Dybcio "CDSP", 67*0be43924SKonrad Dybcio "TZ"; 68*0be43924SKonrad Dybcio }; 69*0be43924SKonrad Dybcio... 70