Skip to content

Commit 9a9dc70

Browse files
committed
[sw,clkmgr,dif] Gate IO_DIV4 and external clock feature for Darjeeling
Signed-off-by: Robert Schilling <[email protected]>
1 parent 01738ac commit 9a9dc70

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

sw/device/lib/dif/dif_clkmgr.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ static bool jitter_enable_register_is_locked(const dif_clkmgr_t *clkmgr) {
5656
CLKMGR_JITTER_REGWEN_EN_BIT);
5757
}
5858

59+
#if OPENTITAN_CLKMGR_HAS_SW_EXTCLK_REGWEN
5960
/**
6061
* Checks if the external clock control register is locked.
6162
*
@@ -84,6 +85,7 @@ dif_result_t dif_clkmgr_external_clock_is_settled(const dif_clkmgr_t *clkmgr,
8485

8586
return kDifOk;
8687
}
88+
#endif
8789

8890
dif_result_t dif_clkmgr_jitter_enable_is_locked(const dif_clkmgr_t *clkmgr,
8991
bool *is_locked) {
@@ -262,6 +264,7 @@ dif_result_t dif_clkmgr_hintable_clock_get_hint(
262264
return kDifOk;
263265
}
264266

267+
#if OPENTITAN_CLKMGR_HAS_SW_EXTCLK_REGWEN
265268
dif_result_t dif_clkmgr_external_clock_control_is_locked(
266269
const dif_clkmgr_t *clkmgr, bool *is_locked) {
267270
if (clkmgr == NULL || is_locked == NULL) {
@@ -327,6 +330,7 @@ dif_result_t dif_clkmgr_external_clock_set_disabled(
327330
extclk_ctrl_reg);
328331
return kDifOk;
329332
}
333+
#endif
330334

331335
dif_result_t dif_clkmgr_measure_ctrl_disable(const dif_clkmgr_t *clkmgr) {
332336
if (clkmgr == NULL) {
@@ -500,6 +504,7 @@ dif_result_t dif_clkmgr_fatal_err_code_get_codes(
500504
return kDifOk;
501505
}
502506

507+
#if OPENTITAN_CLKMGR_HAS_SW_EXTCLK_REGWEN
503508
dif_result_t dif_clkmgr_wait_for_ext_clk_switch(const dif_clkmgr_t *clkmgr) {
504509
if (clkmgr == NULL) {
505510
return kDifBadArg;
@@ -511,3 +516,4 @@ dif_result_t dif_clkmgr_wait_for_ext_clk_switch(const dif_clkmgr_t *clkmgr) {
511516
} while (ext_status != kMultiBitBool4True);
512517
return kDifOk;
513518
}
519+
#endif

sw/device/lib/dif/dif_clkmgr.h

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -94,29 +94,21 @@ typedef enum dif_clkmgr_recov_err_type {
9494
*/
9595
kDifClkmgrRecovErrTypeShadowUpdate = 1u << 0,
9696
/**
97-
* A recoverable measurement error for IO_DIV4 clock.
97+
* A recoverable measurement error for IO clock.
9898
*/
99-
kDifClkmgrRecovErrTypeIoDiv4Meas = 1u << 1,
99+
kDifClkmgrRecovErrTypeIoMeas = 1u << 1,
100100
/**
101101
* A recoverable measurement error for MAIN clock.
102102
*/
103103
kDifClkmgrRecovErrTypeMainMeas = 1u << 2,
104104
/**
105-
* A recoverable measurement error for USB clock.
106-
*/
107-
kDifClkmgrRecovErrTypeUsbMeas = 1u << 3,
108-
/**
109-
* A recoverable timeout error for IO_DIV4 clock.
105+
* A recoverable timeout error for IO clock.
110106
*/
111-
kDifClkmgrRecovErrTypeIoDiv4Timeout = 1u << 4,
107+
kDifClkmgrRecovErrTypeIoTimeout = 1u << 3,
112108
/**
113109
* A recoverable timeout error for MAIN clock.
114110
*/
115-
kDifClkmgrRecovErrTypeMainTimeout = 1u << 5,
116-
/**
117-
* A recoverable timeout error for USB clock.
118-
*/
119-
kDifClkmgrRecovErrTypeUsbTimeout = 1u << 6,
111+
kDifClkmgrRecovErrTypeMainTimeout = 1u << 4,
120112
#else
121113
#error "dif_clkmgr does not support this top"
122114
#endif
@@ -327,6 +319,7 @@ dif_result_t dif_clkmgr_hintable_clock_get_hint(
327319
const dif_clkmgr_t *clkmgr, dif_clkmgr_hintable_clock_t clock,
328320
dif_toggle_t *state);
329321

322+
#if defined(OPENTITAN_IS_EARLGREY)
330323
/**
331324
* Check if external clock control is locked.
332325
* @param clkmgr Clock Manager Handle.
@@ -380,6 +373,7 @@ dif_result_t dif_clkmgr_external_clock_set_disabled(const dif_clkmgr_t *clkmgr);
380373
OT_WARN_UNUSED_RESULT
381374
dif_result_t dif_clkmgr_external_clock_is_settled(const dif_clkmgr_t *clkmgr,
382375
bool *status);
376+
#endif
383377

384378
/**
385379
* Disable measurement control updates.
@@ -516,6 +510,7 @@ OT_WARN_UNUSED_RESULT
516510
dif_result_t dif_clkmgr_fatal_err_code_get_codes(
517511
const dif_clkmgr_t *clkmgr, dif_clkmgr_fatal_err_codes_t *codes);
518512

513+
#if defined(OPENTITAN_IS_EARLGREY)
519514
/**
520515
* Wait for external clock switch to finish.
521516
*
@@ -524,6 +519,9 @@ dif_result_t dif_clkmgr_fatal_err_code_get_codes(
524519
*/
525520
OT_WARN_UNUSED_RESULT
526521
dif_result_t dif_clkmgr_wait_for_ext_clk_switch(const dif_clkmgr_t *clkmgr);
522+
523+
#endif
524+
527525
#ifdef __cplusplus
528526
} // extern "C"
529527
#endif // __cplusplus

0 commit comments

Comments
 (0)