Move the GPIOBUS_SET_PINFLAGS(..., ..., pin, GPIO_PIN_OUTPUT) to led(4)
control callback function. This makes gpioled(4) works even if the pin is accidentally set to an input. Approved by: adrian (mentor)
This commit is contained in:
parent
41ec463c1e
commit
d442709662
@ -75,6 +75,8 @@ gpioled_control(void *priv, int onoff)
|
||||
GPIOLED_LOCK(sc);
|
||||
GPIOBUS_LOCK_BUS(sc->sc_busdev);
|
||||
GPIOBUS_ACQUIRE_BUS(sc->sc_busdev, sc->sc_dev);
|
||||
GPIOBUS_PIN_SETFLAGS(sc->sc_busdev, sc->sc_dev, GPIOLED_PIN,
|
||||
GPIO_PIN_OUTPUT);
|
||||
GPIOBUS_PIN_SET(sc->sc_busdev, sc->sc_dev, GPIOLED_PIN,
|
||||
onoff ? GPIO_PIN_HIGH : GPIO_PIN_LOW);
|
||||
GPIOBUS_RELEASE_BUS(sc->sc_busdev, sc->sc_dev);
|
||||
@ -103,9 +105,6 @@ gpioled_attach(device_t dev)
|
||||
device_get_unit(dev), "name", &name))
|
||||
name = NULL;
|
||||
|
||||
GPIOBUS_PIN_SETFLAGS(sc->sc_busdev, sc->sc_dev, GPIOLED_PIN,
|
||||
GPIO_PIN_OUTPUT);
|
||||
|
||||
sc->sc_leddev = led_create(gpioled_control, sc, name ? name :
|
||||
device_get_nameunit(dev));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user