diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0512-dt-bindings-i2c-brcmstb-Add-BCM2711-BSC-AUTO-I2C-bin.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0512-dt-bindings-i2c-brcmstb-Add-BCM2711-BSC-AUTO-I2C-bin.patch | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0512-dt-bindings-i2c-brcmstb-Add-BCM2711-BSC-AUTO-I2C-bin.patch b/target/linux/bcm27xx/patches-5.4/950-0512-dt-bindings-i2c-brcmstb-Add-BCM2711-BSC-AUTO-I2C-bin.patch new file mode 100644 index 0000000000..2716a13d25 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0512-dt-bindings-i2c-brcmstb-Add-BCM2711-BSC-AUTO-I2C-bin.patch @@ -0,0 +1,96 @@ +From 16a6810e521eaf24249085b93b467f7bdf8e8a47 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard <maxime@cerno.tech> +Date: Tue, 17 Dec 2019 09:58:34 +0100 +Subject: [PATCH] dt-bindings: i2c: brcmstb: Add BCM2711 BSC/AUTO-I2C + binding + +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. + +We can model it in the DT as a single device with two register range, +which will allow us to use or or the other in the driver without +changing anything in the DT. + +Cc: Kamal Dasu <kdasu.kdev@gmail.com> +Cc: Wolfram Sang <wsa@the-dreams.de> +Cc: bcm-kernel-feedback-list@broadcom.com +Cc: linux-i2c@vger.kernel.org +Cc: devicetree@vger.kernel.org +Acked-by: Florian Fainelli <f.fainelli@gmail.com> +Reviewed-by: Rob Herring <robh+dt@kernel.org> +Signed-off-by: Maxime Ripard <maxime@cerno.tech> +--- + .../bindings/i2c/brcm,brcmstb-i2c.yaml | 40 ++++++++++++++++++- + 1 file changed, 39 insertions(+), 1 deletion(-) + +--- a/Documentation/devicetree/bindings/i2c/brcm,brcmstb-i2c.yaml ++++ b/Documentation/devicetree/bindings/i2c/brcm,brcmstb-i2c.yaml +@@ -15,11 +15,21 @@ allOf: + properties: + compatible: + enum: ++ - brcm,bcm2711-hdmi-i2c + - brcm,brcmstb-i2c + - brcm,brcmper-i2c + + reg: +- maxItems: 1 ++ minItems: 1 ++ maxItems: 2 ++ items: ++ - description: BSC register range ++ - description: Auto-I2C register range ++ ++ reg-names: ++ items: ++ - const: bsc ++ - const: auto-i2c + + interrupts: + maxItems: 1 +@@ -45,6 +55,26 @@ required: + + unevaluatedProperties: false + ++if: ++ properties: ++ compatible: ++ contains: ++ enum: ++ - brcm,bcm2711-hdmi-i2c ++ ++then: ++ properties: ++ reg: ++ minItems: 2 ++ ++ required: ++ - reg-names ++ ++else: ++ properties: ++ reg: ++ maxItems: 1 ++ + examples: + - | + bsca: i2c@f0406200 { +@@ -56,4 +86,12 @@ examples: + interrupt-names = "upg_bsca"; + }; + ++ - | ++ ddc0: i2c@7ef04500 { ++ compatible = "brcm,bcm2711-hdmi-i2c"; ++ reg = <0x7ef04500 0x100>, <0x7ef00b00 0x300>; ++ reg-names = "bsc", "auto-i2c"; ++ clock-frequency = <390000>; ++ }; ++ + ... |