• Stefan Wahren's avatar
    pinctrl: bcm2835: Make pin freeing behavior configurable · 8ff05989
    Stefan Wahren authored
    Until now after a bcm2835 pin was freed its pinmux was set to GPIO_IN.
    So in case it was configured as GPIO_OUT before the configured output
    level also get lost. As long as GPIO sysfs was used this wasn't
    actually a problem because the pins and their possible output level
    were kept by sysfs.
    
    Since more and more Raspberry Pi users start using libgpiod they are
    confused about this behavior. So make the pin freeing behavior of
    GPIO_OUT configurable via module parameter. In case
    pinctrl-bcm2835.persist_gpio_outputs is set to 1, the output level is
    kept.
    
    This patch based on the downstream work of Phil Elwell.
    
    Link: https://github.com/raspberrypi/linux/pull/6117Signed-off-by: default avatarStefan Wahren <wahrenst@gmx.net>
    Message-ID: <20240503062745.11298-1-wahrenst@gmx.net>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    8ff05989
pinctrl-bcm2835.c 36.8 KB