18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/soc/ti/ti,pruss.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: |+ 88c2ecf20Sopenharmony_ci TI Programmable Real-Time Unit and Industrial Communication Subsystem 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_cimaintainers: 118c2ecf20Sopenharmony_ci - Suman Anna <s-anna@ti.com> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cidescription: |+ 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci The Programmable Real-Time Unit and Industrial Communication Subsystem 168c2ecf20Sopenharmony_ci (PRU-ICSS a.k.a. PRUSS) is present on various TI SoCs such as AM335x, AM437x, 178c2ecf20Sopenharmony_ci Keystone 66AK2G, OMAP-L138/DA850 etc. A PRUSS consists of dual 32-bit RISC 188c2ecf20Sopenharmony_ci cores (Programmable Real-Time Units, or PRUs), shared RAM, data and 198c2ecf20Sopenharmony_ci instruction RAMs, some internal peripheral modules to facilitate industrial 208c2ecf20Sopenharmony_ci communication, and an interrupt controller. 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci The programmable nature of the PRUs provide flexibility to implement custom 238c2ecf20Sopenharmony_ci peripheral interfaces, fast real-time responses, or specialized data handling. 248c2ecf20Sopenharmony_ci The common peripheral modules include the following, 258c2ecf20Sopenharmony_ci - an Ethernet MII_RT module with two MII ports 268c2ecf20Sopenharmony_ci - an MDIO port to control external Ethernet PHYs 278c2ecf20Sopenharmony_ci - an Industrial Ethernet Peripheral (IEP) to manage/generate Industrial 288c2ecf20Sopenharmony_ci Ethernet functions 298c2ecf20Sopenharmony_ci - an Enhanced Capture Module (eCAP) 308c2ecf20Sopenharmony_ci - an Industrial Ethernet Timer with 7/9 capture and 16 compare events 318c2ecf20Sopenharmony_ci - a 16550-compatible UART to support PROFIBUS 328c2ecf20Sopenharmony_ci - Enhanced GPIO with async capture and serial support 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci A PRU-ICSS subsystem can have up to three shared data memories. A PRU core 358c2ecf20Sopenharmony_ci acts on a primary Data RAM (there are usually 2 Data RAMs) at its address 368c2ecf20Sopenharmony_ci 0x0, but also has access to a secondary Data RAM (primary to the other PRU 378c2ecf20Sopenharmony_ci core) at its address 0x2000. A shared Data RAM, if present, can be accessed 388c2ecf20Sopenharmony_ci by both the PRU cores. The Interrupt Controller (INTC) and a CFG module are 398c2ecf20Sopenharmony_ci common to both the PRU cores. Each PRU core also has a private instruction 408c2ecf20Sopenharmony_ci RAM, and specific register spaces for Control and Debug functionalities. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci Various sub-modules within a PRU-ICSS subsystem are represented as individual 438c2ecf20Sopenharmony_ci nodes and are defined using a parent-child hierarchy depending on their 448c2ecf20Sopenharmony_ci integration within the IP and the SoC. These nodes are described in the 458c2ecf20Sopenharmony_ci following sections. 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci PRU-ICSS Node 498c2ecf20Sopenharmony_ci ============== 508c2ecf20Sopenharmony_ci Each PRU-ICSS instance is represented as its own node with the individual PRU 518c2ecf20Sopenharmony_ci processor cores, the memories node, an INTC node and an MDIO node represented 528c2ecf20Sopenharmony_ci as child nodes within this PRUSS node. This node shall be a child of the 538c2ecf20Sopenharmony_ci corresponding interconnect bus nodes or target-module nodes. 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci See ../../mfd/syscon.yaml for generic SysCon binding details. 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciproperties: 598c2ecf20Sopenharmony_ci $nodename: 608c2ecf20Sopenharmony_ci pattern: "^(pruss|icssg)@[0-9a-f]+$" 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci compatible: 638c2ecf20Sopenharmony_ci enum: 648c2ecf20Sopenharmony_ci - ti,am3356-pruss # for AM335x SoC family 658c2ecf20Sopenharmony_ci - ti,am4376-pruss0 # for AM437x SoC family and PRUSS unit 0 668c2ecf20Sopenharmony_ci - ti,am4376-pruss1 # for AM437x SoC family and PRUSS unit 1 678c2ecf20Sopenharmony_ci - ti,am5728-pruss # for AM57xx SoC family 688c2ecf20Sopenharmony_ci - ti,k2g-pruss # for 66AK2G SoC family 698c2ecf20Sopenharmony_ci - ti,am654-icssg # for K3 AM65x SoC family 708c2ecf20Sopenharmony_ci - ti,j721e-icssg # for K3 J721E SoC family 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci reg: 738c2ecf20Sopenharmony_ci maxItems: 1 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci "#address-cells": 768c2ecf20Sopenharmony_ci const: 1 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci "#size-cells": 798c2ecf20Sopenharmony_ci const: 1 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci ranges: 828c2ecf20Sopenharmony_ci maxItems: 1 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci power-domains: 858c2ecf20Sopenharmony_ci description: | 868c2ecf20Sopenharmony_ci This property is as per sci-pm-domain.txt. 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_cipatternProperties: 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ci memories@[a-f0-9]+$: 918c2ecf20Sopenharmony_ci description: | 928c2ecf20Sopenharmony_ci The various Data RAMs within a single PRU-ICSS unit are represented as a 938c2ecf20Sopenharmony_ci single node with the name 'memories'. 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci type: object 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci properties: 988c2ecf20Sopenharmony_ci reg: 998c2ecf20Sopenharmony_ci minItems: 2 # On AM437x one of two PRUSS units don't contain Shared RAM. 1008c2ecf20Sopenharmony_ci maxItems: 3 1018c2ecf20Sopenharmony_ci items: 1028c2ecf20Sopenharmony_ci - description: Address and size of the Data RAM0. 1038c2ecf20Sopenharmony_ci - description: Address and size of the Data RAM1. 1048c2ecf20Sopenharmony_ci - description: | 1058c2ecf20Sopenharmony_ci Address and size of the Shared Data RAM. Note that on AM437x one 1068c2ecf20Sopenharmony_ci of two PRUSS units don't contain Shared RAM, while the second one 1078c2ecf20Sopenharmony_ci has it. 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ci reg-names: 1108c2ecf20Sopenharmony_ci minItems: 2 1118c2ecf20Sopenharmony_ci maxItems: 3 1128c2ecf20Sopenharmony_ci items: 1138c2ecf20Sopenharmony_ci - const: dram0 1148c2ecf20Sopenharmony_ci - const: dram1 1158c2ecf20Sopenharmony_ci - const: shrdram2 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci required: 1188c2ecf20Sopenharmony_ci - reg 1198c2ecf20Sopenharmony_ci - reg-names 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci additionalProperties: false 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci cfg@[a-f0-9]+$: 1248c2ecf20Sopenharmony_ci description: | 1258c2ecf20Sopenharmony_ci PRU-ICSS configuration space. CFG sub-module represented as a SysCon. 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci type: object 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci properties: 1308c2ecf20Sopenharmony_ci compatible: 1318c2ecf20Sopenharmony_ci items: 1328c2ecf20Sopenharmony_ci - const: ti,pruss-cfg 1338c2ecf20Sopenharmony_ci - const: syscon 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci "#address-cells": 1368c2ecf20Sopenharmony_ci const: 1 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci "#size-cells": 1398c2ecf20Sopenharmony_ci const: 1 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci reg: 1428c2ecf20Sopenharmony_ci maxItems: 1 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci ranges: 1458c2ecf20Sopenharmony_ci maxItems: 1 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ci clocks: 1488c2ecf20Sopenharmony_ci type: object 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci properties: 1518c2ecf20Sopenharmony_ci "#address-cells": 1528c2ecf20Sopenharmony_ci const: 1 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci "#size-cells": 1558c2ecf20Sopenharmony_ci const: 0 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci patternProperties: 1588c2ecf20Sopenharmony_ci coreclk-mux@[a-f0-9]+$: 1598c2ecf20Sopenharmony_ci description: | 1608c2ecf20Sopenharmony_ci This is applicable only for ICSSG (K3 SoCs). The ICSSG modules 1618c2ecf20Sopenharmony_ci core clock can be set to one of the 2 sources: ICSSG_CORE_CLK or 1628c2ecf20Sopenharmony_ci ICSSG_ICLK. This node models this clock mux and should have the 1638c2ecf20Sopenharmony_ci name "coreclk-mux". 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci type: object 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci properties: 1688c2ecf20Sopenharmony_ci '#clock-cells': 1698c2ecf20Sopenharmony_ci const: 0 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci clocks: 1728c2ecf20Sopenharmony_ci items: 1738c2ecf20Sopenharmony_ci - description: ICSSG_CORE Clock 1748c2ecf20Sopenharmony_ci - description: ICSSG_ICLK Clock 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci assigned-clocks: 1778c2ecf20Sopenharmony_ci maxItems: 1 1788c2ecf20Sopenharmony_ci 1798c2ecf20Sopenharmony_ci assigned-clock-parents: 1808c2ecf20Sopenharmony_ci maxItems: 1 1818c2ecf20Sopenharmony_ci description: | 1828c2ecf20Sopenharmony_ci Standard assigned-clocks-parents definition used for selecting 1838c2ecf20Sopenharmony_ci mux parent (one of the mux input). 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci reg: 1868c2ecf20Sopenharmony_ci maxItems: 1 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci required: 1898c2ecf20Sopenharmony_ci - clocks 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci additionalProperties: false 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci iepclk-mux@[a-f0-9]+$: 1948c2ecf20Sopenharmony_ci description: | 1958c2ecf20Sopenharmony_ci The IEP module can get its clock from 2 sources: ICSSG_IEP_CLK or 1968c2ecf20Sopenharmony_ci CORE_CLK (OCP_CLK in older SoCs). This node models this clock 1978c2ecf20Sopenharmony_ci mux and should have the name "iepclk-mux". 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci type: object 2008c2ecf20Sopenharmony_ci 2018c2ecf20Sopenharmony_ci properties: 2028c2ecf20Sopenharmony_ci '#clock-cells': 2038c2ecf20Sopenharmony_ci const: 0 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci clocks: 2068c2ecf20Sopenharmony_ci items: 2078c2ecf20Sopenharmony_ci - description: ICSSG_IEP Clock 2088c2ecf20Sopenharmony_ci - description: Core Clock (OCP Clock in older SoCs) 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ci assigned-clocks: 2118c2ecf20Sopenharmony_ci maxItems: 1 2128c2ecf20Sopenharmony_ci 2138c2ecf20Sopenharmony_ci assigned-clock-parents: 2148c2ecf20Sopenharmony_ci maxItems: 1 2158c2ecf20Sopenharmony_ci description: | 2168c2ecf20Sopenharmony_ci Standard assigned-clocks-parents definition used for selecting 2178c2ecf20Sopenharmony_ci mux parent (one of the mux input). 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci reg: 2208c2ecf20Sopenharmony_ci maxItems: 1 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci required: 2238c2ecf20Sopenharmony_ci - clocks 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci additionalProperties: false 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_ci additionalProperties: false 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_ci iep@[a-f0-9]+$: 2308c2ecf20Sopenharmony_ci description: | 2318c2ecf20Sopenharmony_ci Industrial Ethernet Peripheral to manage/generate Industrial Ethernet 2328c2ecf20Sopenharmony_ci functions such as time stamping. Each PRUSS has either 1 IEP (on AM335x, 2338c2ecf20Sopenharmony_ci AM437x, AM57xx & 66AK2G SoCs) or 2 IEPs (on K3 AM65x & J721E SoCs ). IEP 2348c2ecf20Sopenharmony_ci is used for creating PTP clocks and generating PPS signals. 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci type: object 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ci mii-rt@[a-f0-9]+$: 2398c2ecf20Sopenharmony_ci description: | 2408c2ecf20Sopenharmony_ci Real-Time Ethernet to support multiple industrial communication protocols. 2418c2ecf20Sopenharmony_ci MII-RT sub-module represented as a SysCon. 2428c2ecf20Sopenharmony_ci 2438c2ecf20Sopenharmony_ci type: object 2448c2ecf20Sopenharmony_ci 2458c2ecf20Sopenharmony_ci properties: 2468c2ecf20Sopenharmony_ci compatible: 2478c2ecf20Sopenharmony_ci items: 2488c2ecf20Sopenharmony_ci - const: ti,pruss-mii 2498c2ecf20Sopenharmony_ci - const: syscon 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci reg: 2528c2ecf20Sopenharmony_ci maxItems: 1 2538c2ecf20Sopenharmony_ci 2548c2ecf20Sopenharmony_ci additionalProperties: false 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ci mii-g-rt@[a-f0-9]+$: 2578c2ecf20Sopenharmony_ci description: | 2588c2ecf20Sopenharmony_ci The Real-time Media Independent Interface to support multiple industrial 2598c2ecf20Sopenharmony_ci communication protocols (G stands for Gigabit). MII-G-RT sub-module 2608c2ecf20Sopenharmony_ci represented as a SysCon. 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ci type: object 2638c2ecf20Sopenharmony_ci 2648c2ecf20Sopenharmony_ci properties: 2658c2ecf20Sopenharmony_ci compatible: 2668c2ecf20Sopenharmony_ci items: 2678c2ecf20Sopenharmony_ci - const: ti,pruss-mii-g 2688c2ecf20Sopenharmony_ci - const: syscon 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ci reg: 2718c2ecf20Sopenharmony_ci maxItems: 1 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci additionalProperties: false 2748c2ecf20Sopenharmony_ci 2758c2ecf20Sopenharmony_ci interrupt-controller@[a-f0-9]+$: 2768c2ecf20Sopenharmony_ci description: | 2778c2ecf20Sopenharmony_ci PRUSS INTC Node. Each PRUSS has a single interrupt controller instance 2788c2ecf20Sopenharmony_ci that is common to all the PRU cores. This should be represented as an 2798c2ecf20Sopenharmony_ci interrupt-controller node. 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci type: object 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ci mdio@[a-f0-9]+$: 2848c2ecf20Sopenharmony_ci description: | 2858c2ecf20Sopenharmony_ci MDIO Node. Each PRUSS has an MDIO module that can be used to control 2868c2ecf20Sopenharmony_ci external PHYs. The MDIO module used within the PRU-ICSS is an instance of 2878c2ecf20Sopenharmony_ci the MDIO Controller used in TI Davinci SoCs. 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci allOf: 2908c2ecf20Sopenharmony_ci - $ref: /schemas/net/ti,davinci-mdio.yaml# 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ci type: object 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci "^(pru|rtu|txpru)@[0-9a-f]+$": 2958c2ecf20Sopenharmony_ci description: | 2968c2ecf20Sopenharmony_ci PRU Node. Each PRUSS has dual PRU cores, each represented as a RemoteProc 2978c2ecf20Sopenharmony_ci device through a PRU child node each. Each node can optionally be rendered 2988c2ecf20Sopenharmony_ci inactive by using the standard DT string property, "status". The ICSSG IP 2998c2ecf20Sopenharmony_ci present on K3 SoCs have additional auxiliary PRU cores with slightly 3008c2ecf20Sopenharmony_ci different IP integration. 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_ci type: object 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_cirequired: 3058c2ecf20Sopenharmony_ci - compatible 3068c2ecf20Sopenharmony_ci - reg 3078c2ecf20Sopenharmony_ci - ranges 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ciadditionalProperties: false 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci# Due to inability of correctly verifying sub-nodes with an @address through 3128c2ecf20Sopenharmony_ci# the "required" list, the required sub-nodes below are commented out for now. 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ci#required: 3158c2ecf20Sopenharmony_ci# - memories 3168c2ecf20Sopenharmony_ci# - interrupt-controller 3178c2ecf20Sopenharmony_ci# - pru 3188c2ecf20Sopenharmony_ci 3198c2ecf20Sopenharmony_ciif: 3208c2ecf20Sopenharmony_ci properties: 3218c2ecf20Sopenharmony_ci compatible: 3228c2ecf20Sopenharmony_ci contains: 3238c2ecf20Sopenharmony_ci enum: 3248c2ecf20Sopenharmony_ci - ti,k2g-pruss 3258c2ecf20Sopenharmony_ci - ti,am654-icssg 3268c2ecf20Sopenharmony_ci - ti,j721e-icssg 3278c2ecf20Sopenharmony_cithen: 3288c2ecf20Sopenharmony_ci required: 3298c2ecf20Sopenharmony_ci - power-domains 3308c2ecf20Sopenharmony_ci 3318c2ecf20Sopenharmony_ciexamples: 3328c2ecf20Sopenharmony_ci - | 3338c2ecf20Sopenharmony_ci 3348c2ecf20Sopenharmony_ci /* Example 1 AM33xx PRU-ICSS */ 3358c2ecf20Sopenharmony_ci pruss: pruss@0 { 3368c2ecf20Sopenharmony_ci compatible = "ti,am3356-pruss"; 3378c2ecf20Sopenharmony_ci reg = <0x0 0x80000>; 3388c2ecf20Sopenharmony_ci #address-cells = <1>; 3398c2ecf20Sopenharmony_ci #size-cells = <1>; 3408c2ecf20Sopenharmony_ci ranges; 3418c2ecf20Sopenharmony_ci 3428c2ecf20Sopenharmony_ci pruss_mem: memories@0 { 3438c2ecf20Sopenharmony_ci reg = <0x0 0x2000>, 3448c2ecf20Sopenharmony_ci <0x2000 0x2000>, 3458c2ecf20Sopenharmony_ci <0x10000 0x3000>; 3468c2ecf20Sopenharmony_ci reg-names = "dram0", "dram1", "shrdram2"; 3478c2ecf20Sopenharmony_ci }; 3488c2ecf20Sopenharmony_ci 3498c2ecf20Sopenharmony_ci pruss_cfg: cfg@26000 { 3508c2ecf20Sopenharmony_ci compatible = "ti,pruss-cfg", "syscon"; 3518c2ecf20Sopenharmony_ci #address-cells = <1>; 3528c2ecf20Sopenharmony_ci #size-cells = <1>; 3538c2ecf20Sopenharmony_ci reg = <0x26000 0x2000>; 3548c2ecf20Sopenharmony_ci ranges = <0x00 0x26000 0x2000>; 3558c2ecf20Sopenharmony_ci 3568c2ecf20Sopenharmony_ci clocks { 3578c2ecf20Sopenharmony_ci #address-cells = <1>; 3588c2ecf20Sopenharmony_ci #size-cells = <0>; 3598c2ecf20Sopenharmony_ci 3608c2ecf20Sopenharmony_ci pruss_iepclk_mux: iepclk-mux@30 { 3618c2ecf20Sopenharmony_ci reg = <0x30>; 3628c2ecf20Sopenharmony_ci #clock-cells = <0>; 3638c2ecf20Sopenharmony_ci clocks = <&l3_gclk>, /* icss_iep */ 3648c2ecf20Sopenharmony_ci <&pruss_ocp_gclk>; /* icss_ocp */ 3658c2ecf20Sopenharmony_ci }; 3668c2ecf20Sopenharmony_ci }; 3678c2ecf20Sopenharmony_ci }; 3688c2ecf20Sopenharmony_ci 3698c2ecf20Sopenharmony_ci pruss_mii_rt: mii-rt@32000 { 3708c2ecf20Sopenharmony_ci compatible = "ti,pruss-mii", "syscon"; 3718c2ecf20Sopenharmony_ci reg = <0x32000 0x58>; 3728c2ecf20Sopenharmony_ci }; 3738c2ecf20Sopenharmony_ci 3748c2ecf20Sopenharmony_ci pruss_mdio: mdio@32400 { 3758c2ecf20Sopenharmony_ci compatible = "ti,davinci_mdio"; 3768c2ecf20Sopenharmony_ci reg = <0x32400 0x90>; 3778c2ecf20Sopenharmony_ci clocks = <&dpll_core_m4_ck>; 3788c2ecf20Sopenharmony_ci clock-names = "fck"; 3798c2ecf20Sopenharmony_ci bus_freq = <1000000>; 3808c2ecf20Sopenharmony_ci #address-cells = <1>; 3818c2ecf20Sopenharmony_ci #size-cells = <0>; 3828c2ecf20Sopenharmony_ci }; 3838c2ecf20Sopenharmony_ci }; 3848c2ecf20Sopenharmony_ci 3858c2ecf20Sopenharmony_ci - | 3868c2ecf20Sopenharmony_ci 3878c2ecf20Sopenharmony_ci /* Example 2 AM43xx PRU-ICSS with PRUSS1 node */ 3888c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 3898c2ecf20Sopenharmony_ci pruss1: pruss@0 { 3908c2ecf20Sopenharmony_ci compatible = "ti,am4376-pruss1"; 3918c2ecf20Sopenharmony_ci reg = <0x0 0x40000>; 3928c2ecf20Sopenharmony_ci #address-cells = <1>; 3938c2ecf20Sopenharmony_ci #size-cells = <1>; 3948c2ecf20Sopenharmony_ci ranges; 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_ci pruss1_mem: memories@0 { 3978c2ecf20Sopenharmony_ci reg = <0x0 0x2000>, 3988c2ecf20Sopenharmony_ci <0x2000 0x2000>, 3998c2ecf20Sopenharmony_ci <0x10000 0x8000>; 4008c2ecf20Sopenharmony_ci reg-names = "dram0", "dram1", "shrdram2"; 4018c2ecf20Sopenharmony_ci }; 4028c2ecf20Sopenharmony_ci 4038c2ecf20Sopenharmony_ci pruss1_cfg: cfg@26000 { 4048c2ecf20Sopenharmony_ci compatible = "ti,pruss-cfg", "syscon"; 4058c2ecf20Sopenharmony_ci #address-cells = <1>; 4068c2ecf20Sopenharmony_ci #size-cells = <1>; 4078c2ecf20Sopenharmony_ci reg = <0x26000 0x2000>; 4088c2ecf20Sopenharmony_ci ranges = <0x00 0x26000 0x2000>; 4098c2ecf20Sopenharmony_ci 4108c2ecf20Sopenharmony_ci clocks { 4118c2ecf20Sopenharmony_ci #address-cells = <1>; 4128c2ecf20Sopenharmony_ci #size-cells = <0>; 4138c2ecf20Sopenharmony_ci 4148c2ecf20Sopenharmony_ci pruss1_iepclk_mux: iepclk-mux@30 { 4158c2ecf20Sopenharmony_ci reg = <0x30>; 4168c2ecf20Sopenharmony_ci #clock-cells = <0>; 4178c2ecf20Sopenharmony_ci clocks = <&sysclk_div>, /* icss_iep */ 4188c2ecf20Sopenharmony_ci <&pruss_ocp_gclk>; /* icss_ocp */ 4198c2ecf20Sopenharmony_ci }; 4208c2ecf20Sopenharmony_ci }; 4218c2ecf20Sopenharmony_ci }; 4228c2ecf20Sopenharmony_ci 4238c2ecf20Sopenharmony_ci pruss1_mii_rt: mii-rt@32000 { 4248c2ecf20Sopenharmony_ci compatible = "ti,pruss-mii", "syscon"; 4258c2ecf20Sopenharmony_ci reg = <0x32000 0x58>; 4268c2ecf20Sopenharmony_ci }; 4278c2ecf20Sopenharmony_ci 4288c2ecf20Sopenharmony_ci pruss1_mdio: mdio@32400 { 4298c2ecf20Sopenharmony_ci compatible = "ti,davinci_mdio"; 4308c2ecf20Sopenharmony_ci reg = <0x32400 0x90>; 4318c2ecf20Sopenharmony_ci clocks = <&dpll_core_m4_ck>; 4328c2ecf20Sopenharmony_ci clock-names = "fck"; 4338c2ecf20Sopenharmony_ci bus_freq = <1000000>; 4348c2ecf20Sopenharmony_ci #address-cells = <1>; 4358c2ecf20Sopenharmony_ci #size-cells = <0>; 4368c2ecf20Sopenharmony_ci }; 4378c2ecf20Sopenharmony_ci }; 4388c2ecf20Sopenharmony_ci 4398c2ecf20Sopenharmony_ci... 440