1*00d5d031SMartin Povišer# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*00d5d031SMartin Povišer%YAML 1.2
3*00d5d031SMartin Povišer---
4*00d5d031SMartin Povišer$id: http://devicetree.org/schemas/clock/apple,nco.yaml#
5*00d5d031SMartin Povišer$schema: http://devicetree.org/meta-schemas/core.yaml#
6*00d5d031SMartin Povišer
7*00d5d031SMartin Povišertitle: Apple SoCs' NCO block
8*00d5d031SMartin Povišer
9*00d5d031SMartin Povišermaintainers:
10*00d5d031SMartin Povišer  - Martin Povišer <povik+lin@cutebit.org>
11*00d5d031SMartin Povišer
12*00d5d031SMartin Povišerdescription: |
13*00d5d031SMartin Povišer  The NCO (Numerically Controlled Oscillator) block found on Apple SoCs
14*00d5d031SMartin Povišer  such as the t8103 (M1) is a programmable clock generator performing
15*00d5d031SMartin Povišer  fractional division of a high frequency input clock.
16*00d5d031SMartin Povišer
17*00d5d031SMartin Povišer  It carries a number of independent channels and is typically used for
18*00d5d031SMartin Povišer  generation of audio bitclocks.
19*00d5d031SMartin Povišer
20*00d5d031SMartin Povišerproperties:
21*00d5d031SMartin Povišer  compatible:
22*00d5d031SMartin Povišer    items:
23*00d5d031SMartin Povišer      - enum:
24*00d5d031SMartin Povišer          - apple,t6000-nco
25*00d5d031SMartin Povišer          - apple,t8103-nco
26*00d5d031SMartin Povišer      - const: apple,nco
27*00d5d031SMartin Povišer
28*00d5d031SMartin Povišer  clocks:
29*00d5d031SMartin Povišer    description:
30*00d5d031SMartin Povišer      Specifies the reference clock from which the output clocks
31*00d5d031SMartin Povišer      are derived through fractional division.
32*00d5d031SMartin Povišer    maxItems: 1
33*00d5d031SMartin Povišer
34*00d5d031SMartin Povišer  '#clock-cells':
35*00d5d031SMartin Povišer    const: 1
36*00d5d031SMartin Povišer
37*00d5d031SMartin Povišer  reg:
38*00d5d031SMartin Povišer    maxItems: 1
39*00d5d031SMartin Povišer
40*00d5d031SMartin Povišerrequired:
41*00d5d031SMartin Povišer  - compatible
42*00d5d031SMartin Povišer  - clocks
43*00d5d031SMartin Povišer  - '#clock-cells'
44*00d5d031SMartin Povišer  - reg
45*00d5d031SMartin Povišer
46*00d5d031SMartin PovišeradditionalProperties: false
47*00d5d031SMartin Povišer
48*00d5d031SMartin Povišerexamples:
49*00d5d031SMartin Povišer  - |
50*00d5d031SMartin Povišer    nco_clkref: clock-ref {
51*00d5d031SMartin Povišer      compatible = "fixed-clock";
52*00d5d031SMartin Povišer      #clock-cells = <0>;
53*00d5d031SMartin Povišer      clock-frequency = <900000000>;
54*00d5d031SMartin Povišer      clock-output-names = "nco-ref";
55*00d5d031SMartin Povišer    };
56*00d5d031SMartin Povišer
57*00d5d031SMartin Povišer    nco: clock-controller@23b044000 {
58*00d5d031SMartin Povišer      compatible = "apple,t8103-nco", "apple,nco";
59*00d5d031SMartin Povišer      reg = <0x3b044000 0x14000>;
60*00d5d031SMartin Povišer      #clock-cells = <1>;
61*00d5d031SMartin Povišer      clocks = <&nco_clkref>;
62*00d5d031SMartin Povišer    };
63