# Copyright (c) 2021, Linaro ltd
# SPDX-License-Identifier: Apache-2.0

description: |
  PLL node binding for STM32G0 devices

  It can take one of clk_hse or clk_hsi as input clock, with
  an input frequency from 2.66 to 16 MHz. PLLM factor is used to set the input
  clock in this acceptable range.

  PLL can have up to 3 output clocks and for each output clock, the
  frequency can be computed with the following formulae:

    f(PLL_P) = f(VCO clock) / PLLP  --> to I2S
    f(PLL_Q) = f(VCO clock) / PLLQ  --> to RNG
    f(PLL_R) = f(VCO clock) / PLLR  --> PLLCLK (System Clock)

      with f(VCO clock) = f(PLL clock input) × (PLLN / PLLM)

  The PLL output frequency must not exceed 64 MHz.

compatible: "st,stm32g0-pll-clock"

include: [clock-controller.yaml, base.yaml]

properties:
  "#clock-cells":
    const: 0

  clocks:
    required: true

  div-m:
    type: int
    required: true
    description: |
        Division factor for PLL input clock
        Valid range: 1 - 8

  mul-n:
    type: int
    required: true
    description: |
        Main PLL multiplication factor for VCO
        Valid range: 8 - 86

  div-p:
    type: int
    description: |
        PLL division factor for PLL P output
        Valid range: 2 - 32

  div-q:
    type: int
    description: |
        PLL division factor for PLL Q output
        Valid range: 2 - 8

  div-r:
    type: int
    required: true
    description: |
        PLL division factor for PLLCLK (system clock)
        Valid range: 2 - 8
