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 <jakub.topic@anitra.cz>
diff --git a/drivers/rtc/rtc_pcf8563.c b/drivers/rtc/rtc_pcf8563.c
index 4de14f6..c67f541 100644
--- a/drivers/rtc/rtc_pcf8563.c
+++ b/drivers/rtc/rtc_pcf8563.c
@@ -413,6 +413,10 @@
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 @@
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);