diff options
author | Ian Lepore <ian@FreeBSD.org> | 2019-05-23 14:21:23 +0000 |
---|---|---|
committer | Ian Lepore <ian@FreeBSD.org> | 2019-05-23 14:21:23 +0000 |
commit | ecb53c096d011eb146fe8daccfce9b757be1fca9 (patch) | |
tree | efd2c71d67c85525168c7bc4eebd1b52a9e644b1 /sys/arm/freescale | |
parent | d0ba99d943e69e6d5cc80e7ab3e0403c687652ea (diff) | |
download | src-ecb53c096d011eb146fe8daccfce9b757be1fca9.tar.gz src-ecb53c096d011eb146fe8daccfce9b757be1fca9.zip |
Release the bus-recovery gpio pins in detach(), so that unload then
reload of the module works without "pin already allocated" errors.
Notes
Notes:
svn path=/head/; revision=348166
Diffstat (limited to 'sys/arm/freescale')
-rw-r--r-- | sys/arm/freescale/imx/imx_i2c.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/arm/freescale/imx/imx_i2c.c b/sys/arm/freescale/imx/imx_i2c.c index 6f19d0be2edf..1d21f7964acb 100644 --- a/sys/arm/freescale/imx/imx_i2c.c +++ b/sys/arm/freescale/imx/imx_i2c.c @@ -469,6 +469,10 @@ i2c_detach(device_t dev) if (sc->iicbus != NULL) device_delete_child(dev, sc->iicbus); + /* Release bus-recover pins; gpio_pin_release() handles NULL args. */ + gpio_pin_release(sc->rb_sclpin); + gpio_pin_release(sc->rb_sdapin); + if (sc->res != NULL) bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->res); |