Module Name: src Committed By: jmcneill Date: Sat Oct 7 20:18:16 UTC 2017
Modified Files: src/sys/dev/i2c: pcf8563.c Log Message: Add FDT support To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/dev/i2c/pcf8563.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/i2c/pcf8563.c diff -u src/sys/dev/i2c/pcf8563.c:1.7 src/sys/dev/i2c/pcf8563.c:1.8 --- src/sys/dev/i2c/pcf8563.c:1.7 Sat Apr 11 20:05:44 2015 +++ src/sys/dev/i2c/pcf8563.c Sat Oct 7 20:18:16 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pcf8563.c,v 1.7 2015/04/11 20:05:44 joerg Exp $ */ +/* $NetBSD: pcf8563.c,v 1.8 2017/10/07 20:18:16 jmcneill Exp $ */ /* * Copyright (c) 2011 Jonathan A. Kollasch @@ -26,8 +26,13 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* XXX */ +#if defined(__arm__) || defined(__aarch64__) +#include "opt_fdt.h" +#endif + #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pcf8563.c,v 1.7 2015/04/11 20:05:44 joerg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pcf8563.c,v 1.8 2017/10/07 20:18:16 jmcneill Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -39,6 +44,16 @@ __KERNEL_RCSID(0, "$NetBSD: pcf8563.c,v #include <dev/i2c/i2cvar.h> #include <dev/i2c/pcf8563reg.h> +#ifdef FDT +#include <dev/fdt/fdtvar.h> +#endif + +static const char *compatible[] = { + "nxp,pcf8563", + "pcf8563rtc", + NULL +}; + struct pcf8563rtc_softc { device_t sc_dev; i2c_tag_t sc_tag; @@ -64,8 +79,7 @@ pcf8563rtc_match(device_t parent, cfdata if (ia->ia_name) { /* direct config - check name */ - if (strcmp(ia->ia_name, "pcf8563rtc") == 0) - return 1; + return iic_compat_match(ia, compatible); } else { /* indirect config - check typical address */ if (ia->ia_addr == PCF8563_ADDR) @@ -98,7 +112,11 @@ pcf8563rtc_attach(device_t parent, devic I2C_F_POLL); iic_release_bus(sc->sc_tag, I2C_F_POLL); +#ifdef FDT + fdtbus_todr_attach(self, ia->ia_cookie, &sc->sc_todr); +#else todr_attach(&sc->sc_todr); +#endif } static int