b63c87a120
Update the binding for ti-sysc interconnect target module driver to yaml format. Note that the old binding was never updated for the need to always specify also the generic compatible "ti,sysc". This is needed for the auxdata for platform clockdomain autoidle related functions. Cc: Rob Herring <robh@kernel.org> Cc: Suman Anna <s-anna@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Link: https://lore.kernel.org/r/20211015113350.35830-1-tony@atomide.com [robh: dedupe reg-names and clock-names entries] Signed-off-by: Rob Herring <robh@kernel.org>
217 lines
6.2 KiB
YAML
217 lines
6.2 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 binding
|
|
|
|
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-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>;
|
|
};
|