1*2846c905SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only 2*2846c905SEmmanuel Vadot%YAML 1.2 3*2846c905SEmmanuel Vadot--- 4*2846c905SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/ti/ti,composite-clock.yaml# 5*2846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*2846c905SEmmanuel Vadot 7*2846c905SEmmanuel Vadottitle: Texas Instruments composite clock 8*2846c905SEmmanuel Vadot 9*2846c905SEmmanuel Vadotmaintainers: 10*2846c905SEmmanuel Vadot - Tero Kristo <kristo@kernel.org> 11*2846c905SEmmanuel Vadot 12*2846c905SEmmanuel Vadotdescription: | 13*2846c905SEmmanuel Vadot *Deprecated design pattern: one node per clock* 14*2846c905SEmmanuel Vadot 15*2846c905SEmmanuel Vadot This binding assumes a register-mapped composite clock with multiple 16*2846c905SEmmanuel Vadot different sub-types: 17*2846c905SEmmanuel Vadot 18*2846c905SEmmanuel Vadot a multiplexer clock with multiple input clock signals or parents, one 19*2846c905SEmmanuel Vadot of which can be selected as output, this behaves exactly as [1]. 20*2846c905SEmmanuel Vadot 21*2846c905SEmmanuel Vadot an adjustable clock rate divider, this behaves exactly as [2]. 22*2846c905SEmmanuel Vadot 23*2846c905SEmmanuel Vadot a gating function which can be used to enable and disable the output 24*2846c905SEmmanuel Vadot clock, this behaves exactly as [3]. 25*2846c905SEmmanuel Vadot 26*2846c905SEmmanuel Vadot The binding must provide a list of the component clocks that shall be 27*2846c905SEmmanuel Vadot merged to this clock. The component clocks shall be of one of the 28*2846c905SEmmanuel Vadot "ti,*composite*-clock" types. 29*2846c905SEmmanuel Vadot 30*2846c905SEmmanuel Vadot [1] Documentation/devicetree/bindings/clock/ti/ti,mux-clock.yaml 31*2846c905SEmmanuel Vadot [2] Documentation/devicetree/bindings/clock/ti/ti,divider-clock.yaml 32*2846c905SEmmanuel Vadot [3] Documentation/devicetree/bindings/clock/ti/ti,gate-clock.yaml 33*2846c905SEmmanuel Vadot 34*2846c905SEmmanuel Vadotproperties: 35*2846c905SEmmanuel Vadot compatible: 36*2846c905SEmmanuel Vadot const: ti,composite-clock 37*2846c905SEmmanuel Vadot 38*2846c905SEmmanuel Vadot "#clock-cells": 39*2846c905SEmmanuel Vadot const: 0 40*2846c905SEmmanuel Vadot 41*2846c905SEmmanuel Vadot clocks: true 42*2846c905SEmmanuel Vadot 43*2846c905SEmmanuel Vadot clock-output-names: 44*2846c905SEmmanuel Vadot maxItems: 1 45*2846c905SEmmanuel Vadot 46*2846c905SEmmanuel Vadotrequired: 47*2846c905SEmmanuel Vadot - compatible 48*2846c905SEmmanuel Vadot - "#clock-cells" 49*2846c905SEmmanuel Vadot - clocks 50*2846c905SEmmanuel Vadot 51*2846c905SEmmanuel VadotadditionalProperties: false 52*2846c905SEmmanuel Vadot 53*2846c905SEmmanuel Vadotexamples: 54*2846c905SEmmanuel Vadot - | 55*2846c905SEmmanuel Vadot bus { 56*2846c905SEmmanuel Vadot #address-cells = <1>; 57*2846c905SEmmanuel Vadot #size-cells = <0>; 58*2846c905SEmmanuel Vadot 59*2846c905SEmmanuel Vadot usb_l4_gate_ick: clock-controller@a10 { 60*2846c905SEmmanuel Vadot #clock-cells = <0>; 61*2846c905SEmmanuel Vadot compatible = "ti,composite-gate-clock"; 62*2846c905SEmmanuel Vadot clocks = <&l4_ick>; 63*2846c905SEmmanuel Vadot ti,bit-shift = <5>; 64*2846c905SEmmanuel Vadot reg = <0x0a10>; 65*2846c905SEmmanuel Vadot }; 66*2846c905SEmmanuel Vadot 67*2846c905SEmmanuel Vadot usb_l4_div_ick: clock-controller@a40 { 68*2846c905SEmmanuel Vadot #clock-cells = <0>; 69*2846c905SEmmanuel Vadot compatible = "ti,composite-divider-clock"; 70*2846c905SEmmanuel Vadot clocks = <&l4_ick>; 71*2846c905SEmmanuel Vadot ti,bit-shift = <4>; 72*2846c905SEmmanuel Vadot ti,max-div = <1>; 73*2846c905SEmmanuel Vadot reg = <0x0a40>; 74*2846c905SEmmanuel Vadot ti,index-starts-at-one; 75*2846c905SEmmanuel Vadot }; 76*2846c905SEmmanuel Vadot }; 77*2846c905SEmmanuel Vadot 78*2846c905SEmmanuel Vadot clock-controller { 79*2846c905SEmmanuel Vadot #clock-cells = <0>; 80*2846c905SEmmanuel Vadot compatible = "ti,composite-clock"; 81*2846c905SEmmanuel Vadot clocks = <&usb_l4_gate_ick>, <&usb_l4_div_ick>; 82*2846c905SEmmanuel Vadot }; 83