Documentation / devicetree / bindings / clock / img,pistachio-clk.yaml


Based on kernel version 6.17. Page generated on 2025-10-03 10:03 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/img,pistachio-clk.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Imagination Technologies Pistachio SoC clock controllers

maintainers:
  - Andrew Bresticker <abrestic@chromium.org>

description: |
  Pistachio has four clock controllers (core clock, peripheral clock, peripheral
  general control, and top general control) which are instantiated individually
  from the device-tree.
 
  Core clock controller:
 
  The core clock controller generates clocks for the CPU, RPU (WiFi + BT
  co-processor), audio, and several peripherals.
 
  Peripheral clock controller:
 
  The peripheral clock controller generates clocks for the DDR, ROM, and other
  peripherals. The peripheral system clock ("periph_sys") generated by the core
  clock controller is the input clock to the peripheral clock controller.
 
  Peripheral general control:
 
  The peripheral general control block generates system interface clocks and
  resets for various peripherals. It also contains miscellaneous peripheral
  control registers.
 
  Top-level general control:
 
  The top-level general control block contains miscellaneous control registers
  and gates for the external clocks "audio_clk_in" and "enet_clk_in".

properties:
  compatible:
    items:
      - enum:
          - img,pistachio-clk
          - img,pistachio-clk-periph
          - img,pistachio-cr-periph
          - img,pistachio-cr-top

  reg:
    maxItems: 1
 
  '#clock-cells':
    const: 1

  clocks:
    minItems: 1
    maxItems: 3

  clock-names:
    minItems: 1
    maxItems: 3

required:
  - compatible
  - reg
  - '#clock-cells'
  - clocks
  - clock-names

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: img,pistachio-clk
    then:
      properties:
        clocks:
          items:
            - description: External 52Mhz oscillator
            - description: Alternate audio reference clock
            - description: Alternate ethernet PHY clock

        clock-names:
          items:
            - const: xtal
            - const: audio_refclk_ext_gate
            - const: ext_enet_in_gate

  - if:
      properties:
        compatible:
          contains:
            const: img,pistachio-clk-periph
    then:
      properties:
        clocks:
          items:
            - description: Peripheral system clock

        clock-names:
          items:
            - const: periph_sys_core

  - if:
      properties:
        compatible:
          contains:
            const: img,pistachio-cr-periph
    then:
      properties:
        clocks:
          items:
            - description: System interface clock

        clock-names:
          items:
            - const: sys

  - if:
      properties:
        compatible:
          contains:
            const: img,pistachio-cr-top
    then:
      properties:
        clocks:
          items:
            - description: External audio reference clock
            - description: External ethernet PHY clock

        clock-names:
          items:
            - const: audio_clk_in
            - const: enet_clk_in

additionalProperties: false