xref: /freebsd/sys/contrib/device-tree/Bindings/clock/ti/ti,gate-clock.yaml (revision 2846c90520eb4cc74e24d586a0ea0f4a0006bc73)
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