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