xref: /linux/Documentation/devicetree/bindings/clock/apple,nco.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
100d5d031SMartin Povišer# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
200d5d031SMartin Povišer%YAML 1.2
300d5d031SMartin Povišer---
400d5d031SMartin Povišer$id: http://devicetree.org/schemas/clock/apple,nco.yaml#
500d5d031SMartin Povišer$schema: http://devicetree.org/meta-schemas/core.yaml#
600d5d031SMartin Povišer
700d5d031SMartin Povišertitle: Apple SoCs' NCO block
800d5d031SMartin Povišer
900d5d031SMartin Povišermaintainers:
1000d5d031SMartin Povišer  - Martin Povišer <povik+lin@cutebit.org>
1100d5d031SMartin Povišer
1200d5d031SMartin Povišerdescription: |
1300d5d031SMartin Povišer  The NCO (Numerically Controlled Oscillator) block found on Apple SoCs
1400d5d031SMartin Povišer  such as the t8103 (M1) is a programmable clock generator performing
1500d5d031SMartin Povišer  fractional division of a high frequency input clock.
1600d5d031SMartin Povišer
1700d5d031SMartin Povišer  It carries a number of independent channels and is typically used for
1800d5d031SMartin Povišer  generation of audio bitclocks.
1900d5d031SMartin Povišer
2000d5d031SMartin Povišerproperties:
2100d5d031SMartin Povišer  compatible:
2200d5d031SMartin Povišer    items:
2300d5d031SMartin Povišer      - enum:
2400d5d031SMartin Povišer          - apple,t6000-nco
2500d5d031SMartin Povišer          - apple,t8103-nco
26*b058e9d8SJanne Grunau          - apple,t8112-nco
2700d5d031SMartin Povišer      - const: apple,nco
2800d5d031SMartin Povišer
2900d5d031SMartin Povišer  clocks:
3000d5d031SMartin Povišer    description:
3100d5d031SMartin Povišer      Specifies the reference clock from which the output clocks
3200d5d031SMartin Povišer      are derived through fractional division.
3300d5d031SMartin Povišer    maxItems: 1
3400d5d031SMartin Povišer
3500d5d031SMartin Povišer  '#clock-cells':
3600d5d031SMartin Povišer    const: 1
3700d5d031SMartin Povišer
3800d5d031SMartin Povišer  reg:
3900d5d031SMartin Povišer    maxItems: 1
4000d5d031SMartin Povišer
4100d5d031SMartin Povišerrequired:
4200d5d031SMartin Povišer  - compatible
4300d5d031SMartin Povišer  - clocks
4400d5d031SMartin Povišer  - '#clock-cells'
4500d5d031SMartin Povišer  - reg
4600d5d031SMartin Povišer
4700d5d031SMartin PovišeradditionalProperties: false
4800d5d031SMartin Povišer
4900d5d031SMartin Povišerexamples:
5000d5d031SMartin Povišer  - |
5100d5d031SMartin Povišer    nco_clkref: clock-ref {
5200d5d031SMartin Povišer      compatible = "fixed-clock";
5300d5d031SMartin Povišer      #clock-cells = <0>;
5400d5d031SMartin Povišer      clock-frequency = <900000000>;
5500d5d031SMartin Povišer      clock-output-names = "nco-ref";
5600d5d031SMartin Povišer    };
5700d5d031SMartin Povišer
5800d5d031SMartin Povišer    nco: clock-controller@23b044000 {
5900d5d031SMartin Povišer      compatible = "apple,t8103-nco", "apple,nco";
6000d5d031SMartin Povišer      reg = <0x3b044000 0x14000>;
6100d5d031SMartin Povišer      #clock-cells = <1>;
6200d5d031SMartin Povišer      clocks = <&nco_clkref>;
6300d5d031SMartin Povišer    };
64