Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/bus/ti-sysc.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Texas Instruments interconnect target module binding
0008 
0009 maintainers:
0010   - Tony Lindgren <tony@atomide.com>
0011 
0012 description:
0013   Texas Instruments SoCs can have a generic interconnect target module
0014   for devices connected to various interconnects such as L3 interconnect
0015   using Arteris NoC, and L4 interconnect using Sonics s3220. This module
0016   is mostly used for interaction between module and Power, Reset and Clock
0017   Manager PRCM. It participates in the OCP Disconnect Protocol, but other
0018   than that it is mostly independent of the interconnect.
0019 
0020   Each interconnect target module can have one or more devices connected to
0021   it. There is a set of control registers for managing the interconnect target
0022   module clocks, idle modes and interconnect level resets.
0023 
0024   The interconnect target module control registers are sprinkled into the
0025   unused register address space of the first child device IP block managed by
0026   the interconnect target module. Typically the register names are REVISION,
0027   SYSCONFIG and SYSSTATUS.
0028 
0029 properties:
0030   $nodename:
0031     pattern: "^target-module(@[0-9a-f]+)?$"
0032 
0033   compatible:
0034     oneOf:
0035       - items:
0036           - enum:
0037               - ti,sysc-omap2
0038               - ti,sysc-omap4
0039               - ti,sysc-omap4-simple
0040               - ti,sysc-omap2-timer
0041               - ti,sysc-omap4-timer
0042               - ti,sysc-omap3430-sr
0043               - ti,sysc-omap3630-sr
0044               - ti,sysc-omap4-sr
0045               - ti,sysc-omap3-sham
0046               - ti,sysc-omap-aes
0047               - ti,sysc-mcasp
0048               - ti,sysc-dra7-mcasp
0049               - ti,sysc-usb-host-fs
0050               - ti,sysc-dra7-mcan
0051               - ti,sysc-pruss
0052           - const: ti,sysc
0053       - items:
0054           - const: ti,sysc
0055 
0056   reg:
0057     description:
0058       Interconnect target module control registers consisting of
0059       REVISION, SYSCONFIG and SYSSTATUS registers as defined in the
0060       Technical Reference Manual for the SoC.
0061     minItems: 1
0062     maxItems: 3
0063 
0064   reg-names:
0065     description:
0066       Interconnect target module control register names consisting
0067       of "rev", "sysc" and "syss".
0068     oneOf:
0069       - minItems: 1
0070         items:
0071           - const: rev
0072           - const: sysc
0073           - const: syss
0074       - items:
0075           - const: rev
0076           - const: syss
0077       - enum: [ sysc, syss ]
0078 
0079   power-domains:
0080     description: Target module power domain if available.
0081     maxItems: 1
0082 
0083   clocks:
0084     description:
0085       Target module clocks consisting of one functional clock, one
0086       interface clock, and up to 8 module specific optional clocks.
0087       Some modules may have only the functional clock, and some have
0088       no configurable clocks.
0089     minItems: 1
0090     maxItems: 4
0091 
0092   clock-names:
0093     description:
0094       Target module clock names like "fck", "ick", "optck1", "optck2"
0095       if the clocks are configurable.
0096     oneOf:
0097       - enum: [ ick, fck, sys_clk ]
0098       - items:
0099           - const: fck
0100           - enum: [ ick. dbclk, osc, sys_clk, dss_clk, ahclkx ]
0101       - items:
0102           - const: fck
0103           - const: phy-clk
0104           - const: phy-clk-div
0105       - items:
0106           - const: fck
0107           - const: hdmi_clk
0108           - const: sys_clk
0109           - const: tv_clk
0110       - items:
0111           - const: fck
0112           - const: ahclkx
0113           - const: ahclkr
0114 
0115   resets:
0116     description:
0117       Target module reset bit in the RSTCTRL register if wired for the module.
0118       Note that the other reset bits should be mapped for the child device
0119       driver to use.
0120     maxItems: 1
0121 
0122   reset-names:
0123     description:
0124       Target module reset names in the RSTCTRL register, typically named
0125       "rstctrl" if only one reset bit is wired for the module.
0126     items:
0127       - const: rstctrl
0128 
0129   '#address-cells':
0130     enum: [ 1, 2 ]
0131 
0132   '#size-cells':
0133     enum: [ 1, 2 ]
0134 
0135   ranges: true
0136 
0137   dma-ranges: true
0138 
0139   ti,sysc-mask:
0140     description: Mask of supported register bits for the SYSCONFIG register
0141     $ref: /schemas/types.yaml#/definitions/uint32
0142 
0143   ti,sysc-midle:
0144     description: List of hardware supported idle modes
0145     $ref: /schemas/types.yaml#/definitions/uint32-array
0146 
0147   ti,sysc-sidle:
0148     description: List of hardware supported idle modes
0149     $ref: /schemas/types.yaml#/definitions/uint32-array
0150 
0151   ti,syss-mask:
0152     description: Mask of supported register bits for the SYSSTATUS register
0153     $ref: /schemas/types.yaml#/definitions/uint32
0154 
0155   ti,sysc-delay-us:
0156     description: Delay needed after OCP softreset before accessing SYCONFIG
0157     default: 0
0158     minimum: 0
0159     maximum: 2
0160 
0161   ti,no-reset-on-init:
0162     description: Interconnect target module shall not be reset at init
0163     type: boolean
0164 
0165   ti,no-idle-on-init:
0166     description: Interconnect target module shall not be idled at init
0167     type: boolean
0168 
0169   ti,no-idle:
0170     description: Interconnect target module shall not be idled
0171     type: boolean
0172 
0173   ti,hwmods:
0174     description: Interconnect module name to use with legacy hwmod data
0175     $ref: /schemas/types.yaml#/definitions/string
0176     deprecated: true
0177 
0178 required:
0179   - compatible
0180   - '#address-cells'
0181   - '#size-cells'
0182   - ranges
0183 
0184 additionalProperties:
0185   type: object
0186 
0187 examples:
0188   - |
0189     #include <dt-bindings/bus/ti-sysc.h>
0190     #include <dt-bindings/clock/omap4.h>
0191 
0192     target-module@2b000 {
0193         compatible = "ti,sysc-omap2", "ti,sysc";
0194         ti,hwmods = "usb_otg_hs";
0195         reg = <0x2b400 0x4>,
0196               <0x2b404 0x4>,
0197               <0x2b408 0x4>;
0198         reg-names = "rev", "sysc", "syss";
0199         clocks = <&l3_init_clkctrl OMAP4_USB_OTG_HS_CLKCTRL 0>;
0200         clock-names = "fck";
0201         ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP |
0202                          SYSC_OMAP2_SOFTRESET |
0203                          SYSC_OMAP2_AUTOIDLE)>;
0204         ti,sysc-midle = <SYSC_IDLE_FORCE>,
0205                         <SYSC_IDLE_NO>,
0206                         <SYSC_IDLE_SMART>;
0207         ti,sysc-sidle = <SYSC_IDLE_FORCE>,
0208                         <SYSC_IDLE_NO>,
0209                         <SYSC_IDLE_SMART>,
0210                         <SYSC_IDLE_SMART_WKUP>;
0211         ti,syss-mask = <1>;
0212         #address-cells = <1>;
0213         #size-cells = <1>;
0214         ranges = <0 0x2b000 0x1000>;
0215     };