xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/soc/ti/ti,pruss.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: |+
8*4882a593Smuzhiyun  TI Programmable Real-Time Unit and Industrial Communication Subsystem
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunmaintainers:
11*4882a593Smuzhiyun  - Suman Anna <s-anna@ti.com>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyundescription: |+
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun  The Programmable Real-Time Unit and Industrial Communication Subsystem
16*4882a593Smuzhiyun  (PRU-ICSS a.k.a. PRUSS) is present on various TI SoCs such as AM335x, AM437x,
17*4882a593Smuzhiyun  Keystone 66AK2G, OMAP-L138/DA850 etc. A PRUSS consists of dual 32-bit RISC
18*4882a593Smuzhiyun  cores (Programmable Real-Time Units, or PRUs), shared RAM, data and
19*4882a593Smuzhiyun  instruction RAMs, some internal peripheral modules to facilitate industrial
20*4882a593Smuzhiyun  communication, and an interrupt controller.
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun  The programmable nature of the PRUs provide flexibility to implement custom
23*4882a593Smuzhiyun  peripheral interfaces, fast real-time responses, or specialized data handling.
24*4882a593Smuzhiyun  The common peripheral modules include the following,
25*4882a593Smuzhiyun    - an Ethernet MII_RT module with two MII ports
26*4882a593Smuzhiyun    - an MDIO port to control external Ethernet PHYs
27*4882a593Smuzhiyun    - an Industrial Ethernet Peripheral (IEP) to manage/generate Industrial
28*4882a593Smuzhiyun      Ethernet functions
29*4882a593Smuzhiyun    - an Enhanced Capture Module (eCAP)
30*4882a593Smuzhiyun    - an Industrial Ethernet Timer with 7/9 capture and 16 compare events
31*4882a593Smuzhiyun    - a 16550-compatible UART to support PROFIBUS
32*4882a593Smuzhiyun    - Enhanced GPIO with async capture and serial support
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun  A PRU-ICSS subsystem can have up to three shared data memories. A PRU core
35*4882a593Smuzhiyun  acts on a primary Data RAM (there are usually 2 Data RAMs) at its address
36*4882a593Smuzhiyun  0x0, but also has access to a secondary Data RAM (primary to the other PRU
37*4882a593Smuzhiyun  core) at its address 0x2000. A shared Data RAM, if present, can be accessed
38*4882a593Smuzhiyun  by both the PRU cores. The Interrupt Controller (INTC) and a CFG module are
39*4882a593Smuzhiyun  common to both the PRU cores. Each PRU core also has a private instruction
40*4882a593Smuzhiyun  RAM, and specific register spaces for Control and Debug functionalities.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun  Various sub-modules within a PRU-ICSS subsystem are represented as individual
43*4882a593Smuzhiyun  nodes and are defined using a parent-child hierarchy depending on their
44*4882a593Smuzhiyun  integration within the IP and the SoC. These nodes are described in the
45*4882a593Smuzhiyun  following sections.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun  PRU-ICSS Node
49*4882a593Smuzhiyun  ==============
50*4882a593Smuzhiyun  Each PRU-ICSS instance is represented as its own node with the individual PRU
51*4882a593Smuzhiyun  processor cores, the memories node, an INTC node and an MDIO node represented
52*4882a593Smuzhiyun  as child nodes within this PRUSS node. This node shall be a child of the
53*4882a593Smuzhiyun  corresponding interconnect bus nodes or target-module nodes.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun  See ../../mfd/syscon.yaml for generic SysCon binding details.
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunproperties:
59*4882a593Smuzhiyun  $nodename:
60*4882a593Smuzhiyun    pattern: "^(pruss|icssg)@[0-9a-f]+$"
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun  compatible:
63*4882a593Smuzhiyun    enum:
64*4882a593Smuzhiyun      - ti,am3356-pruss  # for AM335x SoC family
65*4882a593Smuzhiyun      - ti,am4376-pruss0 # for AM437x SoC family and PRUSS unit 0
66*4882a593Smuzhiyun      - ti,am4376-pruss1 # for AM437x SoC family and PRUSS unit 1
67*4882a593Smuzhiyun      - ti,am5728-pruss  # for AM57xx SoC family
68*4882a593Smuzhiyun      - ti,k2g-pruss     # for 66AK2G SoC family
69*4882a593Smuzhiyun      - ti,am654-icssg   # for K3 AM65x SoC family
70*4882a593Smuzhiyun      - ti,j721e-icssg   # for K3 J721E SoC family
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun  reg:
73*4882a593Smuzhiyun    maxItems: 1
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun  "#address-cells":
76*4882a593Smuzhiyun    const: 1
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun  "#size-cells":
79*4882a593Smuzhiyun    const: 1
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun  ranges:
82*4882a593Smuzhiyun    maxItems: 1
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun  power-domains:
85*4882a593Smuzhiyun    description: |
86*4882a593Smuzhiyun      This property is as per sci-pm-domain.txt.
87*4882a593Smuzhiyun
88*4882a593SmuzhiyunpatternProperties:
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun  memories@[a-f0-9]+$:
91*4882a593Smuzhiyun    description: |
92*4882a593Smuzhiyun      The various Data RAMs within a single PRU-ICSS unit are represented as a
93*4882a593Smuzhiyun      single node with the name 'memories'.
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun    type: object
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun    properties:
98*4882a593Smuzhiyun      reg:
99*4882a593Smuzhiyun        minItems: 2 # On AM437x one of two PRUSS units don't contain Shared RAM.
100*4882a593Smuzhiyun        maxItems: 3
101*4882a593Smuzhiyun        items:
102*4882a593Smuzhiyun          - description: Address and size of the Data RAM0.
103*4882a593Smuzhiyun          - description: Address and size of the Data RAM1.
104*4882a593Smuzhiyun          - description: |
105*4882a593Smuzhiyun              Address and size of the Shared Data RAM. Note that on AM437x one
106*4882a593Smuzhiyun              of two PRUSS units don't contain Shared RAM, while the second one
107*4882a593Smuzhiyun              has it.
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun      reg-names:
110*4882a593Smuzhiyun        minItems: 2
111*4882a593Smuzhiyun        maxItems: 3
112*4882a593Smuzhiyun        items:
113*4882a593Smuzhiyun          - const: dram0
114*4882a593Smuzhiyun          - const: dram1
115*4882a593Smuzhiyun          - const: shrdram2
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun    required:
118*4882a593Smuzhiyun      - reg
119*4882a593Smuzhiyun      - reg-names
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun    additionalProperties: false
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun  cfg@[a-f0-9]+$:
124*4882a593Smuzhiyun    description: |
125*4882a593Smuzhiyun      PRU-ICSS configuration space. CFG sub-module represented as a SysCon.
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun    type: object
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun    properties:
130*4882a593Smuzhiyun      compatible:
131*4882a593Smuzhiyun        items:
132*4882a593Smuzhiyun          - const: ti,pruss-cfg
133*4882a593Smuzhiyun          - const: syscon
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun      "#address-cells":
136*4882a593Smuzhiyun        const: 1
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun      "#size-cells":
139*4882a593Smuzhiyun        const: 1
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun      reg:
142*4882a593Smuzhiyun        maxItems: 1
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun      ranges:
145*4882a593Smuzhiyun        maxItems: 1
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun      clocks:
148*4882a593Smuzhiyun        type: object
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun        properties:
151*4882a593Smuzhiyun          "#address-cells":
152*4882a593Smuzhiyun            const: 1
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun          "#size-cells":
155*4882a593Smuzhiyun            const: 0
156*4882a593Smuzhiyun
157*4882a593Smuzhiyun        patternProperties:
158*4882a593Smuzhiyun          coreclk-mux@[a-f0-9]+$:
159*4882a593Smuzhiyun            description: |
160*4882a593Smuzhiyun              This is applicable only for ICSSG (K3 SoCs). The ICSSG modules
161*4882a593Smuzhiyun              core clock can be set to one of the 2 sources: ICSSG_CORE_CLK or
162*4882a593Smuzhiyun              ICSSG_ICLK.  This node models this clock mux and should have the
163*4882a593Smuzhiyun              name "coreclk-mux".
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun            type: object
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun            properties:
168*4882a593Smuzhiyun              '#clock-cells':
169*4882a593Smuzhiyun                const: 0
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun              clocks:
172*4882a593Smuzhiyun                items:
173*4882a593Smuzhiyun                  - description: ICSSG_CORE Clock
174*4882a593Smuzhiyun                  - description: ICSSG_ICLK Clock
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun              assigned-clocks:
177*4882a593Smuzhiyun                maxItems: 1
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun              assigned-clock-parents:
180*4882a593Smuzhiyun                maxItems: 1
181*4882a593Smuzhiyun                description: |
182*4882a593Smuzhiyun                  Standard assigned-clocks-parents definition used for selecting
183*4882a593Smuzhiyun                  mux parent (one of the mux input).
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun              reg:
186*4882a593Smuzhiyun                maxItems: 1
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun            required:
189*4882a593Smuzhiyun              - clocks
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun            additionalProperties: false
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun          iepclk-mux@[a-f0-9]+$:
194*4882a593Smuzhiyun            description: |
195*4882a593Smuzhiyun              The IEP module can get its clock from 2 sources: ICSSG_IEP_CLK or
196*4882a593Smuzhiyun              CORE_CLK (OCP_CLK in older SoCs). This node models this clock
197*4882a593Smuzhiyun              mux and should have the name "iepclk-mux".
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun            type: object
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun            properties:
202*4882a593Smuzhiyun              '#clock-cells':
203*4882a593Smuzhiyun                const: 0
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun              clocks:
206*4882a593Smuzhiyun                items:
207*4882a593Smuzhiyun                  - description: ICSSG_IEP Clock
208*4882a593Smuzhiyun                  - description: Core Clock (OCP Clock in older SoCs)
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun              assigned-clocks:
211*4882a593Smuzhiyun                maxItems: 1
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun              assigned-clock-parents:
214*4882a593Smuzhiyun                maxItems: 1
215*4882a593Smuzhiyun                description: |
216*4882a593Smuzhiyun                  Standard assigned-clocks-parents definition used for selecting
217*4882a593Smuzhiyun                  mux parent (one of the mux input).
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun              reg:
220*4882a593Smuzhiyun                maxItems: 1
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun            required:
223*4882a593Smuzhiyun              - clocks
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun            additionalProperties: false
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun        additionalProperties: false
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun  iep@[a-f0-9]+$:
230*4882a593Smuzhiyun    description: |
231*4882a593Smuzhiyun      Industrial Ethernet Peripheral to manage/generate Industrial Ethernet
232*4882a593Smuzhiyun      functions such as time stamping. Each PRUSS has either 1 IEP (on AM335x,
233*4882a593Smuzhiyun      AM437x, AM57xx & 66AK2G SoCs) or 2 IEPs (on K3 AM65x & J721E SoCs ). IEP
234*4882a593Smuzhiyun      is used for creating PTP clocks and generating PPS signals.
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun    type: object
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun  mii-rt@[a-f0-9]+$:
239*4882a593Smuzhiyun    description: |
240*4882a593Smuzhiyun      Real-Time Ethernet to support multiple industrial communication protocols.
241*4882a593Smuzhiyun      MII-RT sub-module represented as a SysCon.
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun    type: object
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun    properties:
246*4882a593Smuzhiyun      compatible:
247*4882a593Smuzhiyun        items:
248*4882a593Smuzhiyun          - const: ti,pruss-mii
249*4882a593Smuzhiyun          - const: syscon
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun      reg:
252*4882a593Smuzhiyun        maxItems: 1
253*4882a593Smuzhiyun
254*4882a593Smuzhiyun    additionalProperties: false
255*4882a593Smuzhiyun
256*4882a593Smuzhiyun  mii-g-rt@[a-f0-9]+$:
257*4882a593Smuzhiyun    description: |
258*4882a593Smuzhiyun      The Real-time Media Independent Interface to support multiple industrial
259*4882a593Smuzhiyun      communication protocols (G stands for Gigabit). MII-G-RT sub-module
260*4882a593Smuzhiyun      represented as a SysCon.
261*4882a593Smuzhiyun
262*4882a593Smuzhiyun    type: object
263*4882a593Smuzhiyun
264*4882a593Smuzhiyun    properties:
265*4882a593Smuzhiyun      compatible:
266*4882a593Smuzhiyun        items:
267*4882a593Smuzhiyun          - const: ti,pruss-mii-g
268*4882a593Smuzhiyun          - const: syscon
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun      reg:
271*4882a593Smuzhiyun        maxItems: 1
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun    additionalProperties: false
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun  interrupt-controller@[a-f0-9]+$:
276*4882a593Smuzhiyun    description: |
277*4882a593Smuzhiyun      PRUSS INTC Node. Each PRUSS has a single interrupt controller instance
278*4882a593Smuzhiyun      that is common to all the PRU cores. This should be represented as an
279*4882a593Smuzhiyun      interrupt-controller node.
280*4882a593Smuzhiyun
281*4882a593Smuzhiyun    type: object
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun  mdio@[a-f0-9]+$:
284*4882a593Smuzhiyun    description: |
285*4882a593Smuzhiyun      MDIO Node. Each PRUSS has an MDIO module that can be used to control
286*4882a593Smuzhiyun      external PHYs. The MDIO module used within the PRU-ICSS is an instance of
287*4882a593Smuzhiyun      the MDIO Controller used in TI Davinci SoCs.
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun    allOf:
290*4882a593Smuzhiyun      - $ref: /schemas/net/ti,davinci-mdio.yaml#
291*4882a593Smuzhiyun
292*4882a593Smuzhiyun    type: object
293*4882a593Smuzhiyun
294*4882a593Smuzhiyun  "^(pru|rtu|txpru)@[0-9a-f]+$":
295*4882a593Smuzhiyun    description: |
296*4882a593Smuzhiyun      PRU Node. Each PRUSS has dual PRU cores, each represented as a RemoteProc
297*4882a593Smuzhiyun      device through a PRU child node each. Each node can optionally be rendered
298*4882a593Smuzhiyun      inactive by using the standard DT string property, "status". The ICSSG IP
299*4882a593Smuzhiyun      present on K3 SoCs have additional auxiliary PRU cores with slightly
300*4882a593Smuzhiyun      different IP integration.
301*4882a593Smuzhiyun
302*4882a593Smuzhiyun    type: object
303*4882a593Smuzhiyun
304*4882a593Smuzhiyunrequired:
305*4882a593Smuzhiyun  - compatible
306*4882a593Smuzhiyun  - reg
307*4882a593Smuzhiyun  - ranges
308*4882a593Smuzhiyun
309*4882a593SmuzhiyunadditionalProperties: false
310*4882a593Smuzhiyun
311*4882a593Smuzhiyun# Due to inability of correctly verifying sub-nodes with an @address through
312*4882a593Smuzhiyun# the "required" list, the required sub-nodes below are commented out for now.
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun#required:
315*4882a593Smuzhiyun# - memories
316*4882a593Smuzhiyun# - interrupt-controller
317*4882a593Smuzhiyun# - pru
318*4882a593Smuzhiyun
319*4882a593Smuzhiyunif:
320*4882a593Smuzhiyun  properties:
321*4882a593Smuzhiyun    compatible:
322*4882a593Smuzhiyun      contains:
323*4882a593Smuzhiyun        enum:
324*4882a593Smuzhiyun          - ti,k2g-pruss
325*4882a593Smuzhiyun          - ti,am654-icssg
326*4882a593Smuzhiyun          - ti,j721e-icssg
327*4882a593Smuzhiyunthen:
328*4882a593Smuzhiyun  required:
329*4882a593Smuzhiyun    - power-domains
330*4882a593Smuzhiyun
331*4882a593Smuzhiyunexamples:
332*4882a593Smuzhiyun  - |
333*4882a593Smuzhiyun
334*4882a593Smuzhiyun    /* Example 1 AM33xx PRU-ICSS */
335*4882a593Smuzhiyun    pruss: pruss@0 {
336*4882a593Smuzhiyun        compatible = "ti,am3356-pruss";
337*4882a593Smuzhiyun        reg = <0x0 0x80000>;
338*4882a593Smuzhiyun        #address-cells = <1>;
339*4882a593Smuzhiyun        #size-cells = <1>;
340*4882a593Smuzhiyun        ranges;
341*4882a593Smuzhiyun
342*4882a593Smuzhiyun        pruss_mem: memories@0 {
343*4882a593Smuzhiyun            reg = <0x0 0x2000>,
344*4882a593Smuzhiyun                  <0x2000 0x2000>,
345*4882a593Smuzhiyun                  <0x10000 0x3000>;
346*4882a593Smuzhiyun            reg-names = "dram0", "dram1", "shrdram2";
347*4882a593Smuzhiyun        };
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun        pruss_cfg: cfg@26000 {
350*4882a593Smuzhiyun            compatible = "ti,pruss-cfg", "syscon";
351*4882a593Smuzhiyun            #address-cells = <1>;
352*4882a593Smuzhiyun            #size-cells = <1>;
353*4882a593Smuzhiyun            reg = <0x26000 0x2000>;
354*4882a593Smuzhiyun            ranges = <0x00 0x26000 0x2000>;
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun            clocks {
357*4882a593Smuzhiyun                #address-cells = <1>;
358*4882a593Smuzhiyun                #size-cells = <0>;
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun                pruss_iepclk_mux: iepclk-mux@30 {
361*4882a593Smuzhiyun                    reg = <0x30>;
362*4882a593Smuzhiyun                    #clock-cells = <0>;
363*4882a593Smuzhiyun                    clocks = <&l3_gclk>,        /* icss_iep */
364*4882a593Smuzhiyun                             <&pruss_ocp_gclk>; /* icss_ocp */
365*4882a593Smuzhiyun                };
366*4882a593Smuzhiyun            };
367*4882a593Smuzhiyun        };
368*4882a593Smuzhiyun
369*4882a593Smuzhiyun        pruss_mii_rt: mii-rt@32000 {
370*4882a593Smuzhiyun            compatible = "ti,pruss-mii", "syscon";
371*4882a593Smuzhiyun            reg = <0x32000 0x58>;
372*4882a593Smuzhiyun        };
373*4882a593Smuzhiyun
374*4882a593Smuzhiyun        pruss_mdio: mdio@32400 {
375*4882a593Smuzhiyun            compatible = "ti,davinci_mdio";
376*4882a593Smuzhiyun            reg = <0x32400 0x90>;
377*4882a593Smuzhiyun            clocks = <&dpll_core_m4_ck>;
378*4882a593Smuzhiyun            clock-names = "fck";
379*4882a593Smuzhiyun            bus_freq = <1000000>;
380*4882a593Smuzhiyun            #address-cells = <1>;
381*4882a593Smuzhiyun            #size-cells = <0>;
382*4882a593Smuzhiyun        };
383*4882a593Smuzhiyun    };
384*4882a593Smuzhiyun
385*4882a593Smuzhiyun  - |
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun    /* Example 2 AM43xx PRU-ICSS with PRUSS1 node */
388*4882a593Smuzhiyun    #include <dt-bindings/interrupt-controller/arm-gic.h>
389*4882a593Smuzhiyun    pruss1: pruss@0 {
390*4882a593Smuzhiyun        compatible = "ti,am4376-pruss1";
391*4882a593Smuzhiyun        reg = <0x0 0x40000>;
392*4882a593Smuzhiyun        #address-cells = <1>;
393*4882a593Smuzhiyun        #size-cells = <1>;
394*4882a593Smuzhiyun        ranges;
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun        pruss1_mem: memories@0 {
397*4882a593Smuzhiyun            reg = <0x0 0x2000>,
398*4882a593Smuzhiyun                  <0x2000 0x2000>,
399*4882a593Smuzhiyun                  <0x10000 0x8000>;
400*4882a593Smuzhiyun            reg-names = "dram0", "dram1", "shrdram2";
401*4882a593Smuzhiyun        };
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun        pruss1_cfg: cfg@26000 {
404*4882a593Smuzhiyun            compatible = "ti,pruss-cfg", "syscon";
405*4882a593Smuzhiyun            #address-cells = <1>;
406*4882a593Smuzhiyun            #size-cells = <1>;
407*4882a593Smuzhiyun            reg = <0x26000 0x2000>;
408*4882a593Smuzhiyun            ranges = <0x00 0x26000 0x2000>;
409*4882a593Smuzhiyun
410*4882a593Smuzhiyun            clocks {
411*4882a593Smuzhiyun                #address-cells = <1>;
412*4882a593Smuzhiyun                #size-cells = <0>;
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun                pruss1_iepclk_mux: iepclk-mux@30 {
415*4882a593Smuzhiyun                    reg = <0x30>;
416*4882a593Smuzhiyun                    #clock-cells = <0>;
417*4882a593Smuzhiyun                    clocks = <&sysclk_div>,     /* icss_iep */
418*4882a593Smuzhiyun                             <&pruss_ocp_gclk>; /* icss_ocp */
419*4882a593Smuzhiyun                };
420*4882a593Smuzhiyun            };
421*4882a593Smuzhiyun        };
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun        pruss1_mii_rt: mii-rt@32000 {
424*4882a593Smuzhiyun            compatible = "ti,pruss-mii", "syscon";
425*4882a593Smuzhiyun            reg = <0x32000 0x58>;
426*4882a593Smuzhiyun        };
427*4882a593Smuzhiyun
428*4882a593Smuzhiyun        pruss1_mdio: mdio@32400 {
429*4882a593Smuzhiyun            compatible = "ti,davinci_mdio";
430*4882a593Smuzhiyun            reg = <0x32400 0x90>;
431*4882a593Smuzhiyun            clocks = <&dpll_core_m4_ck>;
432*4882a593Smuzhiyun            clock-names = "fck";
433*4882a593Smuzhiyun            bus_freq = <1000000>;
434*4882a593Smuzhiyun            #address-cells = <1>;
435*4882a593Smuzhiyun            #size-cells = <0>;
436*4882a593Smuzhiyun        };
437*4882a593Smuzhiyun    };
438*4882a593Smuzhiyun
439*4882a593Smuzhiyun...
440