xref: /linux/Documentation/devicetree/bindings/clock/apple,nco.yaml (revision 0a94608f0f7de9b1135ffea3546afe68eafef57f)
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    items:
23      - enum:
24          - apple,t6000-nco
25          - apple,t8103-nco
26      - const: apple,nco
27
28  clocks:
29    description:
30      Specifies the reference clock from which the output clocks
31      are derived through fractional division.
32    maxItems: 1
33
34  '#clock-cells':
35    const: 1
36
37  reg:
38    maxItems: 1
39
40required:
41  - compatible
42  - clocks
43  - '#clock-cells'
44  - reg
45
46additionalProperties: false
47
48examples:
49  - |
50    nco_clkref: clock-ref {
51      compatible = "fixed-clock";
52      #clock-cells = <0>;
53      clock-frequency = <900000000>;
54      clock-output-names = "nco-ref";
55    };
56
57    nco: clock-controller@23b044000 {
58      compatible = "apple,t8103-nco", "apple,nco";
59      reg = <0x3b044000 0x14000>;
60      #clock-cells = <1>;
61      clocks = <&nco_clkref>;
62    };
63