5 #include "sw/device/silicon_creator/lib/drivers/sensor_ctrl.h"
10 #include "sw/device/silicon_creator/lib/drivers/otp.h"
13 #include "otp_ctrl_regs.h"
14 #include "sensor_ctrl_regs.h"
18 kSensorCtrlAlertConfig =
19 OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_SENSOR_CTRL_ALERT_CFG_OFFSET,
20 kSensorCtrlAlertSize = SENSOR_CTRL_ALERT_EN_MULTIREG_COUNT,
23 static_assert(kSensorCtrlAlertSize <=
24 OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_SENSOR_CTRL_ALERT_CFG_SIZE,
25 "sensor_ctrl has more registers than OTP configuraiton bytes");
27 rom_error_t sensor_ctrl_configure(lifecycle_state_t lc_state) {
28 switch (launder32(lc_state)) {
51 for (
size_t i = 0; i < kSensorCtrlAlertSize; ++i) {
56 val = otp_read32(kSensorCtrlAlertConfig + (i & ~3ul));
57 uint32_t shift = 8 * (i %
sizeof(uint32_t));
59 kBase + SENSOR_CTRL_ALERT_EN_0_REG_OFFSET + i *
sizeof(uint32_t),