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