5#ifndef OPENTITAN_SW_DEVICE_LIB_DIF_DIF_CLKMGR_H_
6#define OPENTITAN_SW_DEVICE_LIB_DIF_DIF_CLKMGR_H_
20#include "sw/device/lib/dif/autogen/dif_clkmgr_autogen.h"
43typedef uint32_t dif_clkmgr_measure_clock_t;
45typedef enum dif_clkmgr_recov_err_type {
46#if defined(OPENTITAN_IS_EARLGREY)
50 kDifClkmgrRecovErrTypeShadowUpdate = 1u << 0,
54 kDifClkmgrRecovErrTypeIoMeas = 1u << 1,
58 kDifClkmgrRecovErrTypeIoDiv4Meas = 1u << 2,
62 kDifClkmgrRecovErrTypeMainMeas = 1u << 3,
66 kDifClkmgrRecovErrTypeUsbMeas = 1u << 4,
70 kDifClkmgrRecovErrTypeIoTimeout = 1u << 5,
74 kDifClkmgrRecovErrTypeIoDiv4Timeout = 1u << 6,
78 kDifClkmgrRecovErrTypeMainTimeout = 1u << 7,
82 kDifClkmgrRecovErrTypeUsbTimeout = 1u << 8,
83#elif defined(OPENTITAN_IS_DARJEELING)
87 kDifClkmgrRecovErrTypeShadowUpdate = 1u << 0,
91 kDifClkmgrRecovErrTypeIoMeas = 1u << 1,
95 kDifClkmgrRecovErrTypeMainMeas = 1u << 2,
99 kDifClkmgrRecovErrTypeIoTimeout = 1u << 3,
103 kDifClkmgrRecovErrTypeMainTimeout = 1u << 4,
105#error "dif_clkmgr does not support this top"
107} dif_clkmgr_recov_err_type_t;
129} dif_clkmgr_fatal_err_type_t;
314#if defined(OPENTITAN_IS_EARLGREY)
322dif_result_t dif_clkmgr_external_clock_control_is_locked(
415 dif_clkmgr_measure_clock_t *clock);
428 dif_clkmgr_measure_clock_t clock,
429 uint32_t min_threshold,
430 uint32_t max_threshold);
443 const dif_clkmgr_t *clkmgr, dif_clkmgr_measure_clock_t clock);
455 const dif_clkmgr_t *clkmgr, dif_clkmgr_measure_clock_t clock,
469 const dif_clkmgr_t *clkmgr, dif_clkmgr_measure_clock_t clock,
470 uint32_t *min_threshold, uint32_t *max_threshold);
505#if defined(OPENTITAN_IS_EARLGREY)