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