Module Name:    src
Committed By:   thorpej
Date:           Sun Jan 17 21:56:20 UTC 2021

Modified Files:
        src/sys/dev/i2c: at24cxx.c axppmic.c ds1307.c fan53555.c m41st84.c
            pcagpio.c pcai2cmux.c rkpmic.c
        src/sys/sys: device.h

Log Message:
Change the device_compatible_entry struct to have a union of
a scalar value (uintptr_t value) and a pointer value (const void *data),
rather than just "uintptr_t data".  This eliminates the need for drivers
to cast this value, and doesn't lose const'ness of pointers assigned
to the field.

Update all of the users of this field to use the correct set of
designated initialisers for each specific case.


To generate a diff of this commit:
cvs rdiff -u -r1.36 -r1.37 src/sys/dev/i2c/at24cxx.c
cvs rdiff -u -r1.29 -r1.30 src/sys/dev/i2c/axppmic.c
cvs rdiff -u -r1.34 -r1.35 src/sys/dev/i2c/ds1307.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/i2c/fan53555.c
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/i2c/m41st84.c
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/i2c/pcagpio.c
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/i2c/pcai2cmux.c
cvs rdiff -u -r1.8 -r1.9 src/sys/dev/i2c/rkpmic.c
cvs rdiff -u -r1.159 -r1.160 src/sys/sys/device.h

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/at24cxx.c
diff -u src/sys/dev/i2c/at24cxx.c:1.36 src/sys/dev/i2c/at24cxx.c:1.37
--- src/sys/dev/i2c/at24cxx.c:1.36	Wed Jan 15 06:09:36 2020
+++ src/sys/dev/i2c/at24cxx.c	Sun Jan 17 21:56:20 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: at24cxx.c,v 1.36 2020/01/15 06:09:36 thorpej Exp $	*/
+/*	$NetBSD: at24cxx.c,v 1.37 2021/01/17 21:56:20 thorpej Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: at24cxx.c,v 1.36 2020/01/15 06:09:36 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: at24cxx.c,v 1.37 2021/01/17 21:56:20 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -112,21 +112,22 @@ const struct cdevsw seeprom_cdevsw = {
 static int seeprom_wait_idle(struct seeprom_softc *);
 
 static const struct device_compatible_entry compat_data[] = {
-	{ "i2c-at24c01",		128 },
-	{ "i2c-at24c02",		256 },
-	{ "i2c-at24c04",		512 },
-	{ "i2c-at24c08",		1024 },
-	{ "i2c-at24c16",		2048 },
-	{ "i2c-at24c32",		4096 },
-	{ "i2c-at24c64",		8192 },
-	{ "i2c-at24c128",		16384 },
-	{ "i2c-at24c256",		32768 },
-	{ "i2c-at24c512",		65536 },
-	{ "i2c-at34c02",		256 },
-	{ "atmel,24c02",		256 },
-	{ "atmel,24c16",		2048 },
-	{ "atmel,24c256",		32768 },
-	{ NULL,				0 }
+	{ .compat = "i2c-at24c01",		.value = 128 },
+	{ .compat = "i2c-at24c02",		.value = 256 },
+	{ .compat = "i2c-at24c04",		.value = 512 },
+	{ .compat = "i2c-at24c08",		.value = 1024 },
+	{ .compat = "i2c-at24c16",		.value = 2048 },
+	{ .compat = "i2c-at24c32",		.value = 4096 },
+	{ .compat = "i2c-at24c64",		.value = 8192 },
+	{ .compat = "i2c-at24c128",		.value = 16384 },
+	{ .compat = "i2c-at24c256",		.value = 32768 },
+	{ .compat = "i2c-at24c512",		.value = 65536 },
+	{ .compat = "i2c-at34c02",		.value = 256 },
+	{ .compat = "atmel,24c02",		.value = 256 },
+	{ .compat = "atmel,24c16",		.value = 2048 },
+	{ .compat = "atmel,24c256",		.value = 32768 },
+
+	{ 0 }
 };
 
 static int
@@ -182,7 +183,7 @@ seeprom_attach(device_t parent, device_t
 
 	if (sc->sc_size <= 0 && ia->ia_ncompat > 0) {
 		if (iic_compatible_match(ia, compat_data, &dce))
-			sc->sc_size = dce->data;
+			sc->sc_size = dce->value;
 	}
 
 	switch (sc->sc_size) {

Index: src/sys/dev/i2c/axppmic.c
diff -u src/sys/dev/i2c/axppmic.c:1.29 src/sys/dev/i2c/axppmic.c:1.30
--- src/sys/dev/i2c/axppmic.c:1.29	Sun Feb 16 20:32:29 2020
+++ src/sys/dev/i2c/axppmic.c	Sun Jan 17 21:56:20 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: axppmic.c,v 1.29 2020/02/16 20:32:29 thorpej Exp $ */
+/* $NetBSD: axppmic.c,v 1.30 2021/01/17 21:56:20 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2014-2018 Jared McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: axppmic.c,v 1.29 2020/02/16 20:32:29 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: axppmic.c,v 1.30 2021/01/17 21:56:20 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -466,12 +466,13 @@ static const struct axppmic_config axp81
 };
 
 static const struct device_compatible_entry compat_data[] = {
-	{ "x-powers,axp803",		(uintptr_t)&axp803_config },
-	{ "x-powers,axp805",		(uintptr_t)&axp805_config },
-	{ "x-powers,axp806",		(uintptr_t)&axp806_config },
-	{ "x-powers,axp809",		(uintptr_t)&axp809_config },
-	{ "x-powers,axp813",		(uintptr_t)&axp813_config },
-	{ NULL,				0 }
+	{ .compat = "x-powers,axp803",		.data = &axp803_config },
+	{ .compat = "x-powers,axp805",		.data = &axp805_config },
+	{ .compat = "x-powers,axp806",		.data = &axp806_config },
+	{ .compat = "x-powers,axp809",		.data = &axp809_config },
+	{ .compat = "x-powers,axp813",		.data = &axp813_config },
+
+	{ 0 }
 };
 
 static int
@@ -950,7 +951,7 @@ axppmic_attach(device_t parent, device_t
 
 	(void) iic_compatible_match(ia, compat_data, &dce);
 	KASSERT(dce != NULL);
-	c = (void *)dce->data;
+	c = dce->data;
 
 	sc->sc_dev = self;
 	sc->sc_i2c = ia->ia_tag;

Index: src/sys/dev/i2c/ds1307.c
diff -u src/sys/dev/i2c/ds1307.c:1.34 src/sys/dev/i2c/ds1307.c:1.35
--- src/sys/dev/i2c/ds1307.c:1.34	Thu Jan  2 16:24:51 2020
+++ src/sys/dev/i2c/ds1307.c	Sun Jan 17 21:56:20 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ds1307.c,v 1.34 2020/01/02 16:24:51 thorpej Exp $	*/
+/*	$NetBSD: ds1307.c,v 1.35 2021/01/17 21:56:20 thorpej Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ds1307.c,v 1.34 2020/01/02 16:24:51 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ds1307.c,v 1.35 2021/01/17 21:56:20 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -157,28 +157,28 @@ static const struct dsrtc_model mcp7940_
 };
 
 static const struct device_compatible_entry compat_data[] = {
-	{ "dallas,ds1307",		(uintptr_t)&ds1307_model },
-	{ "maxim,ds1307",		(uintptr_t)&ds1307_model },
-	{ "i2c-ds1307",			(uintptr_t)&ds1307_model },
+	{ .compat = "dallas,ds1307",		.data = &ds1307_model },
+	{ .compat = "maxim,ds1307",		.data = &ds1307_model },
+	{ .compat = "i2c-ds1307",		.data = &ds1307_model },
 
-	{ "dallas,ds1339",		(uintptr_t)&ds1339_model },
-	{ "maxim,ds1339",		(uintptr_t)&ds1339_model },
+	{ .compat = "dallas,ds1339",		.data = &ds1339_model },
+	{ .compat = "maxim,ds1339",		.data = &ds1339_model },
 
-	{ "dallas,ds1340",		(uintptr_t)&ds1340_model },
-	{ "maxim,ds1340",		(uintptr_t)&ds1340_model },
+	{ .compat = "dallas,ds1340",		.data = &ds1340_model },
+	{ .compat = "maxim,ds1340",		.data = &ds1340_model },
 
-	{ "dallas,ds1672",		(uintptr_t)&ds1672_model },
-	{ "maxim,ds1672",		(uintptr_t)&ds1672_model },
+	{ .compat = "dallas,ds1672",		.data = &ds1672_model },
+	{ .compat = "maxim,ds1672",		.data = &ds1672_model },
 
-	{ "dallas,ds3231",		(uintptr_t)&ds3231_model },
-	{ "maxim,ds3231",		(uintptr_t)&ds3231_model },
+	{ .compat = "dallas,ds3231",		.data = &ds3231_model },
+	{ .compat = "maxim,ds3231",		.data = &ds3231_model },
 
-	{ "dallas,ds3232",		(uintptr_t)&ds3232_model },
-	{ "maxim,ds3232",		(uintptr_t)&ds3232_model },
+	{ .compat = "dallas,ds3232",		.data = &ds3232_model },
+	{ .compat = "maxim,ds3232",		.data = &ds3232_model },
 
-	{ "microchip,mcp7940",		(uintptr_t)&mcp7940_model },
+	{ .compat = "microchip,mcp7940",	.data = &mcp7940_model },
 
-	{ NULL,				0 }
+	{ 0 }
 };
 
 struct dsrtc_softc {
@@ -242,7 +242,7 @@ dsrtc_model_by_number(u_int model)
 		return &ds1307_model;
 
 	for (dce = compat_data; dce->compat != NULL; dce++) {
-		dm = (void *)dce->data;
+		dm = dce->data;
 		if (dm->dm_model == model)
 			return dm;
 	}
@@ -256,7 +256,7 @@ dsrtc_model_by_compat(const struct i2c_a
 	const struct device_compatible_entry *dce;
 
 	if (iic_compatible_match(ia, compat_data, &dce))
-		dm = (void *)dce->data;
+		dm = dce->data;
 
 	return dm;
 }

Index: src/sys/dev/i2c/fan53555.c
diff -u src/sys/dev/i2c/fan53555.c:1.5 src/sys/dev/i2c/fan53555.c:1.6
--- src/sys/dev/i2c/fan53555.c:1.5	Mon Dec 23 19:22:46 2019
+++ src/sys/dev/i2c/fan53555.c	Sun Jan 17 21:56:20 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: fan53555.c,v 1.5 2019/12/23 19:22:46 thorpej Exp $ */
+/* $NetBSD: fan53555.c,v 1.6 2021/01/17 21:56:20 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 Jared McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fan53555.c,v 1.5 2019/12/23 19:22:46 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fan53555.c,v 1.6 2021/01/17 21:56:20 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -90,9 +90,10 @@ static const int fan53555_slew_rates[] =
 };
 
 static const struct device_compatible_entry compat_data[] = {
-	{ "silergy,syr827",		FAN_VENDOR_SILERGY },
-	{ "silergy,syr828",		FAN_VENDOR_SILERGY },
-	{ NULL,				0 }
+	{ .compat = "silergy,syr827",	.value = FAN_VENDOR_SILERGY },
+	{ .compat = "silergy,syr828",	.value = FAN_VENDOR_SILERGY },
+
+	{ 0 }
 };
 
 static uint8_t
@@ -310,8 +311,9 @@ fan53555_attach(device_t parent, device_
 	sc->sc_phandle = ia->ia_cookie;
 
 	iic_compatible_match(ia, compat_data, &compat);
+	KASSERT(compat != NULL);
 
-	if (fan53555_init(sc, compat->data) != 0)
+	if (fan53555_init(sc, compat->value) != 0)
 		return;
 
 	fdtbus_register_regulator_controller(self, sc->sc_phandle,

Index: src/sys/dev/i2c/m41st84.c
diff -u src/sys/dev/i2c/m41st84.c:1.27 src/sys/dev/i2c/m41st84.c:1.28
--- src/sys/dev/i2c/m41st84.c:1.27	Fri Jan  3 03:44:42 2020
+++ src/sys/dev/i2c/m41st84.c	Sun Jan 17 21:56:20 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: m41st84.c,v 1.27 2020/01/03 03:44:42 thorpej Exp $	*/
+/*	$NetBSD: m41st84.c,v 1.28 2021/01/17 21:56:20 thorpej Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: m41st84.c,v 1.27 2020/01/03 03:44:42 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: m41st84.c,v 1.28 2021/01/17 21:56:20 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -81,10 +81,11 @@ static const struct strtc_model m48t84_m
 };
 
 static const struct device_compatible_entry compat_data[] = {
-	{ "st,m41t80",		(uintptr_t)&m41t80_model },
-	{ "st,m41t81",		(uintptr_t)&m41t81_model },
-	{ "st,m41t84",		(uintptr_t)&m48t84_model },
-	{ NULL,			0 },
+	{ .compat = "st,m41t80",	.data = &m41t80_model },
+	{ .compat = "st,m41t81",	.data = &m41t81_model },
+	{ .compat = "st,m41t84",	.data = &m48t84_model },
+
+	{ 0 }
 };
 
 struct strtc_softc {

Index: src/sys/dev/i2c/pcagpio.c
diff -u src/sys/dev/i2c/pcagpio.c:1.6 src/sys/dev/i2c/pcagpio.c:1.7
--- src/sys/dev/i2c/pcagpio.c:1.6	Sat Oct 31 14:38:54 2020
+++ src/sys/dev/i2c/pcagpio.c	Sun Jan 17 21:56:20 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: pcagpio.c,v 1.6 2020/10/31 14:38:54 jdc Exp $ */
+/* $NetBSD: pcagpio.c,v 1.7 2021/01/17 21:56:20 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2020 Michael Lorenz
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pcagpio.c,v 1.6 2020/10/31 14:38:54 jdc Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pcagpio.c,v 1.7 2021/01/17 21:56:20 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -99,11 +99,12 @@ CFATTACH_DECL_NEW(pcagpio, sizeof(struct
     pcagpio_match, pcagpio_attach, pcagpio_detach, NULL);
 
 static const struct device_compatible_entry compat_data[] = {
-	{ "i2c-pca9555",	1 },
-	{ "pca9555",		1 },
-	{ "i2c-pca9556",	0 },
-	{ "pca9556",		0 },
-	{ NULL,			0 }
+	{ .compat = "i2c-pca9555",	.value = 1 },
+	{ .compat = "pca9555",		.value = 1 },
+	{ .compat = "i2c-pca9556",	.value = 0 },
+	{ .compat = "pca9556",		.value = 0 },
+
+	{ 0 }
 };
 
 static int
@@ -157,7 +158,7 @@ pcagpio_attach(device_t parent, device_t
 	aprint_naive("\n");
 	sc->sc_is_16bit = 0;
 	if (iic_compatible_match(ia, compat_data, &dce))
-		sc->sc_is_16bit = dce->data;
+		sc->sc_is_16bit = dce->value;
 
 	aprint_normal(": %s\n", sc->sc_is_16bit ? "PCA9555" : "PCA9556");
 

Index: src/sys/dev/i2c/pcai2cmux.c
diff -u src/sys/dev/i2c/pcai2cmux.c:1.1 src/sys/dev/i2c/pcai2cmux.c:1.2
--- src/sys/dev/i2c/pcai2cmux.c:1.1	Tue Dec 29 01:47:51 2020
+++ src/sys/dev/i2c/pcai2cmux.c	Sun Jan 17 21:56:20 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: pcai2cmux.c,v 1.1 2020/12/29 01:47:51 thorpej Exp $	*/
+/*	$NetBSD: pcai2cmux.c,v 1.2 2021/01/17 21:56:20 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pcai2cmux.c,v 1.1 2020/12/29 01:47:51 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pcai2cmux.c,v 1.2 2021/01/17 21:56:20 thorpej Exp $");
 
 /*
  * Driver for NXP PCA954x / PCA984x I2C switches and multiplexers.
@@ -100,53 +100,53 @@ static const struct pcaiicmux_type switc
 static const struct device_compatible_entry compat_data[] = {
 	/* PCA9540 - 2 channel i2c mux */
 	{ .compat = "nxp,pca9540",
-	  .data = (uintptr_t)&mux2_type },
+	  .data = &mux2_type },
 
 	/* PCA9542 - 2 channel i2c mux with interrupts */
 	{ .compat = "nxp,pca9542",
-	  .data = (uintptr_t)&mux2_type },
+	  .data = &mux2_type },
 
 	/* PCA9543 - 2 channel i2c switch with interrupts */
 	{ .compat = "nxp,pca9543",
-	  .data = (uintptr_t)&switch2_type },
+	  .data = &switch2_type },
 
 	/* PCA9544 - 4 channel i2c mux with interrupts */
 	{ .compat = "nxp,pca9544",
-	  .data = (uintptr_t)&mux4_type },
+	  .data = &mux4_type },
 
 	/* PCA9545 - 4 channel i2c switch with interrupts */
 	{ .compat = "nxp,pca9545",
-	  .data = (uintptr_t)&switch4_type },
+	  .data = &switch4_type },
 
 	/* PCA9546 - 4 channel i2c switch */
 	{ .compat = "nxp,pca9546",
-	  .data = (uintptr_t)&switch4_type },
+	  .data = &switch4_type },
 
 	/* PCA9547 - 8 channel i2c mux */
 	{ .compat = "nxp,pca9547",
-	  .data = (uintptr_t)&mux8_type },
+	  .data = &mux8_type },
 
 	/* PCA9548 - 8 channel i2c switch */
 	{ .compat = "nxp,pca9548",
-	  .data = (uintptr_t)&switch8_type },
+	  .data = &switch8_type },
 
 	/* PCA9846 - 4 channel i2c switch */
 	{ .compat = "nxp,pca9846",
-	  .data = (uintptr_t)&switch4_type },
+	  .data = &switch4_type },
 
 	/* PCA9847 - 8 channel i2c mux */
 	{ .compat = "nxp,pca9847",
-	  .data = (uintptr_t)&mux8_type },
+	  .data = &mux8_type },
 
 	/* PCA9848 - 8 channel i2c switch */
 	{ .compat = "nxp,pca9848",
-	  .data = (uintptr_t)&switch8_type },
+	  .data = &switch8_type },
 
 	/* PCA9849 - 4 channel i2c mux */
 	{ .compat = "nxp,pca9849",
-	  .data = (uintptr_t)&mux4_type },
+	  .data = &mux4_type },
 
