| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/bus/ti-sysc.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Texas Instruments interconnect target module
- maintainers:
- - Tony Lindgren <tony@atomide.com>
- description:
- Texas Instruments SoCs can have a generic interconnect target module
- for devices connected to various interconnects such as L3 interconnect
- using Arteris NoC, and L4 interconnect using Sonics s3220. This module
- is mostly used for interaction between module and Power, Reset and Clock
- Manager PRCM. It participates in the OCP Disconnect Protocol, but other
- than that it is mostly independent of the interconnect.
- Each interconnect target module can have one or more devices connected to
- it. There is a set of control registers for managing the interconnect target
- module clocks, idle modes and interconnect level resets.
- The interconnect target module control registers are sprinkled into the
- unused register address space of the first child device IP block managed by
- the interconnect target module. Typically the register names are REVISION,
- SYSCONFIG and SYSSTATUS.
- properties:
- $nodename:
- pattern: "^target-module(@[0-9a-f]+)?$"
- compatible:
- oneOf:
- - items:
- - enum:
- - ti,sysc-omap2
- - ti,sysc-omap4
- - ti,sysc-omap4-simple
- - ti,sysc-omap2-timer
- - ti,sysc-omap4-timer
- - ti,sysc-omap3430-sr
- - ti,sysc-omap3630-sr
- - ti,sysc-omap4-sr
- - ti,sysc-omap3-sham
- - ti,sysc-omap-aes
- - ti,sysc-mcasp
- - ti,sysc-dra7-mcasp
- - ti,sysc-usb-host-fs
- - ti,sysc-dra7-mcan
- - ti,sysc-pruss
- - const: ti,sysc
- - items:
- - const: ti,sysc
- reg:
- description:
- Interconnect target module control registers consisting of
- REVISION, SYSCONFIG and SYSSTATUS registers as defined in the
- Technical Reference Manual for the SoC.
- minItems: 1
- maxItems: 3
- reg-names:
- description:
- Interconnect target module control register names consisting
- of "rev", "sysc" and "syss".
- oneOf:
- - minItems: 1
- items:
- - const: rev
- - const: sysc
- - const: syss
- - items:
- - const: rev
- - const: syss
- - enum: [ sysc, syss ]
- power-domains:
- description: Target module power domain if available.
- maxItems: 1
- clocks:
- description:
- Target module clocks consisting of one functional clock, one
- interface clock, and up to 8 module specific optional clocks.
- Some modules may have only the functional clock, and some have
- no configurable clocks.
- minItems: 1
- maxItems: 4
- clock-names:
- description:
- Target module clock names like "fck", "ick", "optck1", "optck2"
- if the clocks are configurable.
- oneOf:
- - enum: [ ick, fck, sys_clk ]
- - items:
- - const: fck
- - enum: [ ick, dbclk, osc, sys_clk, dss_clk, ahclkx ]
- - items:
- - const: fck
- - const: phy-clk
- - const: phy-clk-div
- - items:
- - const: fck
- - const: hdmi_clk
- - const: sys_clk
- - const: tv_clk
- - items:
- - const: fck
- - const: ahclkx
- - const: ahclkr
- resets:
- description:
- Target module reset bit in the RSTCTRL register if wired for the module.
- Note that the other reset bits should be mapped for the child device
- driver to use.
- maxItems: 1
- reset-names:
- description:
- Target module reset names in the RSTCTRL register, typically named
- "rstctrl" if only one reset bit is wired for the module.
- items:
- - const: rstctrl
- '#address-cells':
- enum: [ 1, 2 ]
- '#size-cells':
- enum: [ 1, 2 ]
- ranges: true
- dma-ranges: true
- ti,sysc-mask:
- description: Mask of supported register bits for the SYSCONFIG register
- $ref: /schemas/types.yaml#/definitions/uint32
- ti,sysc-midle:
- description: List of hardware supported idle modes
- $ref: /schemas/types.yaml#/definitions/uint32-array
- ti,sysc-sidle:
- description: List of hardware supported idle modes
- $ref: /schemas/types.yaml#/definitions/uint32-array
- ti,syss-mask:
- description: Mask of supported register bits for the SYSSTATUS register
- $ref: /schemas/types.yaml#/definitions/uint32
- ti,sysc-delay-us:
- description: Delay needed after OCP softreset before accessing SYCONFIG
- default: 0
- minimum: 0
- maximum: 2
- ti,no-reset-on-init:
- description: Interconnect target module shall not be reset at init
- type: boolean
- ti,no-idle-on-init:
- description: Interconnect target module shall not be idled at init
- type: boolean
- ti,no-idle:
- description: Interconnect target module shall not be idled
- type: boolean
- ti,hwmods:
- description: Interconnect module name to use with legacy hwmod data
- $ref: /schemas/types.yaml#/definitions/string
- deprecated: true
- required:
- - compatible
- - '#address-cells'
- - '#size-cells'
- - ranges
- additionalProperties:
- type: object
- examples:
- - |
- #include <dt-bindings/bus/ti-sysc.h>
- #include <dt-bindings/clock/omap4.h>
- target-module@2b000 {
- compatible = "ti,sysc-omap2", "ti,sysc";
- ti,hwmods = "usb_otg_hs";
- reg = <0x2b400 0x4>,
- <0x2b404 0x4>,
- <0x2b408 0x4>;
- reg-names = "rev", "sysc", "syss";
- clocks = <&l3_init_clkctrl OMAP4_USB_OTG_HS_CLKCTRL 0>;
- clock-names = "fck";
- ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP |
- SYSC_OMAP2_SOFTRESET |
- SYSC_OMAP2_AUTOIDLE)>;
- ti,sysc-midle = <SYSC_IDLE_FORCE>,
- <SYSC_IDLE_NO>,
- <SYSC_IDLE_SMART>;
- ti,sysc-sidle = <SYSC_IDLE_FORCE>,
- <SYSC_IDLE_NO>,
- <SYSC_IDLE_SMART>,
- <SYSC_IDLE_SMART_WKUP>;
- ti,syss-mask = <1>;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges = <0 0x2b000 0x1000>;
- };
|