summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/i2c/realtek,rtl9301-i2c.yaml
blob: 17ce39c19ab152cedbfe683d45c6006322878c3b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/realtek,rtl9301-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Realtek RTL I2C Controller

maintainers:
  - Chris Packham <chris.packham@alliedtelesis.co.nz>

description:
  RTL9300 SoCs have two I2C controllers. Each of these has an SCL line (which
  if not-used for SCL can be a GPIO). There are 8 common SDA lines that can be
  assigned to either I2C controller.
  RTL9310 SoCs have equal capabilities but support 12 common SDA lines which
  can be assigned to either I2C controller.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - realtek,rtl9302b-i2c
              - realtek,rtl9302c-i2c
              - realtek,rtl9303-i2c
          - const: realtek,rtl9301-i2c
      - items:
          - enum:
              - realtek,rtl9311-i2c
              - realtek,rtl9312-i2c
              - realtek,rtl9313-i2c
          - const: realtek,rtl9310-i2c
      - enum:
          - realtek,rtl9301-i2c
          - realtek,rtl9310-i2c

  reg:
    items:
      - description: Register offset and size of this I2C controller.

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  realtek,scl:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      The SCL line number of this I2C controller.
    enum: [ 0, 1 ]

patternProperties:
  '^i2c@[0-9ab]$':
    $ref: /schemas/i2c/i2c-controller.yaml
    unevaluatedProperties: false

    properties:
      reg:
        description: The SDA line number associated with the I2C bus.
        maxItems: 1

    required:
      - reg


allOf:
  - if:
      properties:
        compatible:
          contains:
            const: realtek,rtl9310-i2c
    then:
      required:
        - realtek,scl
  - if:
      properties:
        compatible:
          contains:
            const: realtek,rtl9301-i2c
    then:
      patternProperties:
        '^i2c@[89ab]$': false

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    i2c@36c {
      compatible = "realtek,rtl9301-i2c";
      reg = <0x36c 0x14>;
      #address-cells = <1>;
      #size-cells = <0>;

      i2c@2 {
        reg = <2>;
        #address-cells = <1>;
        #size-cells = <0>;
      };
    };