git: 6f9c622690fd - main - rx8803: Improve probing logic
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 01 Dec 2022 09:15:33 UTC
The branch main has been updated by kd:
URL: https://cgit.FreeBSD.org/src/commit/?id=6f9c622690fd1faa6a6b8b1ead2760218e31328b
commit 6f9c622690fd1faa6a6b8b1ead2760218e31328b
Author: Kornel Dulęba <kd@FreeBSD.org>
AuthorDate: 2022-12-01 05:41:41 +0000
Commit: Kornel Dulęba <kd@FreeBSD.org>
CommitDate: 2022-12-01 09:14:58 +0000
rx8803: Improve probing logic
Add a PNP macro in order to load this driver automatically.
While here check if the device is enabled in DT before probing it.
Reviewed by: wma
Sponsored by: Alstom
Obtained from: Semihalf
Differential Revision: https://reviews.freebsd.org/D37579
---
sys/dev/iicbus/rtc/rx8803.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/sys/dev/iicbus/rtc/rx8803.c b/sys/dev/iicbus/rtc/rx8803.c
index 7bd53537e755..9551b0976cd6 100644
--- a/sys/dev/iicbus/rtc/rx8803.c
+++ b/sys/dev/iicbus/rtc/rx8803.c
@@ -28,6 +28,8 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include "opt_platform.h"
+
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/bus.h>
@@ -69,6 +71,11 @@ struct rx8803_time {
uint8_t year;
};
+static struct ofw_compat_data compat_data[] = {
+ {"epson,rx8803", 1},
+ {NULL, 0},
+};
+
static int rx8803_probe(device_t dev);
static int rx8803_attach(device_t dev);
static int rx8803_detach(device_t dev);
@@ -191,7 +198,10 @@ static int
rx8803_probe(device_t dev)
{
- if (!ofw_bus_is_compatible(dev, "epson,rx8803"))
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
return (ENXIO);
device_set_desc(dev, "Epson RX8803 Real Time Clock");
@@ -238,4 +248,6 @@ static driver_t rx8803_driver = {
};
DRIVER_MODULE(rx8803, iicbus, rx8803_driver, NULL, NULL);
+MODULE_VERSION(rx8803, 1);
MODULE_DEPEND(rx8803, iicbus, IICBUS_MINVER, IICBUS_PREFVER, IICBUS_MAXVER);
+IICBUS_FDT_PNP_INFO(compat_data);