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