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 kDifClkmgrRecovErrTypeIoDiv2Meas = 1u << 2,
62 kDifClkmgrRecovErrTypeIoDiv4Meas = 1u << 3,
66 kDifClkmgrRecovErrTypeMainMeas = 1u << 4,
70 kDifClkmgrRecovErrTypeUsbMeas = 1u << 5,
74 kDifClkmgrRecovErrTypeIoTimeout = 1u << 6,
78 kDifClkmgrRecovErrTypeIoDiv2Timeout = 1u << 7,
82 kDifClkmgrRecovErrTypeIoDiv4Timeout = 1u << 8,
86 kDifClkmgrRecovErrTypeMainTimeout = 1u << 9,
90 kDifClkmgrRecovErrTypeUsbTimeout = 1u << 10,
91#elif defined(OPENTITAN_IS_DARJEELING)
95 kDifClkmgrRecovErrTypeShadowUpdate = 1u << 0,
99 kDifClkmgrRecovErrTypeIoMeas = 1u << 1,
103 kDifClkmgrRecovErrTypeMainMeas = 1u << 2,
107 kDifClkmgrRecovErrTypeIoTimeout = 1u << 3,
111 kDifClkmgrRecovErrTypeMainTimeout = 1u << 4,
113#error "dif_clkmgr does not support this top"
115} dif_clkmgr_recov_err_type_t;
137} dif_clkmgr_fatal_err_type_t;
322#if defined(OPENTITAN_IS_EARLGREY)
330dif_result_t dif_clkmgr_external_clock_control_is_locked(
423 dif_clkmgr_measure_clock_t *clock);
436 dif_clkmgr_measure_clock_t clock,
437 uint32_t min_threshold,
438 uint32_t max_threshold);
451 const dif_clkmgr_t *clkmgr, dif_clkmgr_measure_clock_t clock);
463 const dif_clkmgr_t *clkmgr, dif_clkmgr_measure_clock_t clock,
477 const dif_clkmgr_t *clkmgr, dif_clkmgr_measure_clock_t clock,
478 uint32_t *min_threshold, uint32_t *max_threshold);
513#if defined(OPENTITAN_IS_EARLGREY)