| 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>; |
| + }; |
| + |
| ... |