aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStéphane Rochoy <stephane.rochoy@stormshield.eu>2023-03-02 15:16:35 +0000
committerWarner Losh <imp@FreeBSD.org>2023-03-02 15:17:04 +0000
commit2c1b8eb29d92d0911e7493c6a16be04ff6064ad1 (patch)
tree9f88390ee3f91f6f79f4e9aefb37cf2e12b095c9
parentae90e9a9d6c3d4f28b2c7d9bd203187ab969b294 (diff)
downloadsrc-2c1b8eb29d92d0911e7493c6a16be04ff6064ad1.tar.gz
src-2c1b8eb29d92d0911e7493c6a16be04ff6064ad1.zip
ftgpio: Fix panic at attach and use better device description
Use ftgpio_group_get_status instead of inlining an imperfect version of it to get correct register and avoid panic: ftgpio_group_get_ioreg: invalid register 0 for group 0 Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/677
-rw-r--r--sys/dev/ftgpio/ftgpio.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/sys/dev/ftgpio/ftgpio.c b/sys/dev/ftgpio/ftgpio.c
index 874f6e832949..7acfdd5b900e 100644
--- a/sys/dev/ftgpio/ftgpio.c
+++ b/sys/dev/ftgpio/ftgpio.c
@@ -103,7 +103,7 @@ struct ftgpio_device {
} ftgpio_devices[] = {
{
.devid = 0x0704,
- .descr = "GPIO Controller on Fintek Super I/O",
+ .descr = "Fintek F81865",
},
};
@@ -289,18 +289,12 @@ static bool
ftgpio_pin_is_output(struct ftgpio_softc *sc, uint32_t pin_num)
{
unsigned group, index;
- uint8_t group_io, ioreg;
bool is_output;
index = FTGPIO_PIN_GETINDEX(pin_num);
group = FTGPIO_PIN_GETGROUP(pin_num);
- ioreg = ftgpio_group_get_ioreg(sc, REG_OUTPUT_ENABLE, group);
- group_io = superio_read(sc->dev, ioreg);
- FTGPIO_VERBOSE_PRINTF(sc->dev, "group GPIO%u io is 0x%x (ioreg=0x%x)\n",
- group, group_io, ioreg);
-
- is_output = group_io & (1 << index);
+ is_output = ftgpio_group_get_status(sc, group) & (1 << index);
FTGPIO_VERBOSE_PRINTF(sc->dev, "pin %u<GPIO%u%u> io is %s\n",
pin_num, group, index, (is_output ? "output" : "input"));
return (is_output);