mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
97 lines
2.5 KiB
Diff
97 lines
2.5 KiB
Diff
|
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>;
|
||
|
+ };
|
||
|
+
|
||
|
...
|