# Copyright (c) 2022 Intel Corporation. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

description: Intel cAVS clock controlling related constants.

compatible: "intel,cavs-shim-clkctl"

properties:
    cavs-clkctl-clk-wovcro:
        type: int
        required: false
        description: Index of WOVCRO clock encoding in the encoding array (if wovcro-supported is true).

    cavs-clkctl-clk-lpro:
        type: int
        required: false
        description: Index of LPRO clock encoding in the encoding array.

    cavs-clkctl-clk-hpro:
        type: int
        required: false
        description: Index of HPRO clock encoding in the encoding array.

    cavs-clkctl-freq-enc:
        type: array
        required: true
        description: Array that encodes what is needed to enable each clock.

    cavs-clkctl-freq-mask:
        type: array
        required: false
        description: Array that encodes needed masks to enable each clock.

    cavs-clkctl-freq-default:
        type: int
        required: true
        description: Index for the default clock.

    cavs-clkctl-freq-lowest:
        type: int
        required: true
        description: Index for the lowest frequency clock.

    wovcro-supported:
        type: boolean
        description: |
          If WoV clock ring oscillator is supported.
