aboutsummaryrefslogtreecommitdiff
path: root/sys/arm/freescale
diff options
context:
space:
mode:
authorIan Lepore <ian@FreeBSD.org>2019-05-23 14:21:23 +0000
committerIan Lepore <ian@FreeBSD.org>2019-05-23 14:21:23 +0000
commitecb53c096d011eb146fe8daccfce9b757be1fca9 (patch)
treeefd2c71d67c85525168c7bc4eebd1b52a9e644b1 /sys/arm/freescale
parentd0ba99d943e69e6d5cc80e7ab3e0403c687652ea (diff)
downloadsrc-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.c4
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);