1aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2cb7aa33aSEmmanuel Vadot# Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 3cb7aa33aSEmmanuel Vadot%YAML 1.2 4cb7aa33aSEmmanuel Vadot--- 5cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/arm/qcom,coresight-tpdm.yaml# 6cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7cb7aa33aSEmmanuel Vadot 8cb7aa33aSEmmanuel Vadottitle: Trace, Profiling and Diagnostics Monitor - TPDM 9cb7aa33aSEmmanuel Vadot 10cb7aa33aSEmmanuel Vadotdescription: | 11cb7aa33aSEmmanuel Vadot The TPDM or Monitor serves as data collection component for various dataset 12cb7aa33aSEmmanuel Vadot types specified in the QPMDA spec. It covers Implementation defined ((ImplDef), 13cb7aa33aSEmmanuel Vadot Basic Counts (BC), Tenure Counts (TC), Continuous Multi-Bit (CMB), and Discrete 14cb7aa33aSEmmanuel Vadot Single Bit (DSB). It performs data collection in the data producing clock 15cb7aa33aSEmmanuel Vadot domain and transfers it to the data collection time domain, generally ATB 16cb7aa33aSEmmanuel Vadot clock domain. 17cb7aa33aSEmmanuel Vadot 18cb7aa33aSEmmanuel Vadot The primary use case of the TPDM is to collect data from different data 19cb7aa33aSEmmanuel Vadot sources and send it to a TPDA for packetization, timestamping, and funneling. 20cb7aa33aSEmmanuel Vadot 21cb7aa33aSEmmanuel Vadotmaintainers: 22cb7aa33aSEmmanuel Vadot - Mao Jinlong <quic_jinlmao@quicinc.com> 23cb7aa33aSEmmanuel Vadot - Tao Zhang <quic_taozha@quicinc.com> 24cb7aa33aSEmmanuel Vadot 25cb7aa33aSEmmanuel Vadot# Need a custom select here or 'arm,primecell' will match on lots of nodes 26cb7aa33aSEmmanuel Vadotselect: 27cb7aa33aSEmmanuel Vadot properties: 28cb7aa33aSEmmanuel Vadot compatible: 29cb7aa33aSEmmanuel Vadot contains: 30cb7aa33aSEmmanuel Vadot enum: 31cb7aa33aSEmmanuel Vadot - qcom,coresight-tpdm 32cb7aa33aSEmmanuel Vadot required: 33cb7aa33aSEmmanuel Vadot - compatible 34cb7aa33aSEmmanuel Vadot 35cb7aa33aSEmmanuel Vadotproperties: 36cb7aa33aSEmmanuel Vadot $nodename: 37cb7aa33aSEmmanuel Vadot pattern: "^tpdm(@[0-9a-f]+)$" 38cb7aa33aSEmmanuel Vadot compatible: 39cb7aa33aSEmmanuel Vadot items: 40cb7aa33aSEmmanuel Vadot - const: qcom,coresight-tpdm 41cb7aa33aSEmmanuel Vadot - const: arm,primecell 42cb7aa33aSEmmanuel Vadot 43cb7aa33aSEmmanuel Vadot reg: 44cb7aa33aSEmmanuel Vadot minItems: 1 45cb7aa33aSEmmanuel Vadot maxItems: 2 46cb7aa33aSEmmanuel Vadot 47*01950c46SEmmanuel Vadot qcom,dsb-element-bits: 488d13bc63SEmmanuel Vadot description: 498d13bc63SEmmanuel Vadot Specifies the DSB(Discrete Single Bit) element size supported by 508d13bc63SEmmanuel Vadot the monitor. The associated aggregator will read this size before it 518d13bc63SEmmanuel Vadot is enabled. DSB element size currently only supports 32-bit and 64-bit. 528d13bc63SEmmanuel Vadot enum: [32, 64] 538d13bc63SEmmanuel Vadot 54*01950c46SEmmanuel Vadot qcom,cmb-element-bits: 55*01950c46SEmmanuel Vadot description: 56*01950c46SEmmanuel Vadot Specifies the CMB(Continuous Multi-Bit) element size supported by 57*01950c46SEmmanuel Vadot the monitor. The associated aggregator will read this size before it 58*01950c46SEmmanuel Vadot is enabled. CMB element size currently only supports 8-bit, 32-bit 59*01950c46SEmmanuel Vadot and 64-bit. 60*01950c46SEmmanuel Vadot enum: [8, 32, 64] 61*01950c46SEmmanuel Vadot 628d13bc63SEmmanuel Vadot qcom,dsb-msrs-num: 638d13bc63SEmmanuel Vadot description: 648d13bc63SEmmanuel Vadot Specifies the number of DSB(Discrete Single Bit) MSR(mux select register) 658d13bc63SEmmanuel Vadot registers supported by the monitor. If this property is not configured 668d13bc63SEmmanuel Vadot or set to 0, it means this DSB TPDM doesn't support MSR. 678d13bc63SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 688d13bc63SEmmanuel Vadot minimum: 0 698d13bc63SEmmanuel Vadot maximum: 32 708d13bc63SEmmanuel Vadot 71*01950c46SEmmanuel Vadot qcom,cmb-msrs-num: 72*01950c46SEmmanuel Vadot description: 73*01950c46SEmmanuel Vadot Specifies the number of CMB MSR(mux select register) registers supported 74*01950c46SEmmanuel Vadot by the monitor. If this property is not configured or set to 0, it means 75*01950c46SEmmanuel Vadot this TPDM doesn't support CMB MSR. 76*01950c46SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 77*01950c46SEmmanuel Vadot minimum: 0 78*01950c46SEmmanuel Vadot maximum: 32 79*01950c46SEmmanuel Vadot 80cb7aa33aSEmmanuel Vadot clocks: 81cb7aa33aSEmmanuel Vadot maxItems: 1 82cb7aa33aSEmmanuel Vadot 83cb7aa33aSEmmanuel Vadot clock-names: 84cb7aa33aSEmmanuel Vadot items: 85cb7aa33aSEmmanuel Vadot - const: apb_pclk 86cb7aa33aSEmmanuel Vadot 87cb7aa33aSEmmanuel Vadot out-ports: 88cb7aa33aSEmmanuel Vadot description: | 89cb7aa33aSEmmanuel Vadot Output connections from the TPDM to coresight funnel/TPDA. 90cb7aa33aSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 91cb7aa33aSEmmanuel Vadot 92cb7aa33aSEmmanuel Vadot properties: 93cb7aa33aSEmmanuel Vadot port: 94cb7aa33aSEmmanuel Vadot description: Output connection from the TPDM to coresight 95cb7aa33aSEmmanuel Vadot funnel/TPDA. 96cb7aa33aSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 97cb7aa33aSEmmanuel Vadot 98cb7aa33aSEmmanuel Vadotrequired: 99cb7aa33aSEmmanuel Vadot - compatible 100cb7aa33aSEmmanuel Vadot - reg 101cb7aa33aSEmmanuel Vadot - clocks 102cb7aa33aSEmmanuel Vadot - clock-names 103cb7aa33aSEmmanuel Vadot 104cb7aa33aSEmmanuel VadotadditionalProperties: false 105cb7aa33aSEmmanuel Vadot 106cb7aa33aSEmmanuel Vadotexamples: 107cb7aa33aSEmmanuel Vadot # minimum TPDM definition. TPDM connect to coresight TPDA. 108cb7aa33aSEmmanuel Vadot - | 109cb7aa33aSEmmanuel Vadot tpdm@684c000 { 110cb7aa33aSEmmanuel Vadot compatible = "qcom,coresight-tpdm", "arm,primecell"; 111cb7aa33aSEmmanuel Vadot reg = <0x0684c000 0x1000>; 112cb7aa33aSEmmanuel Vadot 113*01950c46SEmmanuel Vadot qcom,dsb-element-bits = <32>; 1148d13bc63SEmmanuel Vadot qcom,dsb-msrs-num = <16>; 1158d13bc63SEmmanuel Vadot 116cb7aa33aSEmmanuel Vadot clocks = <&aoss_qmp>; 117cb7aa33aSEmmanuel Vadot clock-names = "apb_pclk"; 118cb7aa33aSEmmanuel Vadot 119cb7aa33aSEmmanuel Vadot out-ports { 120cb7aa33aSEmmanuel Vadot port { 121cb7aa33aSEmmanuel Vadot tpdm_prng_out_tpda_qdss: endpoint { 122cb7aa33aSEmmanuel Vadot remote-endpoint = 123cb7aa33aSEmmanuel Vadot <&tpda_qdss_in_tpdm_prng>; 124cb7aa33aSEmmanuel Vadot }; 125cb7aa33aSEmmanuel Vadot }; 126cb7aa33aSEmmanuel Vadot }; 127cb7aa33aSEmmanuel Vadot }; 128cb7aa33aSEmmanuel Vadot 129*01950c46SEmmanuel Vadot tpdm@6c29000 { 130*01950c46SEmmanuel Vadot compatible = "qcom,coresight-tpdm", "arm,primecell"; 131*01950c46SEmmanuel Vadot reg = <0x06c29000 0x1000>; 132*01950c46SEmmanuel Vadot 133*01950c46SEmmanuel Vadot qcom,cmb-element-bits = <64>; 134*01950c46SEmmanuel Vadot qcom,cmb-msrs-num = <32>; 135*01950c46SEmmanuel Vadot 136*01950c46SEmmanuel Vadot clocks = <&aoss_qmp>; 137*01950c46SEmmanuel Vadot clock-names = "apb_pclk"; 138*01950c46SEmmanuel Vadot 139*01950c46SEmmanuel Vadot out-ports { 140*01950c46SEmmanuel Vadot port { 141*01950c46SEmmanuel Vadot tpdm_ipcc_out_funnel_center: endpoint { 142*01950c46SEmmanuel Vadot remote-endpoint = <&funnel_center_in_tpdm_ipcc>; 143*01950c46SEmmanuel Vadot }; 144*01950c46SEmmanuel Vadot }; 145*01950c46SEmmanuel Vadot }; 146*01950c46SEmmanuel Vadot }; 147cb7aa33aSEmmanuel Vadot... 148