1*8ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8ccc0d23SEmmanuel Vadot%YAML 1.2 3*8ccc0d23SEmmanuel Vadot--- 4*8ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/arm/qcom,coresight-ctcu.yaml# 5*8ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8ccc0d23SEmmanuel Vadot 7*8ccc0d23SEmmanuel Vadottitle: CoreSight TMC Control Unit 8*8ccc0d23SEmmanuel Vadot 9*8ccc0d23SEmmanuel Vadotmaintainers: 10*8ccc0d23SEmmanuel Vadot - Yuanfang Zhang <quic_yuanfang@quicinc.com> 11*8ccc0d23SEmmanuel Vadot - Mao Jinlong <quic_jinlmao@quicinc.com> 12*8ccc0d23SEmmanuel Vadot - Jie Gan <quic_jiegan@quicinc.com> 13*8ccc0d23SEmmanuel Vadot 14*8ccc0d23SEmmanuel Vadotdescription: | 15*8ccc0d23SEmmanuel Vadot The Trace Memory Controller(TMC) is used for Embedded Trace Buffer(ETB), 16*8ccc0d23SEmmanuel Vadot Embedded Trace FIFO(ETF) and Embedded Trace Router(ETR) configurations. 17*8ccc0d23SEmmanuel Vadot The configuration mode (ETB, ETF, ETR) is discovered at boot time when 18*8ccc0d23SEmmanuel Vadot the device is probed. 19*8ccc0d23SEmmanuel Vadot 20*8ccc0d23SEmmanuel Vadot The Coresight TMC Control unit controls various Coresight behaviors. 21*8ccc0d23SEmmanuel Vadot It works as a helper device when connected to TMC ETR device. 22*8ccc0d23SEmmanuel Vadot It is responsible for controlling the data filter function based on 23*8ccc0d23SEmmanuel Vadot the source device's Trace ID for TMC ETR device. The trace data with 24*8ccc0d23SEmmanuel Vadot that Trace id can get into ETR's buffer while other trace data gets 25*8ccc0d23SEmmanuel Vadot ignored. 26*8ccc0d23SEmmanuel Vadot 27*8ccc0d23SEmmanuel Vadotproperties: 28*8ccc0d23SEmmanuel Vadot compatible: 29*8ccc0d23SEmmanuel Vadot enum: 30*8ccc0d23SEmmanuel Vadot - qcom,sa8775p-ctcu 31*8ccc0d23SEmmanuel Vadot 32*8ccc0d23SEmmanuel Vadot reg: 33*8ccc0d23SEmmanuel Vadot maxItems: 1 34*8ccc0d23SEmmanuel Vadot 35*8ccc0d23SEmmanuel Vadot clocks: 36*8ccc0d23SEmmanuel Vadot maxItems: 1 37*8ccc0d23SEmmanuel Vadot 38*8ccc0d23SEmmanuel Vadot clock-names: 39*8ccc0d23SEmmanuel Vadot items: 40*8ccc0d23SEmmanuel Vadot - const: apb 41*8ccc0d23SEmmanuel Vadot 42*8ccc0d23SEmmanuel Vadot in-ports: 43*8ccc0d23SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 44*8ccc0d23SEmmanuel Vadot 45*8ccc0d23SEmmanuel Vadot patternProperties: 46*8ccc0d23SEmmanuel Vadot '^port(@[0-1])?$': 47*8ccc0d23SEmmanuel Vadot description: Input connections from CoreSight Trace bus 48*8ccc0d23SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 49*8ccc0d23SEmmanuel Vadot 50*8ccc0d23SEmmanuel Vadotrequired: 51*8ccc0d23SEmmanuel Vadot - compatible 52*8ccc0d23SEmmanuel Vadot - reg 53*8ccc0d23SEmmanuel Vadot - in-ports 54*8ccc0d23SEmmanuel Vadot 55*8ccc0d23SEmmanuel VadotadditionalProperties: false 56*8ccc0d23SEmmanuel Vadot 57*8ccc0d23SEmmanuel Vadotexamples: 58*8ccc0d23SEmmanuel Vadot - | 59*8ccc0d23SEmmanuel Vadot ctcu@1001000 { 60*8ccc0d23SEmmanuel Vadot compatible = "qcom,sa8775p-ctcu"; 61*8ccc0d23SEmmanuel Vadot reg = <0x1001000 0x1000>; 62*8ccc0d23SEmmanuel Vadot 63*8ccc0d23SEmmanuel Vadot clocks = <&aoss_qmp>; 64*8ccc0d23SEmmanuel Vadot clock-names = "apb"; 65*8ccc0d23SEmmanuel Vadot 66*8ccc0d23SEmmanuel Vadot in-ports { 67*8ccc0d23SEmmanuel Vadot #address-cells = <1>; 68*8ccc0d23SEmmanuel Vadot #size-cells = <0>; 69*8ccc0d23SEmmanuel Vadot 70*8ccc0d23SEmmanuel Vadot port@0 { 71*8ccc0d23SEmmanuel Vadot reg = <0>; 72*8ccc0d23SEmmanuel Vadot ctcu_in_port0: endpoint { 73*8ccc0d23SEmmanuel Vadot remote-endpoint = <&etr0_out_port>; 74*8ccc0d23SEmmanuel Vadot }; 75*8ccc0d23SEmmanuel Vadot }; 76*8ccc0d23SEmmanuel Vadot 77*8ccc0d23SEmmanuel Vadot port@1 { 78*8ccc0d23SEmmanuel Vadot reg = <1>; 79*8ccc0d23SEmmanuel Vadot ctcu_in_port1: endpoint { 80*8ccc0d23SEmmanuel Vadot remote-endpoint = <&etr1_out_port>; 81*8ccc0d23SEmmanuel Vadot }; 82*8ccc0d23SEmmanuel Vadot }; 83*8ccc0d23SEmmanuel Vadot }; 84*8ccc0d23SEmmanuel Vadot }; 85