18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28cc087a1SEmmanuel Vadot%YAML 1.2 38cc087a1SEmmanuel Vadot--- 48cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/bus/ti-sysc.yaml# 58cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68cc087a1SEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: Texas Instruments interconnect target module 88cc087a1SEmmanuel Vadot 98cc087a1SEmmanuel Vadotmaintainers: 108cc087a1SEmmanuel Vadot - Tony Lindgren <tony@atomide.com> 118cc087a1SEmmanuel Vadot 128cc087a1SEmmanuel Vadotdescription: 138cc087a1SEmmanuel Vadot Texas Instruments SoCs can have a generic interconnect target module 148cc087a1SEmmanuel Vadot for devices connected to various interconnects such as L3 interconnect 158cc087a1SEmmanuel Vadot using Arteris NoC, and L4 interconnect using Sonics s3220. This module 168cc087a1SEmmanuel Vadot is mostly used for interaction between module and Power, Reset and Clock 178cc087a1SEmmanuel Vadot Manager PRCM. It participates in the OCP Disconnect Protocol, but other 188cc087a1SEmmanuel Vadot than that it is mostly independent of the interconnect. 198cc087a1SEmmanuel Vadot 208cc087a1SEmmanuel Vadot Each interconnect target module can have one or more devices connected to 218cc087a1SEmmanuel Vadot it. There is a set of control registers for managing the interconnect target 228cc087a1SEmmanuel Vadot module clocks, idle modes and interconnect level resets. 238cc087a1SEmmanuel Vadot 248cc087a1SEmmanuel Vadot The interconnect target module control registers are sprinkled into the 258cc087a1SEmmanuel Vadot unused register address space of the first child device IP block managed by 268cc087a1SEmmanuel Vadot the interconnect target module. Typically the register names are REVISION, 278cc087a1SEmmanuel Vadot SYSCONFIG and SYSSTATUS. 288cc087a1SEmmanuel Vadot 298cc087a1SEmmanuel Vadotproperties: 308cc087a1SEmmanuel Vadot $nodename: 318cc087a1SEmmanuel Vadot pattern: "^target-module(@[0-9a-f]+)?$" 328cc087a1SEmmanuel Vadot 338cc087a1SEmmanuel Vadot compatible: 348cc087a1SEmmanuel Vadot oneOf: 358cc087a1SEmmanuel Vadot - items: 368cc087a1SEmmanuel Vadot - enum: 378cc087a1SEmmanuel Vadot - ti,sysc-omap2 388cc087a1SEmmanuel Vadot - ti,sysc-omap4 398cc087a1SEmmanuel Vadot - ti,sysc-omap4-simple 408cc087a1SEmmanuel Vadot - ti,sysc-omap2-timer 418cc087a1SEmmanuel Vadot - ti,sysc-omap4-timer 428cc087a1SEmmanuel Vadot - ti,sysc-omap3430-sr 438cc087a1SEmmanuel Vadot - ti,sysc-omap3630-sr 448cc087a1SEmmanuel Vadot - ti,sysc-omap4-sr 458cc087a1SEmmanuel Vadot - ti,sysc-omap3-sham 468cc087a1SEmmanuel Vadot - ti,sysc-omap-aes 478cc087a1SEmmanuel Vadot - ti,sysc-mcasp 488cc087a1SEmmanuel Vadot - ti,sysc-dra7-mcasp 498cc087a1SEmmanuel Vadot - ti,sysc-usb-host-fs 508cc087a1SEmmanuel Vadot - ti,sysc-dra7-mcan 518cc087a1SEmmanuel Vadot - ti,sysc-pruss 528cc087a1SEmmanuel Vadot - const: ti,sysc 538cc087a1SEmmanuel Vadot - items: 548cc087a1SEmmanuel Vadot - const: ti,sysc 558cc087a1SEmmanuel Vadot 568cc087a1SEmmanuel Vadot reg: 578cc087a1SEmmanuel Vadot description: 588cc087a1SEmmanuel Vadot Interconnect target module control registers consisting of 598cc087a1SEmmanuel Vadot REVISION, SYSCONFIG and SYSSTATUS registers as defined in the 608cc087a1SEmmanuel Vadot Technical Reference Manual for the SoC. 618cc087a1SEmmanuel Vadot minItems: 1 628cc087a1SEmmanuel Vadot maxItems: 3 638cc087a1SEmmanuel Vadot 648cc087a1SEmmanuel Vadot reg-names: 658cc087a1SEmmanuel Vadot description: 668cc087a1SEmmanuel Vadot Interconnect target module control register names consisting 678cc087a1SEmmanuel Vadot of "rev", "sysc" and "syss". 688cc087a1SEmmanuel Vadot oneOf: 698cc087a1SEmmanuel Vadot - minItems: 1 708cc087a1SEmmanuel Vadot items: 718cc087a1SEmmanuel Vadot - const: rev 728cc087a1SEmmanuel Vadot - const: sysc 738cc087a1SEmmanuel Vadot - const: syss 748cc087a1SEmmanuel Vadot - items: 758cc087a1SEmmanuel Vadot - const: rev 768cc087a1SEmmanuel Vadot - const: syss 778cc087a1SEmmanuel Vadot - enum: [ sysc, syss ] 788cc087a1SEmmanuel Vadot 798cc087a1SEmmanuel Vadot power-domains: 808cc087a1SEmmanuel Vadot description: Target module power domain if available. 818cc087a1SEmmanuel Vadot maxItems: 1 828cc087a1SEmmanuel Vadot 838cc087a1SEmmanuel Vadot clocks: 848cc087a1SEmmanuel Vadot description: 858cc087a1SEmmanuel Vadot Target module clocks consisting of one functional clock, one 868cc087a1SEmmanuel Vadot interface clock, and up to 8 module specific optional clocks. 878cc087a1SEmmanuel Vadot Some modules may have only the functional clock, and some have 888cc087a1SEmmanuel Vadot no configurable clocks. 898cc087a1SEmmanuel Vadot minItems: 1 908cc087a1SEmmanuel Vadot maxItems: 4 918cc087a1SEmmanuel Vadot 928cc087a1SEmmanuel Vadot clock-names: 938cc087a1SEmmanuel Vadot description: 948cc087a1SEmmanuel Vadot Target module clock names like "fck", "ick", "optck1", "optck2" 958cc087a1SEmmanuel Vadot if the clocks are configurable. 968cc087a1SEmmanuel Vadot oneOf: 978cc087a1SEmmanuel Vadot - enum: [ ick, fck, sys_clk ] 988cc087a1SEmmanuel Vadot - items: 998cc087a1SEmmanuel Vadot - const: fck 100*f126890aSEmmanuel Vadot - enum: [ ick, dbclk, osc, sys_clk, dss_clk, ahclkx ] 1018cc087a1SEmmanuel Vadot - items: 1028cc087a1SEmmanuel Vadot - const: fck 1038cc087a1SEmmanuel Vadot - const: phy-clk 1048cc087a1SEmmanuel Vadot - const: phy-clk-div 1058cc087a1SEmmanuel Vadot - items: 1068cc087a1SEmmanuel Vadot - const: fck 1078cc087a1SEmmanuel Vadot - const: hdmi_clk 1088cc087a1SEmmanuel Vadot - const: sys_clk 1098cc087a1SEmmanuel Vadot - const: tv_clk 1108cc087a1SEmmanuel Vadot - items: 1118cc087a1SEmmanuel Vadot - const: fck 1128cc087a1SEmmanuel Vadot - const: ahclkx 1138cc087a1SEmmanuel Vadot - const: ahclkr 1148cc087a1SEmmanuel Vadot 1158cc087a1SEmmanuel Vadot resets: 1168cc087a1SEmmanuel Vadot description: 1178cc087a1SEmmanuel Vadot Target module reset bit in the RSTCTRL register if wired for the module. 1188cc087a1SEmmanuel Vadot Note that the other reset bits should be mapped for the child device 1198cc087a1SEmmanuel Vadot driver to use. 1208cc087a1SEmmanuel Vadot maxItems: 1 1218cc087a1SEmmanuel Vadot 1228cc087a1SEmmanuel Vadot reset-names: 1238cc087a1SEmmanuel Vadot description: 1248cc087a1SEmmanuel Vadot Target module reset names in the RSTCTRL register, typically named 1258cc087a1SEmmanuel Vadot "rstctrl" if only one reset bit is wired for the module. 1268cc087a1SEmmanuel Vadot items: 1278cc087a1SEmmanuel Vadot - const: rstctrl 1288cc087a1SEmmanuel Vadot 1298cc087a1SEmmanuel Vadot '#address-cells': 1308cc087a1SEmmanuel Vadot enum: [ 1, 2 ] 1318cc087a1SEmmanuel Vadot 1328cc087a1SEmmanuel Vadot '#size-cells': 1338cc087a1SEmmanuel Vadot enum: [ 1, 2 ] 1348cc087a1SEmmanuel Vadot 1358cc087a1SEmmanuel Vadot ranges: true 1368cc087a1SEmmanuel Vadot 1378cc087a1SEmmanuel Vadot dma-ranges: true 1388cc087a1SEmmanuel Vadot 1398cc087a1SEmmanuel Vadot ti,sysc-mask: 1408cc087a1SEmmanuel Vadot description: Mask of supported register bits for the SYSCONFIG register 1418cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 1428cc087a1SEmmanuel Vadot 1438cc087a1SEmmanuel Vadot ti,sysc-midle: 1448cc087a1SEmmanuel Vadot description: List of hardware supported idle modes 1458cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 1468cc087a1SEmmanuel Vadot 1478cc087a1SEmmanuel Vadot ti,sysc-sidle: 1488cc087a1SEmmanuel Vadot description: List of hardware supported idle modes 1498cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 1508cc087a1SEmmanuel Vadot 1518cc087a1SEmmanuel Vadot ti,syss-mask: 1528cc087a1SEmmanuel Vadot description: Mask of supported register bits for the SYSSTATUS register 1538cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 1548cc087a1SEmmanuel Vadot 1558cc087a1SEmmanuel Vadot ti,sysc-delay-us: 1568cc087a1SEmmanuel Vadot description: Delay needed after OCP softreset before accessing SYCONFIG 1578cc087a1SEmmanuel Vadot default: 0 1588cc087a1SEmmanuel Vadot minimum: 0 1598cc087a1SEmmanuel Vadot maximum: 2 1608cc087a1SEmmanuel Vadot 1618cc087a1SEmmanuel Vadot ti,no-reset-on-init: 1628cc087a1SEmmanuel Vadot description: Interconnect target module shall not be reset at init 1638cc087a1SEmmanuel Vadot type: boolean 1648cc087a1SEmmanuel Vadot 1658cc087a1SEmmanuel Vadot ti,no-idle-on-init: 1668cc087a1SEmmanuel Vadot description: Interconnect target module shall not be idled at init 1678cc087a1SEmmanuel Vadot type: boolean 1688cc087a1SEmmanuel Vadot 1698cc087a1SEmmanuel Vadot ti,no-idle: 1708cc087a1SEmmanuel Vadot description: Interconnect target module shall not be idled 1718cc087a1SEmmanuel Vadot type: boolean 1728cc087a1SEmmanuel Vadot 1738cc087a1SEmmanuel Vadot ti,hwmods: 1748cc087a1SEmmanuel Vadot description: Interconnect module name to use with legacy hwmod data 1758cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string 1768cc087a1SEmmanuel Vadot deprecated: true 1778cc087a1SEmmanuel Vadot 1788cc087a1SEmmanuel Vadotrequired: 1798cc087a1SEmmanuel Vadot - compatible 1808cc087a1SEmmanuel Vadot - '#address-cells' 1818cc087a1SEmmanuel Vadot - '#size-cells' 1828cc087a1SEmmanuel Vadot - ranges 1838cc087a1SEmmanuel Vadot 1848cc087a1SEmmanuel VadotadditionalProperties: 1858cc087a1SEmmanuel Vadot type: object 1868cc087a1SEmmanuel Vadot 1878cc087a1SEmmanuel Vadotexamples: 1888cc087a1SEmmanuel Vadot - | 1898cc087a1SEmmanuel Vadot #include <dt-bindings/bus/ti-sysc.h> 1908cc087a1SEmmanuel Vadot #include <dt-bindings/clock/omap4.h> 1918cc087a1SEmmanuel Vadot 1928cc087a1SEmmanuel Vadot target-module@2b000 { 1938cc087a1SEmmanuel Vadot compatible = "ti,sysc-omap2", "ti,sysc"; 1948cc087a1SEmmanuel Vadot ti,hwmods = "usb_otg_hs"; 1958cc087a1SEmmanuel Vadot reg = <0x2b400 0x4>, 1968cc087a1SEmmanuel Vadot <0x2b404 0x4>, 1978cc087a1SEmmanuel Vadot <0x2b408 0x4>; 1988cc087a1SEmmanuel Vadot reg-names = "rev", "sysc", "syss"; 1998cc087a1SEmmanuel Vadot clocks = <&l3_init_clkctrl OMAP4_USB_OTG_HS_CLKCTRL 0>; 2008cc087a1SEmmanuel Vadot clock-names = "fck"; 2018cc087a1SEmmanuel Vadot ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP | 2028cc087a1SEmmanuel Vadot SYSC_OMAP2_SOFTRESET | 2038cc087a1SEmmanuel Vadot SYSC_OMAP2_AUTOIDLE)>; 2048cc087a1SEmmanuel Vadot ti,sysc-midle = <SYSC_IDLE_FORCE>, 2058cc087a1SEmmanuel Vadot <SYSC_IDLE_NO>, 2068cc087a1SEmmanuel Vadot <SYSC_IDLE_SMART>; 2078cc087a1SEmmanuel Vadot ti,sysc-sidle = <SYSC_IDLE_FORCE>, 2088cc087a1SEmmanuel Vadot <SYSC_IDLE_NO>, 2098cc087a1SEmmanuel Vadot <SYSC_IDLE_SMART>, 2108cc087a1SEmmanuel Vadot <SYSC_IDLE_SMART_WKUP>; 2118cc087a1SEmmanuel Vadot ti,syss-mask = <1>; 2128cc087a1SEmmanuel Vadot #address-cells = <1>; 2138cc087a1SEmmanuel Vadot #size-cells = <1>; 2148cc087a1SEmmanuel Vadot ranges = <0 0x2b000 0x1000>; 2158cc087a1SEmmanuel Vadot }; 216