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

description: |
  PLL node binding for STM32G4 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 ADC
    f(PLL_Q) = f(VCO clock) / PLLQ  --> PLL48MCLK (for USB, 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 170 MHz.

compatible: "st,stm32g4-pll-clock"

include:
  - name: st,stm32l4-pll-clock.yaml
    property-blocklist:
      - div-m
      - mul-n

properties:

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

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