Convert remaining I2C RTC drivers to use todr_attach().
authorkettenis <kettenis@openbsd.org>
Sat, 15 Oct 2022 18:22:53 +0000 (18:22 +0000)
committerkettenis <kettenis@openbsd.org>
Sat, 15 Oct 2022 18:22:53 +0000 (18:22 +0000)
These all get a quality of 1000 since these are supposed to be battery
backed and almost certainly what the hardware designers want us to use.

ok mglocker@, jsg@

sys/dev/i2c/abx80x.c
sys/dev/i2c/ds1307.c
sys/dev/i2c/ds3231.c
sys/dev/i2c/isl1208.c
sys/dev/i2c/mcp794xx.c

index 80c5128..310d9bd 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: abx80x.c,v 1.7 2022/04/06 18:59:28 naddy Exp $        */
+/*     $OpenBSD: abx80x.c,v 1.8 2022/10/15 18:22:53 kettenis Exp $     */
 /*
  * Copyright (c) 2018 Mark Kettenis <kettenis@openbsd.org>
  * Copyright (c) 2018 Patrick Wildt <patrick@blueri.se>
@@ -28,8 +28,6 @@
 #include <dev/ofw/openfirm.h>
 #endif
 
-extern todr_chip_handle_t todr_handle;
-
 #define ABX8XX_HTH             0x00
 #define ABX8XX_SC              0x01
 #define ABX8XX_MN              0x02
@@ -129,7 +127,8 @@ abcrtc_attach(struct device *parent, struct device *self, void *aux)
        sc->sc_todr.cookie = sc;
        sc->sc_todr.todr_gettime = abcrtc_gettime;
        sc->sc_todr.todr_settime = abcrtc_settime;
-       todr_handle = &sc->sc_todr;
+       sc->sc_todr.todr_quality = 1000;
+       todr_attach(&sc->sc_todr);
 
        printf("\n");
 }
index 372a59d..0e4cec7 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ds1307.c,v 1.5 2022/04/06 18:59:28 naddy Exp $ */
+/*     $OpenBSD: ds1307.c,v 1.6 2022/10/15 18:22:53 kettenis Exp $ */
 
 /*
  * Copyright (c) 2016 Marcus Glocker <mglocker@openbsd.org>
@@ -84,8 +84,6 @@ struct cfdriver maxrtc_cd = {
        NULL, "maxrtc", DV_DULL
 };
 
-extern todr_chip_handle_t todr_handle;
-
 /*
  * Functions.
  */
@@ -109,10 +107,6 @@ maxrtc_attach(struct device *parent, struct device *self, void *arg)
 
        sc->sc_tag = ia->ia_tag;
        sc->sc_addr = ia->ia_addr;
-       sc->sc_todr.cookie = sc;
-       sc->sc_todr.todr_gettime = maxrtc_gettime;
-       sc->sc_todr.todr_settime = maxrtc_settime;
-       sc->sc_todr.todr_setwen = NULL;
 
        if (maxrtc_enable_osc(sc) == -1)
                return;
@@ -120,7 +114,11 @@ maxrtc_attach(struct device *parent, struct device *self, void *arg)
        if (maxrtc_set_24h_mode(sc) == -1)
                return;
 
-       todr_handle = &sc->sc_todr;
+       sc->sc_todr.cookie = sc;
+       sc->sc_todr.todr_gettime = maxrtc_gettime;
+       sc->sc_todr.todr_settime = maxrtc_settime;
+       sc->sc_todr.todr_quality = 1000;
+       todr_attach(&sc->sc_todr);
 }
 
 int
index 47f0d14..b80254c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ds3231.c,v 1.2 2022/04/06 18:59:28 naddy Exp $        */
+/*     $OpenBSD: ds3231.c,v 1.3 2022/10/15 18:22:53 kettenis Exp $     */
 /*
  * Copyright (c) 2020 Mark Kettenis <kettenis@openbsd.org>
  *
@@ -23,8 +23,6 @@
 
 #include <dev/clock_subr.h>
 
-extern todr_chip_handle_t todr_handle;
-
 #define DS3231_SC              0x00
 #define DS3231_MN              0x01
 #define DS3231_HR              0x02
@@ -91,7 +89,8 @@ dsxrtc_attach(struct device *parent, struct device *self, void *aux)
        sc->sc_todr.cookie = sc;
        sc->sc_todr.todr_gettime = dsxrtc_gettime;
        sc->sc_todr.todr_settime = dsxrtc_settime;
-       todr_handle = &sc->sc_todr;
+       sc->sc_todr.todr_quality = 1000;
+       todr_attach(&sc->sc_todr);
 
        printf("\n");
 }
index 87eda94..f32b46a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: isl1208.c,v 1.4 2022/04/06 18:59:28 naddy Exp $       */
+/*     $OpenBSD: isl1208.c,v 1.5 2022/10/15 18:22:53 kettenis Exp $    */
 /*
  * Copyright (c) 2018 Mark Kettenis <kettenis@openbsd.org>
  *
@@ -23,8 +23,6 @@
 
 #include <dev/clock_subr.h>
 
-extern todr_chip_handle_t todr_handle;
-
 #define ISL1208_SC             0x00
 #define ISL1208_MN             0x01
 #define ISL1208_HR             0x02
@@ -90,7 +88,8 @@ islrtc_attach(struct device *parent, struct device *self, void *aux)
        sc->sc_todr.cookie = sc;
        sc->sc_todr.todr_gettime = islrtc_gettime;
        sc->sc_todr.todr_settime = islrtc_settime;
-       todr_handle = &sc->sc_todr;
+       sc->sc_todr.todr_quality = 1000;
+       todr_attach(&sc->sc_todr);
 
        printf("\n");
 }
index a1b9990..a6a012f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mcp794xx.c,v 1.2 2022/04/06 18:59:28 naddy Exp $      */
+/*     $OpenBSD: mcp794xx.c,v 1.3 2022/10/15 18:22:53 kettenis Exp $   */
 /*
  * Copyright (c) 2018 Mark Kettenis <kettenis@openbsd.org>
  * Copyright (c) 2018 Patrick Wildt <patrick@blueri.se>
@@ -24,8 +24,6 @@
 
 #include <dev/clock_subr.h>
 
-extern todr_chip_handle_t todr_handle;
-
 #define MCP794XX_SC            0x00
 #define  MCP794XX_SC_ST                        (1 << 7)
 #define MCP794XX_MN            0x01
@@ -95,9 +93,10 @@ mcprtc_attach(struct device *parent, struct device *self, void *aux)
        sc->sc_todr.cookie = sc;
        sc->sc_todr.todr_gettime = mcprtc_gettime;
        sc->sc_todr.todr_settime = mcprtc_settime;
+       sc->sc_todr.todr_quality = 1000;
+       todr_attach(&sc->sc_todr);
 
        printf("\n");
-       todr_handle = &sc->sc_todr;
 }
 
 int