216 lines
6.1 KiB
YAML
216 lines
6.1 KiB
YAML
|
# 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>;
|
||
|
};
|