162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/bus/ti-sysc.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Texas Instruments interconnect target module 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Tony Lindgren <tony@atomide.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: 1362306a36Sopenharmony_ci Texas Instruments SoCs can have a generic interconnect target module 1462306a36Sopenharmony_ci for devices connected to various interconnects such as L3 interconnect 1562306a36Sopenharmony_ci using Arteris NoC, and L4 interconnect using Sonics s3220. This module 1662306a36Sopenharmony_ci is mostly used for interaction between module and Power, Reset and Clock 1762306a36Sopenharmony_ci Manager PRCM. It participates in the OCP Disconnect Protocol, but other 1862306a36Sopenharmony_ci than that it is mostly independent of the interconnect. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci Each interconnect target module can have one or more devices connected to 2162306a36Sopenharmony_ci it. There is a set of control registers for managing the interconnect target 2262306a36Sopenharmony_ci module clocks, idle modes and interconnect level resets. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci The interconnect target module control registers are sprinkled into the 2562306a36Sopenharmony_ci unused register address space of the first child device IP block managed by 2662306a36Sopenharmony_ci the interconnect target module. Typically the register names are REVISION, 2762306a36Sopenharmony_ci SYSCONFIG and SYSSTATUS. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ciproperties: 3062306a36Sopenharmony_ci $nodename: 3162306a36Sopenharmony_ci pattern: "^target-module(@[0-9a-f]+)?$" 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci compatible: 3462306a36Sopenharmony_ci oneOf: 3562306a36Sopenharmony_ci - items: 3662306a36Sopenharmony_ci - enum: 3762306a36Sopenharmony_ci - ti,sysc-omap2 3862306a36Sopenharmony_ci - ti,sysc-omap4 3962306a36Sopenharmony_ci - ti,sysc-omap4-simple 4062306a36Sopenharmony_ci - ti,sysc-omap2-timer 4162306a36Sopenharmony_ci - ti,sysc-omap4-timer 4262306a36Sopenharmony_ci - ti,sysc-omap3430-sr 4362306a36Sopenharmony_ci - ti,sysc-omap3630-sr 4462306a36Sopenharmony_ci - ti,sysc-omap4-sr 4562306a36Sopenharmony_ci - ti,sysc-omap3-sham 4662306a36Sopenharmony_ci - ti,sysc-omap-aes 4762306a36Sopenharmony_ci - ti,sysc-mcasp 4862306a36Sopenharmony_ci - ti,sysc-dra7-mcasp 4962306a36Sopenharmony_ci - ti,sysc-usb-host-fs 5062306a36Sopenharmony_ci - ti,sysc-dra7-mcan 5162306a36Sopenharmony_ci - ti,sysc-pruss 5262306a36Sopenharmony_ci - const: ti,sysc 5362306a36Sopenharmony_ci - items: 5462306a36Sopenharmony_ci - const: ti,sysc 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci reg: 5762306a36Sopenharmony_ci description: 5862306a36Sopenharmony_ci Interconnect target module control registers consisting of 5962306a36Sopenharmony_ci REVISION, SYSCONFIG and SYSSTATUS registers as defined in the 6062306a36Sopenharmony_ci Technical Reference Manual for the SoC. 6162306a36Sopenharmony_ci minItems: 1 6262306a36Sopenharmony_ci maxItems: 3 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci reg-names: 6562306a36Sopenharmony_ci description: 6662306a36Sopenharmony_ci Interconnect target module control register names consisting 6762306a36Sopenharmony_ci of "rev", "sysc" and "syss". 6862306a36Sopenharmony_ci oneOf: 6962306a36Sopenharmony_ci - minItems: 1 7062306a36Sopenharmony_ci items: 7162306a36Sopenharmony_ci - const: rev 7262306a36Sopenharmony_ci - const: sysc 7362306a36Sopenharmony_ci - const: syss 7462306a36Sopenharmony_ci - items: 7562306a36Sopenharmony_ci - const: rev 7662306a36Sopenharmony_ci - const: syss 7762306a36Sopenharmony_ci - enum: [ sysc, syss ] 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci power-domains: 8062306a36Sopenharmony_ci description: Target module power domain if available. 8162306a36Sopenharmony_ci maxItems: 1 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci clocks: 8462306a36Sopenharmony_ci description: 8562306a36Sopenharmony_ci Target module clocks consisting of one functional clock, one 8662306a36Sopenharmony_ci interface clock, and up to 8 module specific optional clocks. 8762306a36Sopenharmony_ci Some modules may have only the functional clock, and some have 8862306a36Sopenharmony_ci no configurable clocks. 8962306a36Sopenharmony_ci minItems: 1 9062306a36Sopenharmony_ci maxItems: 4 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci clock-names: 9362306a36Sopenharmony_ci description: 9462306a36Sopenharmony_ci Target module clock names like "fck", "ick", "optck1", "optck2" 9562306a36Sopenharmony_ci if the clocks are configurable. 9662306a36Sopenharmony_ci oneOf: 9762306a36Sopenharmony_ci - enum: [ ick, fck, sys_clk ] 9862306a36Sopenharmony_ci - items: 9962306a36Sopenharmony_ci - const: fck 10062306a36Sopenharmony_ci - enum: [ ick, dbclk, osc, sys_clk, dss_clk, ahclkx ] 10162306a36Sopenharmony_ci - items: 10262306a36Sopenharmony_ci - const: fck 10362306a36Sopenharmony_ci - const: phy-clk 10462306a36Sopenharmony_ci - const: phy-clk-div 10562306a36Sopenharmony_ci - items: 10662306a36Sopenharmony_ci - const: fck 10762306a36Sopenharmony_ci - const: hdmi_clk 10862306a36Sopenharmony_ci - const: sys_clk 10962306a36Sopenharmony_ci - const: tv_clk 11062306a36Sopenharmony_ci - items: 11162306a36Sopenharmony_ci - const: fck 11262306a36Sopenharmony_ci - const: ahclkx 11362306a36Sopenharmony_ci - const: ahclkr 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci resets: 11662306a36Sopenharmony_ci description: 11762306a36Sopenharmony_ci Target module reset bit in the RSTCTRL register if wired for the module. 11862306a36Sopenharmony_ci Note that the other reset bits should be mapped for the child device 11962306a36Sopenharmony_ci driver to use. 12062306a36Sopenharmony_ci maxItems: 1 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci reset-names: 12362306a36Sopenharmony_ci description: 12462306a36Sopenharmony_ci Target module reset names in the RSTCTRL register, typically named 12562306a36Sopenharmony_ci "rstctrl" if only one reset bit is wired for the module. 12662306a36Sopenharmony_ci items: 12762306a36Sopenharmony_ci - const: rstctrl 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci '#address-cells': 13062306a36Sopenharmony_ci enum: [ 1, 2 ] 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci '#size-cells': 13362306a36Sopenharmony_ci enum: [ 1, 2 ] 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci ranges: true 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci dma-ranges: true 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci ti,sysc-mask: 14062306a36Sopenharmony_ci description: Mask of supported register bits for the SYSCONFIG register 14162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci ti,sysc-midle: 14462306a36Sopenharmony_ci description: List of hardware supported idle modes 14562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ci ti,sysc-sidle: 14862306a36Sopenharmony_ci description: List of hardware supported idle modes 14962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci ti,syss-mask: 15262306a36Sopenharmony_ci description: Mask of supported register bits for the SYSSTATUS register 15362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci ti,sysc-delay-us: 15662306a36Sopenharmony_ci description: Delay needed after OCP softreset before accessing SYCONFIG 15762306a36Sopenharmony_ci default: 0 15862306a36Sopenharmony_ci minimum: 0 15962306a36Sopenharmony_ci maximum: 2 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci ti,no-reset-on-init: 16262306a36Sopenharmony_ci description: Interconnect target module shall not be reset at init 16362306a36Sopenharmony_ci type: boolean 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci ti,no-idle-on-init: 16662306a36Sopenharmony_ci description: Interconnect target module shall not be idled at init 16762306a36Sopenharmony_ci type: boolean 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci ti,no-idle: 17062306a36Sopenharmony_ci description: Interconnect target module shall not be idled 17162306a36Sopenharmony_ci type: boolean 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci ti,hwmods: 17462306a36Sopenharmony_ci description: Interconnect module name to use with legacy hwmod data 17562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/string 17662306a36Sopenharmony_ci deprecated: true 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_cirequired: 17962306a36Sopenharmony_ci - compatible 18062306a36Sopenharmony_ci - '#address-cells' 18162306a36Sopenharmony_ci - '#size-cells' 18262306a36Sopenharmony_ci - ranges 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ciadditionalProperties: 18562306a36Sopenharmony_ci type: object 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ciexamples: 18862306a36Sopenharmony_ci - | 18962306a36Sopenharmony_ci #include <dt-bindings/bus/ti-sysc.h> 19062306a36Sopenharmony_ci #include <dt-bindings/clock/omap4.h> 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci target-module@2b000 { 19362306a36Sopenharmony_ci compatible = "ti,sysc-omap2", "ti,sysc"; 19462306a36Sopenharmony_ci ti,hwmods = "usb_otg_hs"; 19562306a36Sopenharmony_ci reg = <0x2b400 0x4>, 19662306a36Sopenharmony_ci <0x2b404 0x4>, 19762306a36Sopenharmony_ci <0x2b408 0x4>; 19862306a36Sopenharmony_ci reg-names = "rev", "sysc", "syss"; 19962306a36Sopenharmony_ci clocks = <&l3_init_clkctrl OMAP4_USB_OTG_HS_CLKCTRL 0>; 20062306a36Sopenharmony_ci clock-names = "fck"; 20162306a36Sopenharmony_ci ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP | 20262306a36Sopenharmony_ci SYSC_OMAP2_SOFTRESET | 20362306a36Sopenharmony_ci SYSC_OMAP2_AUTOIDLE)>; 20462306a36Sopenharmony_ci ti,sysc-midle = <SYSC_IDLE_FORCE>, 20562306a36Sopenharmony_ci <SYSC_IDLE_NO>, 20662306a36Sopenharmony_ci <SYSC_IDLE_SMART>; 20762306a36Sopenharmony_ci ti,sysc-sidle = <SYSC_IDLE_FORCE>, 20862306a36Sopenharmony_ci <SYSC_IDLE_NO>, 20962306a36Sopenharmony_ci <SYSC_IDLE_SMART>, 21062306a36Sopenharmony_ci <SYSC_IDLE_SMART_WKUP>; 21162306a36Sopenharmony_ci ti,syss-mask = <1>; 21262306a36Sopenharmony_ci #address-cells = <1>; 21362306a36Sopenharmony_ci #size-cells = <1>; 21462306a36Sopenharmony_ci ranges = <0 0x2b000 0x1000>; 21562306a36Sopenharmony_ci }; 216