• Linus Walleij's avatar
    i2c: iop: Use GPIO descriptors · fdb7e884
    Linus Walleij authored
    The IOP3xx has some elaborate code to directly slam the
    GPIO lines multiplexed with I2C down low before enablement,
    apparently a workaround for a hardware bug found in the
    early chips.
    
    After consulting the developer documentation for IOP80321
    and IOP80331 I can clearly see that this may be useful for
    IOP80321 family (mach-iop32x) but it is highly dubious for
    any 80331 series or later chip: in these chips the lines
    are not multiplexed for UARTs.
    
    We convert the code to pass optional GPIO descriptors
    and register these only on the 80321-based boards where
    it makes sense, optionally obtain them in the driver and
    use the gpiod_set_raw_value() to ascertain the line gets
    driven low when needed.
    
    The GPIO driver does not give the GPIO chip a reasonable
    label so the patch also adds that so that these machine
    descriptor tables can be used.
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    Acked-by: default avatarDan Williams <dan.j.williams@intel.com>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    fdb7e884
i2c-iop3xx.c 13.1 KB