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