• Lothar Waßmann's avatar
    gpio/mxc: add missing initialization of basic_mmio_gpio shadow variables · fb149218
    Lothar Waßmann authored
    The bgpio_init() function does not initialise the shadow register for
    the GPIO direction register. Thus, when configuring the first GPIO with
    gpio_set_direction() all other GPIOs of the same bank will be
    configured as inputs. Since the bgpio layer cannot know whether the
    register is readable, the initialisation should be done by the caller
    of bgpio_init().
    
    Also, the 'data' shadow variable that is used inside basic_mmio_gpio
    to cache the current value of the GPIO_DR register is initialised from
    the GPIO_PSR register within bgpio_init(). Thus when setting the
    output value of a certain GPIO, the other GPIO outputs of the same
    bank will be set or cleared depending on the pin state of the GPIO
    inputs during bgpio_init().
    Signed-off-by: default avatarLothar Waßmann <LW@KARO-electronics.de>
    Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
    fb149218
gpio-mxc.c 9.39 KB