brintos

brintos / linux-shallow public Read only

0
0
Text · 3.4 KiB · b5533f8 Raw
111 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/clock/arm,syscon-icst.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: ARM System Controller ICST Clocks8 9maintainers:10  - Linus Walleij <linusw@kernel.org>11 12description: |13  The ICS525 and ICS307 oscillators are produced by Integrated14  Devices Technology (IDT). ARM integrated these oscillators deeply into their15  reference designs by adding special control registers that manage such16  oscillators to their system controllers.17 18  The various ARM system controllers contain logic to serialize and initialize19  an ICST clock request after a write to the 32 bit register at an offset20  into the system controller. Furthermore, to even be able to alter one of21  these frequencies, the system controller must first be unlocked by22  writing a special token to another offset in the system controller.23 24  Some ARM hardware contain special versions of the serial interface that only25  connects the low 8 bits of the VDW (missing one bit), hard-wires RDW to26  different values and sometimes also hard-wires the output divider. They27  therefore have special compatible strings as per this table (the OD value is28  the value on the pins, not the resulting output divider).29 30  In the core modules and logic tiles, the ICST is a configurable clock fed31  from a 24 MHz clock on the motherboard (usually the main crystal) used for32  generating e.g. video clocks. It is located on the core module and there is33  only one of these. This clock node must be a subnode of the core module.34 35  Hardware variant         RDW     OD          VDW36 37  Integrator/AP            22      1           Bit 8 0, rest variable38  integratorap-cm39 40  Integrator/AP            46      3           Bit 8 0, rest variable41  integratorap-sys42 43  Integrator/AP            22 or   1           17 or (33 or 25 MHz)44  integratorap-pci         14      1           1445 46  Integrator/CP            22      variable    Bit 8 0, rest variable47  integratorcp-cm-core48 49  Integrator/CP            22      variable    Bit 8 0, rest variable50  integratorcp-cm-mem51 52  The ICST oscillator must be provided inside a system controller node.53 54properties:55  "#clock-cells":56    const: 057 58  compatible:59    enum:60      - arm,syscon-icst52561      - arm,syscon-icst30762      - arm,syscon-icst525-integratorap-cm63      - arm,syscon-icst525-integratorap-sys64      - arm,syscon-icst525-integratorap-pci65      - arm,syscon-icst525-integratorcp-cm-core66      - arm,syscon-icst525-integratorcp-cm-mem67      - arm,integrator-cm-auxosc68      - arm,versatile-cm-auxosc69      - arm,impd1-vco170      - arm,impd1-vco271 72  reg:73    maxItems: 174    description: The VCO register75 76  clocks:77    description: Parent clock for the ICST VCO78    maxItems: 179 80  clock-output-names:81    maxItems: 182 83  lock-offset:84    $ref: /schemas/types.yaml#/definitions/uint3285    description: Offset to the unlocking register for the oscillator86 87  vco-offset:88    $ref: /schemas/types.yaml#/definitions/uint3289    description: Offset to the VCO register for the oscillator90    deprecated: true91 92required:93  - "#clock-cells"94  - compatible95  - clocks96 97additionalProperties: false98 99examples:100  - |101    vco1: clock {102      compatible = "arm,impd1-vco1";103      #clock-cells = <0>;104      lock-offset = <0x08>;105      vco-offset = <0x00>;106      clocks = <&sysclk>;107      clock-output-names = "IM-PD1-VCO1";108    };109 110...111