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