xref: /linux/Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.yaml (revision 6f7e6393d1ce636bb7ec77a7fe7b77458fddf701)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i2c/brcm,iproc-i2c.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Broadcom iProc I2C controller
8
9maintainers:
10  - Rafał Miłecki <rafal@milecki.pl>
11
12properties:
13  compatible:
14    enum:
15      - brcm,iproc-i2c
16      - brcm,iproc-nic-i2c
17
18  reg:
19    minItems: 1
20    maxItems: 2
21
22  clock-frequency:
23    enum: [ 100000, 400000 ]
24
25  interrupts:
26    description: |
27      Should contain the I2C interrupt. For certain revisions of the I2C
28      controller, I2C interrupt is unwired to the interrupt controller. In such
29      case, this property should be left unspecified, and driver will fall back
30      to polling mode
31    maxItems: 1
32
33  brcm,ape-hsls-addr-mask:
34    $ref: /schemas/types.yaml#/definitions/uint32
35    description: Host view of address mask into the 'APE' co-processor
36
37allOf:
38  - $ref: /schemas/i2c/i2c-controller.yaml#
39  - if:
40      properties:
41        compatible:
42          contains:
43            const: brcm,iproc-nic-i2c
44    then:
45      properties:
46        reg:
47          minItems: 2
48      required:
49        - brcm,ape-hsls-addr-mask
50    else:
51      properties:
52        reg:
53          maxItems: 1
54
55unevaluatedProperties: false
56
57required:
58  - reg
59  - clock-frequency
60  - '#address-cells'
61  - '#size-cells'
62
63examples:
64  - |
65    #include <dt-bindings/interrupt-controller/arm-gic.h>
66
67    i2c@18008000 {
68        compatible = "brcm,iproc-i2c";
69        reg = <0x18008000 0x100>;
70        #address-cells = <1>;
71        #size-cells = <0>;
72        interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
73        clock-frequency = <100000>;
74
75        wm8750@1a {
76            compatible = "wlf,wm8750";
77            reg = <0x1a>;
78        };
79    };
80