-	{ NULL }
+	{ 0 }
 };
 
 struct pcaiicmux_softc {
@@ -277,7 +277,7 @@ pcaiicmux_type_by_compat(const struct i2
 	const struct device_compatible_entry *dce;
 
 	if (iic_compatible_match(ia, compat_data, &dce))
-		type = (void *)dce->data;
+		type = dce->data;
 
 	return type;
 }

Index: src/sys/dev/i2c/rkpmic.c
diff -u src/sys/dev/i2c/rkpmic.c:1.8 src/sys/dev/i2c/rkpmic.c:1.9
--- src/sys/dev/i2c/rkpmic.c:1.8	Fri Jan  3 01:17:29 2020
+++ src/sys/dev/i2c/rkpmic.c	Sun Jan 17 21:56:20 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: rkpmic.c,v 1.8 2020/01/03 01:17:29 jmcneill Exp $ */
+/* $NetBSD: rkpmic.c,v 1.9 2021/01/17 21:56:20 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2018 Jared McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rkpmic.c,v 1.8 2020/01/03 01:17:29 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rkpmic.c,v 1.9 2021/01/17 21:56:20 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -212,7 +212,7 @@ struct rkpmic_softc {
 	i2c_addr_t	sc_addr;
 	int		sc_phandle;
 	struct todr_chip_handle sc_todr;
-	struct rkpmic_config *sc_conf;
+	const struct rkpmic_config *sc_conf;
 	struct clk_domain sc_clkdom;
 	struct rkpmic_clk sc_clk[2];
 };
@@ -229,9 +229,10 @@ struct rkreg_attach_args {
 };
 
 static const struct device_compatible_entry compat_data[] = {
-	{ "rockchip,rk805",	(uintptr_t)&rk805_config },
-	{ "rockchip,rk808",	(uintptr_t)&rk808_config },
-	{ NULL }
+	{ .compat = "rockchip,rk805",	.data = &rk805_config },
+	{ .compat = "rockchip,rk808",	.data = &rk808_config },
+
+	{ 0 }
 };
 
 static uint8_t
@@ -472,7 +473,7 @@ rkpmic_attach(device_t parent, device_t 
 	sc->sc_i2c = ia->ia_tag;
 	sc->sc_addr = ia->ia_addr;
 	sc->sc_phandle = ia->ia_cookie;
-	sc->sc_conf = (void *)entry->data;
+	sc->sc_conf = entry->data;
 
 	memset(&sc->sc_todr, 0, sizeof(sc->sc_todr));
 	sc->sc_todr.cookie = sc;

Index: src/sys/sys/device.h
diff -u src/sys/sys/device.h:1.159 src/sys/sys/device.h:1.160
--- src/sys/sys/device.h:1.159	Tue Nov 24 16:17:04 2020
+++ src/sys/sys/device.h	Sun Jan 17 21:56:20 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: device.h,v 1.159 2020/11/24 16:17:04 christos Exp $ */
+/* $NetBSD: device.h,v 1.160 2021/01/17 21:56:20 thorpej Exp $ */
 
 /*
  * Copyright (c) 1996, 2000 Christopher G. Demetriou
@@ -125,7 +125,10 @@ typedef struct cfattach *cfattach_t;
 #if defined(_KERNEL) || defined(_KMEMUSER)
 struct device_compatible_entry {
 	const char	*compat;
-	uintptr_t	data;
+	union {
+		const void *data;
+		uintptr_t value;
+	};
 };
 
 struct device_lock {

Reply via email to