[PATCH v3 2/7] dt-bindings: i2c: mux: mule: add dt-bindings for mule i2c multiplexer
Farouk Bouabid
farouk.bouabid at cherry.de
Tue Jun 11 04:43:53 PDT 2024
Mule is an MCU that emulates a set of I2C devices which are reachable
through an I2C-mux.
The emulated devices share a single I2C address with the mux itself
where the requested register is what determines which logic is executed
(mux logic or device logic).
Add support for the Mule I2C multiplexer bindings.
Signed-off-by: Farouk Bouabid <farouk.bouabid at cherry.de>
---
.../devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml | 80 ++++++++++++++++++++++
1 file changed, 80 insertions(+)
diff --git a/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml b/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml
new file mode 100644
index 000000000000..b7bb13549027
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml
@@ -0,0 +1,80 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/tsd,mule-i2c-mux.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Mule I2C multiplexer
+
+maintainers:
+ - Farouk Bouabid <farouk.bouabid at cherry.de>
+ - Quentin Schulz <quentin.schulz at cherry.de>
+
+description: |
+ Mule is an MCU that emulates a set of I2C devices which are reachable
+ through an I2C-mux.
+
+ The emulated devices share a single I2C address with the mux itself
+ where the requested register is what determines which logic is executed
+ (mux logic or device logic)
+
+ +--------------------------------------------------+
+ | Mule |
+ | +---------------+ |
+ ------+->|Config register|----+ |
+ | | +---------------+ | |
+ | | V_ |
+ | | | \ +--------+ |
+ | | | \-------->| dev #0 | |
+ | | | | +--------+ |
+ | | | M |-------->| dev #1 | |
+ | +--------------------->| U | +--------+ |
+ | | X |-------->| dev #2 | |
+ | | | +--------+ |
+ | | /-------->| dev #3 | |
+ | |__/ +--------+ |
+ +--------------------------------------------------+
+
+
+allOf:
+ - $ref: /schemas/i2c/i2c-mux.yaml#
+
+properties:
+ compatible:
+ const: tsd,mule-i2c-mux
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ i2c-mux at 18 {
+ compatible = "tsd,mule-i2c-mux";
+ reg = <0x18>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ i2c at 0 {
+ reg = <0x0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ fan: fan at 18 {
+ compatible = "ti,amc6821";
+ reg = <0x18>;
+ #cooling-cells = <2>;
+ };
+ };
+ };
+ };
+...
--
2.34.1
More information about the Linux-rockchip
mailing list