cwfg: update for dts-5.15 binding changes

This commit is contained in:
jmcneill 2021-11-07 17:14:38 +00:00
parent d505f737b7
commit 4d50866df0
1 changed files with 27 additions and 7 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: cwfg.c,v 1.4 2021/01/27 02:29:48 thorpej Exp $ */ /* $NetBSD: cwfg.c,v 1.5 2021/11/07 17:14:38 jmcneill Exp $ */
/*- /*-
* Copyright (c) 2020 Jared McNeill <jmcneill@invisible.ca> * Copyright (c) 2020 Jared McNeill <jmcneill@invisible.ca>
@ -27,7 +27,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: cwfg.c,v 1.4 2021/01/27 02:29:48 thorpej Exp $"); __KERNEL_RCSID(0, "$NetBSD: cwfg.c,v 1.5 2021/11/07 17:14:38 jmcneill Exp $");
#include <sys/param.h> #include <sys/param.h>
#include <sys/systm.h> #include <sys/systm.h>
@ -102,7 +102,8 @@ struct cwfg_softc {
#define CWFG_ALERT_LEVEL_DEFAULT 0 #define CWFG_ALERT_LEVEL_DEFAULT 0
static const struct device_compatible_entry compat_data[] = { static const struct device_compatible_entry compat_data[] = {
{ .compat = "cellwise,cw201x" }, { .compat = "cellwise,cw2015" },
{ .compat = "cellwise,cw201x" }, /* DTCOMPAT */
DEVICE_COMPAT_EOL DEVICE_COMPAT_EOL
}; };
@ -357,10 +358,16 @@ static int
cwfg_parse_resources(struct cwfg_softc *sc) cwfg_parse_resources(struct cwfg_softc *sc)
{ {
const u_int *batinfo; const u_int *batinfo;
u_int val;
int len = 0, n; int len = 0, n;
batinfo = fdtbus_get_prop(sc->sc_phandle,
"cellwise,battery-profile", &len);
if (batinfo == NULL) {
/* DTCOMPAT */
batinfo = fdtbus_get_prop(sc->sc_phandle, batinfo = fdtbus_get_prop(sc->sc_phandle,
"cellwise,bat-config-info", &len); "cellwise,bat-config-info", &len);
}
switch (len) { switch (len) {
case BATINFO_SIZE: case BATINFO_SIZE:
memcpy(sc->sc_batinfo, batinfo, BATINFO_SIZE); memcpy(sc->sc_batinfo, batinfo, BATINFO_SIZE);
@ -376,12 +383,25 @@ cwfg_parse_resources(struct cwfg_softc *sc)
} }
if (of_getprop_uint32(sc->sc_phandle, if (of_getprop_uint32(sc->sc_phandle,
"cellwise,monitor-interval", &sc->sc_monitor_interval) != 0) { "cellwise,monitor-interval-ms", &val) == 0) {
sc->sc_monitor_interval = howmany(val, 1000);
} else if (of_getprop_uint32(sc->sc_phandle,
"cellwise,monitor-interval", &val) == 0) {
/* DTCOMPAT */
sc->sc_monitor_interval = val;
} else {
sc->sc_monitor_interval = CWFG_MONITOR_INTERVAL_DEFAULT; sc->sc_monitor_interval = CWFG_MONITOR_INTERVAL_DEFAULT;
} }
if (of_getprop_uint32(sc->sc_phandle, const int bphandle = fdtbus_get_phandle(sc->sc_phandle, "monitored-battery");
"cellwise,design-capacity", &sc->sc_design_capacity) != 0) { if (bphandle != -1 && of_getprop_uint32(bphandle,
"charge-full-design-microamp-hours", &val) == 0) {
sc->sc_design_capacity = howmany(val, 1000);
} else if (of_getprop_uint32(sc->sc_phandle,
"cellwise,design-capacity", &val) == 0) {
/* DTCOMPAT */
sc->sc_design_capacity = val;
} else {
sc->sc_design_capacity = CWFG_DESIGN_CAPACITY_DEFAULT; sc->sc_design_capacity = CWFG_DESIGN_CAPACITY_DEFAULT;
} }