1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: GPIO bitbanged I2C
8
9maintainers:
10  - Wolfram Sang <wsa@kernel.org>
11
12allOf:
13  - $ref: /schemas/i2c/i2c-controller.yaml#
14
15properties:
16  compatible:
17    items:
18      - const: i2c-gpio
19
20  sda-gpios:
21    description:
22      gpio used for the sda signal, this should be flagged as
23      active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)
24      from <dt-bindings/gpio/gpio.h> since the signal is by definition
25      open drain.
26    maxItems: 1
27
28  scl-gpios:
29    description:
30      gpio used for the scl signal, this should be flagged as
31      active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)
32      from <dt-bindings/gpio/gpio.h> since the signal is by definition
33      open drain.
34    maxItems: 1
35
36  i2c-gpio,sda-output-only:
37    description: sda as output only
38    type: boolean
39
40  i2c-gpio,scl-output-only:
41    description: scl as output only
42    type: boolean
43
44  i2c-gpio,delay-us:
45    description: delay between GPIO operations (may depend on each platform)
46
47  i2c-gpio,timeout-ms:
48    description: timeout to get data
49
50  # Deprecated properties, do not use in new device tree sources:
51  gpios:
52    minItems: 2
53    maxItems: 2
54    description: sda and scl gpio, alternative for {sda,scl}-gpios
55
56  i2c-gpio,sda-open-drain:
57    type: boolean
58    deprecated: true
59    description: this means that something outside of our control has put
60      the GPIO line used for SDA into open drain mode, and that something is
61      not the GPIO chip. It is essentially an inconsistency flag.
62
63  i2c-gpio,scl-open-drain:
64    type: boolean
65    deprecated: true
66    description: this means that something outside of our control has put the
67      GPIO line used for SCL into open drain mode, and that something is not
68      the GPIO chip. It is essentially an inconsistency flag.
69
70  i2c-gpio,sda-has-no-pullup:
71    type: boolean
72    description: sda is used in a non-compliant way and has no pull-up.
73      Therefore disable open-drain. This property is mutually-exclusive
74      with i2c-gpio,sda-open-drain.
75
76  i2c-gpio,scl-has-no-pullup:
77    type: boolean
78    description: scl is used in a non-compliant way and has no pull-up.
79      Therefore disable open-drain. This property is mutually-exclusive
80      with i2c-gpio,scl-open-drain.
81
82dependencies:
83  i2c-gpio,sda-has-no-pullup:
84    not:
85      required:
86        - i2c-gpio,sda-open-drain
87  i2c-gpio,scl-has-no-pullup:
88    not:
89      required:
90        - i2c-gpio,scl-open-drain
91
92required:
93  - compatible
94  - sda-gpios
95  - scl-gpios
96
97unevaluatedProperties: false
98
99...
100