• Simon Glass's avatar
    dm: i2c: Add support for multiplexed I2C buses · 3d1957f0
    Simon Glass authored
    
    
    Add a new I2C_MUX uclass. Devices in this class can multiplex between
    several I2C buses, selecting them one at a time for use by the system.
    The multiplexing mechanism is left to the driver to decide - it may be
    controlled by GPIOs, for example.
    
    The uclass supports only two methods: select() and deselect().
    
    The current mux state is expected to be stored in the mux itself since
    it is the only thing that knows how to make things work. The mux can
    record the current state and then avoid switching unless it is necessary.
    So select() can be skipped if the mux is already in the correct state.
    Also deselect() can be made a nop if required.
    
    Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
    3d1957f0