i2c: brcmstb: Support BCM2711 HDMI BSC controllers
authorMaxime Ripard <maxime@cerno.tech>
Mon, 24 Feb 2020 09:06:05 +0000 (10:06 +0100)
committerWolfram Sang <wsa@the-dreams.de>
Tue, 10 Mar 2020 10:08:53 +0000 (11:08 +0100)
commitd31f59eabea120b9ad149691f8314ce1b55a59ba
treefde62cb42ffa916c82325079b6ce41753564cd3a
parent1de20644c4127db48ab408b0070d63d6b14c5caf
i2c: brcmstb: Support BCM2711 HDMI BSC controllers

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: Maxime Ripard <maxime@cerno.tech>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-brcmstb.c