• Maxime Ripard's avatar
    i2c: brcmstb: Support BCM2711 HDMI BSC controllers · d31f59ea
    Maxime Ripard authored
    The HDMI blocks in the BCM2771 have an i2c controller to retrieve the
    EDID. This block is split into two parts, the BSC and the AUTO_I2C,
    lying in two separate register areas.
    
    The AUTO_I2C block has a mailbox-like interface and will take away the
    BSC control from the CPU if enabled. However, the BSC is the actually
    the same controller than the one supported by the brcmstb driver, and
    the AUTO_I2C doesn't really bring any immediate benefit.
    
    Let's use the BSC then, but let's also tie the AUTO_I2C registers with a
    separate compatible so that we can enable AUTO_I2C if needed in the
    future.
    
    The AUTO_I2C is enabled by default at boot though, so we first need to
    release the BSC from the AUTO_I2C control.
    
    Cc: Kamal Dasu <kdasu.kdev@gmail.com>
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: Wolfram Sang <wsa@the-dreams.de>
    Cc: bcm-kernel-feedback-list@broadcom.com
    Cc: linux-i2c@vger.kernel.org
    Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    d31f59ea
i2c-brcmstb.c 19.3 KB