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,gate-clock.yaml# 5*2846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*2846c905SEmmanuel Vadot 7*2846c905SEmmanuel Vadottitle: Texas Instruments gate 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 clock is quite much similar to the basic gate-clock [1], however, 16*2846c905SEmmanuel Vadot it supports a number of additional features. If no register 17*2846c905SEmmanuel Vadot is provided for this clock, the code assumes that a clockdomain 18*2846c905SEmmanuel Vadot will be controlled instead and the corresponding hw-ops for 19*2846c905SEmmanuel Vadot that is used. 20*2846c905SEmmanuel Vadot 21*2846c905SEmmanuel Vadot [1] Documentation/devicetree/bindings/clock/gpio-gate-clock.yaml 22*2846c905SEmmanuel Vadot [2] Documentation/devicetree/bindings/clock/ti/clockdomain.txt 23*2846c905SEmmanuel Vadot 24*2846c905SEmmanuel Vadotproperties: 25*2846c905SEmmanuel Vadot compatible: 26*2846c905SEmmanuel Vadot enum: 27*2846c905SEmmanuel Vadot - ti,gate-clock # basic gate clock 28*2846c905SEmmanuel Vadot - ti,wait-gate-clock # gate clock which waits until clock is 29*2846c905SEmmanuel Vadot # active before returning from clk_enable() 30*2846c905SEmmanuel Vadot - ti,dss-gate-clock # gate clock with DSS specific hardware 31*2846c905SEmmanuel Vadot # handling 32*2846c905SEmmanuel Vadot - ti,am35xx-gate-clock # gate clock with AM35xx specific hardware 33*2846c905SEmmanuel Vadot # handling 34*2846c905SEmmanuel Vadot - ti,clkdm-gate-clock # clockdomain gate clock, which derives its 35*2846c905SEmmanuel Vadot # functional clock directly from a 36*2846c905SEmmanuel Vadot # clockdomain, see [2] how to map 37*2846c905SEmmanuel Vadot # clockdomains properly 38*2846c905SEmmanuel Vadot - ti,hsdiv-gate-clock # gate clock with OMAP36xx specific hardware 39*2846c905SEmmanuel Vadot # handling, required for a hardware errata 40*2846c905SEmmanuel Vadot - ti,composite-gate-clock # composite gate clock, to be part of 41*2846c905SEmmanuel Vadot # composite clock 42*2846c905SEmmanuel Vadot - ti,composite-no-wait-gate-clock # composite gate clock that does not 43*2846c905SEmmanuel Vadot # wait for clock to be active before 44*2846c905SEmmanuel Vadot # returning from clk_enable() 45*2846c905SEmmanuel Vadot "#clock-cells": 46*2846c905SEmmanuel Vadot const: 0 47*2846c905SEmmanuel Vadot 48*2846c905SEmmanuel Vadot clocks: true 49*2846c905SEmmanuel Vadot 50*2846c905SEmmanuel Vadot clock-output-names: 51*2846c905SEmmanuel Vadot maxItems: 1 52*2846c905SEmmanuel Vadot 53*2846c905SEmmanuel Vadot reg: 54*2846c905SEmmanuel Vadot maxItems: 1 55*2846c905SEmmanuel Vadot 56*2846c905SEmmanuel Vadot ti,bit-shift: 57*2846c905SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 58*2846c905SEmmanuel Vadot description: 59*2846c905SEmmanuel Vadot Number of bits to shift the bit-mask 60*2846c905SEmmanuel Vadot maximum: 31 61*2846c905SEmmanuel Vadot default: 0 62*2846c905SEmmanuel Vadot 63*2846c905SEmmanuel Vadot ti,set-bit-to-disable: 64*2846c905SEmmanuel Vadot type: boolean 65*2846c905SEmmanuel Vadot description: 66*2846c905SEmmanuel Vadot Inverts default gate programming. Setting the bit 67*2846c905SEmmanuel Vadot gates the clock and clearing the bit ungates the clock. 68*2846c905SEmmanuel Vadot 69*2846c905SEmmanuel Vadot ti,set-rate-parent: 70*2846c905SEmmanuel Vadot type: boolean 71*2846c905SEmmanuel Vadot description: 72*2846c905SEmmanuel Vadot clk_set_rate is propagated to parent clock, 73*2846c905SEmmanuel Vadot 74*2846c905SEmmanuel Vadotif: 75*2846c905SEmmanuel Vadot properties: 76*2846c905SEmmanuel Vadot compatible: 77*2846c905SEmmanuel Vadot contains: 78*2846c905SEmmanuel Vadot const: ti,clkdm-gate-clock 79*2846c905SEmmanuel Vadotthen: 80*2846c905SEmmanuel Vadot properties: 81*2846c905SEmmanuel Vadot reg: false 82*2846c905SEmmanuel Vadot required: 83*2846c905SEmmanuel Vadot - compatible 84*2846c905SEmmanuel Vadot - "#clock-cells" 85*2846c905SEmmanuel Vadot - clocks 86*2846c905SEmmanuel Vadotelse: 87*2846c905SEmmanuel Vadot required: 88*2846c905SEmmanuel Vadot - compatible 89*2846c905SEmmanuel Vadot - "#clock-cells" 90*2846c905SEmmanuel Vadot - clocks 91*2846c905SEmmanuel Vadot - reg 92*2846c905SEmmanuel Vadot 93*2846c905SEmmanuel VadotadditionalProperties: false 94*2846c905SEmmanuel Vadot 95*2846c905SEmmanuel Vadotexamples: 96*2846c905SEmmanuel Vadot - | 97*2846c905SEmmanuel Vadot bus { 98*2846c905SEmmanuel Vadot #address-cells = <1>; 99*2846c905SEmmanuel Vadot #size-cells = <0>; 100*2846c905SEmmanuel Vadot 101*2846c905SEmmanuel Vadot clock-controller@a00 { 102*2846c905SEmmanuel Vadot #clock-cells = <0>; 103*2846c905SEmmanuel Vadot compatible = "ti,gate-clock"; 104*2846c905SEmmanuel Vadot clocks = <&core_96m_fck>; 105*2846c905SEmmanuel Vadot reg = <0x0a00>; 106*2846c905SEmmanuel Vadot ti,bit-shift = <25>; 107*2846c905SEmmanuel Vadot }; 108*2846c905SEmmanuel Vadot 109*2846c905SEmmanuel Vadot clock-controller@d00 { 110*2846c905SEmmanuel Vadot compatible = "ti,hsdiv-gate-clock"; 111*2846c905SEmmanuel Vadot reg = <0x0d00>; 112*2846c905SEmmanuel Vadot #clock-cells = <0>; 113*2846c905SEmmanuel Vadot clocks = <&dpll4_m2x2_mul_ck>; 114*2846c905SEmmanuel Vadot ti,bit-shift = <0x1b>; 115*2846c905SEmmanuel Vadot ti,set-bit-to-disable; 116*2846c905SEmmanuel Vadot }; 117*2846c905SEmmanuel Vadot }; 118*2846c905SEmmanuel Vadot 119*2846c905SEmmanuel Vadot - | 120*2846c905SEmmanuel Vadot clock-controller { 121*2846c905SEmmanuel Vadot #clock-cells = <0>; 122*2846c905SEmmanuel Vadot compatible = "ti,clkdm-gate-clock"; 123*2846c905SEmmanuel Vadot clocks = <&emu_src_mux_ck>; 124*2846c905SEmmanuel Vadot }; 125*2846c905SEmmanuel Vadot 126