1# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause 2# Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 3%YAML 1.2 4--- 5$id: http://devicetree.org/schemas/arm/qcom,coresight-tpda.yaml# 6$schema: http://devicetree.org/meta-schemas/core.yaml# 7 8title: Trace, Profiling and Diagnostics Aggregator - TPDA 9 10description: | 11 TPDAs are responsible for packetization and timestamping of data sets 12 utilizing the MIPI STPv2 packet protocol. Pulling data sets from one or 13 more attached TPDM and pushing the resultant (packetized) data out a 14 master ATB interface. Performing an arbitrated ATB interleaving (funneling) 15 task for free-flowing data from TPDM (i.e. CMB and DSB data set flows). 16 17 There is no strict binding between TPDM and TPDA. TPDA can have multiple 18 TPDMs connect to it. But There must be only one TPDA in the path from the 19 TPDM source to TMC sink. TPDM can directly connect to TPDA's inport or 20 connect to funnel which will connect to TPDA's inport. 21 22 We can use the commands are similar to the below to validate TPDMs. 23 Enable coresight sink first. 24 25 echo 1 > /sys/bus/coresight/devices/tmc_etf0/enable_sink 26 echo 1 > /sys/bus/coresight/devices/tpdm0/enable_source 27 echo 1 > /sys/bus/coresight/devices/tpdm0/integration_test 28 echo 2 > /sys/bus/coresight/devices/tpdm0/integration_test 29 30 The test data will be collected in the coresight sink which is enabled. 31 If rwp register of the sink is keeping updating when do integration_test 32 (by cat tmc_etf0/mgmt/rwp), it means there is data generated from TPDM 33 to sink. 34 35maintainers: 36 - Mao Jinlong <quic_jinlmao@quicinc.com> 37 - Tao Zhang <quic_taozha@quicinc.com> 38 39# Need a custom select here or 'arm,primecell' will match on lots of nodes 40select: 41 properties: 42 compatible: 43 contains: 44 enum: 45 - qcom,coresight-tpda 46 required: 47 - compatible 48 49properties: 50 $nodename: 51 pattern: "^tpda(@[0-9a-f]+)$" 52 compatible: 53 items: 54 - const: qcom,coresight-tpda 55 - const: arm,primecell 56 57 reg: 58 minItems: 1 59 maxItems: 2 60 61 clocks: 62 maxItems: 1 63 64 clock-names: 65 items: 66 - const: apb_pclk 67 68 in-ports: 69 type: object 70 description: | 71 Input connections from TPDM to TPDA 72 $ref: /schemas/graph.yaml#/properties/ports 73 74 out-ports: 75 type: object 76 description: | 77 Output connections from the TPDA to legacy CoreSight trace bus. 78 $ref: /schemas/graph.yaml#/properties/ports 79 80 properties: 81 port: 82 description: 83 Output connection from the TPDA to legacy CoreSight Trace bus. 84 $ref: /schemas/graph.yaml#/properties/port 85 86required: 87 - compatible 88 - reg 89 - clocks 90 - clock-names 91 - in-ports 92 - out-ports 93 94additionalProperties: false 95 96examples: 97 # minimum tpda definition. 98 - | 99 tpda@6004000 { 100 compatible = "qcom,coresight-tpda", "arm,primecell"; 101 reg = <0x6004000 0x1000>; 102 103 clocks = <&aoss_qmp>; 104 clock-names = "apb_pclk"; 105 106 in-ports { 107 #address-cells = <1>; 108 #size-cells = <0>; 109 110 port@0 { 111 reg = <0>; 112 tpda_qdss_0_in_tpdm_dcc: endpoint { 113 remote-endpoint = 114 <&tpdm_dcc_out_tpda_qdss_0>; 115 }; 116 }; 117 }; 118 119 out-ports { 120 port { 121 tpda_qdss_out_funnel_in0: endpoint { 122 remote-endpoint = 123 <&funnel_in0_in_tpda_qdss>; 124 }; 125 }; 126 }; 127 }; 128 129... 130