Driver uses only first 4 bits from "alarm hour"(ABEOZ9_BIT_ALARM_HOURS) that makes it work only between 00:00-19:59. Fifth bit tells alarm time between 20:00-23:59 and it is ignored. Index: linux-imx/drivers/rtc/rtc-ab-eoz9.c =================================================================== --- linux-imx.orig/drivers/rtc/rtc-ab-eoz9.c +++ linux-imx/drivers/rtc/rtc-ab-eoz9.c @@ -64,7 +64,7 @@ #define ABEOZ9_BIT_ALARM_MIN GENMASK(6, 0) #define ABEOZ9_REG_ALARM_HOURS 0x12 #define ABEOZ9_BIT_ALARM_HOURS_PM BIT(5) -#define ABEOZ9_BIT_ALARM_HOURS GENMASK(4, 0) +#define ABEOZ9_BIT_ALARM_HOURS GENMASK(5, 0) #define ABEOZ9_REG_ALARM_DAYS 0x13 #define ABEOZ9_BIT_ALARM_DAYS GENMASK(5, 0) #define ABEOZ9_REG_ALARM_WEEKDAYS 0x14