From 2feeeefbe76c724b1aa9bfbe7374375fa3e4b08a Mon Sep 17 00:00:00 2001 From: Jakub Topic Date: Mon, 17 Jun 2024 18:31:38 +0200 Subject: [PATCH] drivers: rtc: pcf8563: check if the node has an interrupt pin Verify if the int1_gpios property exists for the specific node. Signed-off-by: Jakub Topic --- drivers/rtc/rtc_pcf8563.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc_pcf8563.c b/drivers/rtc/rtc_pcf8563.c index 4de14f6bb10..c67f541e3a9 100644 --- a/drivers/rtc/rtc_pcf8563.c +++ b/drivers/rtc/rtc_pcf8563.c @@ -413,6 +413,10 @@ static int pcf8563_alarm_set_callback(const struct device *dev, uint16_t id, struct pcf8563_data *data = dev->data; int ret; + if (config->int1.port == NULL) { + return -ENOTSUP; + } + if (id != 0) { LOG_ERR("invalid ID %d", id); return -EINVAL; @@ -471,14 +475,14 @@ int pcf8563_init(const struct device *dev) if (!device_is_ready(config->i2c.bus)) { LOG_ERR("Failed to get pointer to %s device!", config->i2c.bus->name); - return -EINVAL; + return -ENODEV; } /* Check if it's alive. */ ret = i2c_reg_read_byte_dt(&config->i2c, PCF8563_CONTROL1_REGISTER, ®); if (ret) { LOG_ERR("Failed to read from PCF85063! (err %i)", ret); - return -EIO; + return -ENODEV; } LOG_INF("%s is initialized!", dev->name);