| # SPDX-License-Identifier: GPL-2.0-only | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/clock/ti/ti,gate-clock.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Texas Instruments gate clock | |
| maintainers: | |
| - Tero Kristo <kristo@kernel.org> | |
| description: | | |
| *Deprecated design pattern: one node per clock* | |
| This clock is quite much similar to the basic gate-clock [1], however, | |
| it supports a number of additional features. If no register | |
| is provided for this clock, the code assumes that a clockdomain | |
| will be controlled instead and the corresponding hw-ops for | |
| that is used. | |
| [1] Documentation/devicetree/bindings/clock/gpio-gate-clock.yaml | |
| [2] Documentation/devicetree/bindings/clock/ti/clockdomain.txt | |
| properties: | |
| compatible: | |
| enum: | |
| - ti,gate-clock # basic gate clock | |
| - ti,wait-gate-clock # gate clock which waits until clock is | |
| # active before returning from clk_enable() | |
| - ti,dss-gate-clock # gate clock with DSS specific hardware | |
| # handling | |
| - ti,am35xx-gate-clock # gate clock with AM35xx specific hardware | |
| # handling | |
| - ti,clkdm-gate-clock # clockdomain gate clock, which derives its | |
| # functional clock directly from a | |
| # clockdomain, see [2] how to map | |
| # clockdomains properly | |
| - ti,hsdiv-gate-clock # gate clock with OMAP36xx specific hardware | |
| # handling, required for a hardware errata | |
| - ti,composite-gate-clock # composite gate clock, to be part of | |
| # composite clock | |
| - ti,composite-no-wait-gate-clock # composite gate clock that does not | |
| # wait for clock to be active before | |
| # returning from clk_enable() | |
| "#clock-cells": | |
| const: 0 | |
| clocks: true | |
| clock-output-names: | |
| maxItems: 1 | |
| reg: | |
| maxItems: 1 | |
| ti,bit-shift: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| description: | |
| Number of bits to shift the bit-mask | |
| maximum: 31 | |
| default: 0 | |
| ti,set-bit-to-disable: | |
| type: boolean | |
| description: | |
| Inverts default gate programming. Setting the bit | |
| gates the clock and clearing the bit ungates the clock. | |
| ti,set-rate-parent: | |
| type: boolean | |
| description: | |
| clk_set_rate is propagated to parent clock, | |
| if: | |
| properties: | |
| compatible: | |
| contains: | |
| const: ti,clkdm-gate-clock | |
| then: | |
| properties: | |
| reg: false | |
| required: | |
| - compatible | |
| - "#clock-cells" | |
| - clocks | |
| else: | |
| required: | |
| - compatible | |
| - "#clock-cells" | |
| - clocks | |
| - reg | |
| additionalProperties: false | |
| examples: | |
| - | | |
| bus { | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| clock-controller@a00 { | |
| #clock-cells = <0>; | |
| compatible = "ti,gate-clock"; | |
| clocks = <&core_96m_fck>; | |
| reg = <0x0a00>; | |
| ti,bit-shift = <25>; | |
| }; | |
| clock-controller@d00 { | |
| compatible = "ti,hsdiv-gate-clock"; | |
| reg = <0x0d00>; | |
| #clock-cells = <0>; | |
| clocks = <&dpll4_m2x2_mul_ck>; | |
| ti,bit-shift = <0x1b>; | |
| ti,set-bit-to-disable; | |
| }; | |
| }; | |
| - | | |
| clock-controller { | |
| #clock-cells = <0>; | |
| compatible = "ti,clkdm-gate-clock"; | |
| clocks = <&emu_src_mux_ck>; | |
| }; | |