# Copyright 2021 The Chromium OS Authors
# SPDX-License-Identifier: Apache-2.0

description: |
    ST STM32 family USB Type-C / Power Delivery. The default values were
    taken from the LL_UCPD_StructInit function defined in the HAL.

compatible: "st,stm32-ucpd"

include: [base.yaml, pinctrl-device.yaml]

properties:
  reg:
    required: true

  clocks:
    required: true

  interrupts:
    required: true

  psc-ucpdclk:
    default: 2
    type: int
    enum:
      - 1
      - 2
      - 4
      - 8
      - 16
      - 32
      - 64
      - 128
    description: |
      Determines the division ratio of a kernel clock pre-scaler
      producing UCPD peripheral clock (ucpd_clk). It is recommended
      to use the pre-scaler so as to set the ucpd_clk frequency in
      the range from 6 to 9 MHz.

  ifrgap:
    type: int
    default: 17
    description: |
      Determines the division ratio of a ucpd_clk divider producing
      inter-frame gap timer clock (tInterFrameGap).
      The division ratio 15 is to apply for Tx clock at the USB PD 2.0
      specification nominal value.
      Valid range: 2 - 32

  transwin:
    type: int
    default: 8
    description: |
      Determines the division ratio of a hbit_clk divider producing
      tTransitionWindow interval.
      Valid range: 2 - 32

  hbitclkdiv:
    type: int
    default: 14
    description: |
      Determines the division ratio of a ucpd_clk divider producing
      half-bit clock (hbit_clk)
      Valid range: 1 - 64

  pinctrl-0:
    required: true

  pinctrl-names:
    required: true
