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