xref: /linux/Documentation/devicetree/bindings/i2c/i2c-gpio.yaml (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
10175ce4aSRob Herring# SPDX-License-Identifier: GPL-2.0
20175ce4aSRob Herring%YAML 1.2
30175ce4aSRob Herring---
40175ce4aSRob Herring$id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml#
50175ce4aSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
60175ce4aSRob Herring
79d69d47fSKrzysztof Kozlowskititle: GPIO bitbanged I2C
80175ce4aSRob Herring
90175ce4aSRob Herringmaintainers:
1098a47999SWolfram Sang  - Wolfram Sang <wsa@kernel.org>
110175ce4aSRob Herring
120175ce4aSRob HerringallOf:
130175ce4aSRob Herring  - $ref: /schemas/i2c/i2c-controller.yaml#
140175ce4aSRob Herring
150175ce4aSRob Herringproperties:
160175ce4aSRob Herring  compatible:
170175ce4aSRob Herring    items:
180175ce4aSRob Herring      - const: i2c-gpio
190175ce4aSRob Herring
200175ce4aSRob Herring  sda-gpios:
210175ce4aSRob Herring    description:
220175ce4aSRob Herring      gpio used for the sda signal, this should be flagged as
230175ce4aSRob Herring      active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)
240175ce4aSRob Herring      from <dt-bindings/gpio/gpio.h> since the signal is by definition
250175ce4aSRob Herring      open drain.
260175ce4aSRob Herring    maxItems: 1
270175ce4aSRob Herring
280175ce4aSRob Herring  scl-gpios:
290175ce4aSRob Herring    description:
300175ce4aSRob Herring      gpio used for the scl signal, this should be flagged as
310175ce4aSRob Herring      active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)
320175ce4aSRob Herring      from <dt-bindings/gpio/gpio.h> since the signal is by definition
330175ce4aSRob Herring      open drain.
340175ce4aSRob Herring    maxItems: 1
350175ce4aSRob Herring
36*a00bb94cSHeiner Kallweit  i2c-gpio,sda-output-only:
37*a00bb94cSHeiner Kallweit    description: sda as output only
38*a00bb94cSHeiner Kallweit    type: boolean
39*a00bb94cSHeiner Kallweit
400175ce4aSRob Herring  i2c-gpio,scl-output-only:
410175ce4aSRob Herring    description: scl as output only
420175ce4aSRob Herring    type: boolean
430175ce4aSRob Herring
440175ce4aSRob Herring  i2c-gpio,delay-us:
450175ce4aSRob Herring    description: delay between GPIO operations (may depend on each platform)
460175ce4aSRob Herring
470175ce4aSRob Herring  i2c-gpio,timeout-ms:
480175ce4aSRob Herring    description: timeout to get data
490175ce4aSRob Herring
500175ce4aSRob Herring  # Deprecated properties, do not use in new device tree sources:
510175ce4aSRob Herring  gpios:
520175ce4aSRob Herring    minItems: 2
530175ce4aSRob Herring    maxItems: 2
540175ce4aSRob Herring    description: sda and scl gpio, alternative for {sda,scl}-gpios
550175ce4aSRob Herring
560175ce4aSRob Herring  i2c-gpio,sda-open-drain:
57a451c3beSRob Herring    type: boolean
58a451c3beSRob Herring    deprecated: true
590175ce4aSRob Herring    description: this means that something outside of our control has put
600175ce4aSRob Herring      the GPIO line used for SDA into open drain mode, and that something is
610175ce4aSRob Herring      not the GPIO chip. It is essentially an inconsistency flag.
620175ce4aSRob Herring
630175ce4aSRob Herring  i2c-gpio,scl-open-drain:
64a451c3beSRob Herring    type: boolean
65a451c3beSRob Herring    deprecated: true
660175ce4aSRob Herring    description: this means that something outside of our control has put the
670175ce4aSRob Herring      GPIO line used for SCL into open drain mode, and that something is not
680175ce4aSRob Herring      the GPIO chip. It is essentially an inconsistency flag.
690175ce4aSRob Herring
70*a00bb94cSHeiner Kallweit  i2c-gpio,sda-has-no-pullup:
71*a00bb94cSHeiner Kallweit    type: boolean
72*a00bb94cSHeiner Kallweit    description: sda is used in a non-compliant way and has no pull-up.
73*a00bb94cSHeiner Kallweit      Therefore disable open-drain. This property is mutually-exclusive
74*a00bb94cSHeiner Kallweit      with i2c-gpio,sda-open-drain.
75*a00bb94cSHeiner Kallweit
76*a00bb94cSHeiner Kallweit  i2c-gpio,scl-has-no-pullup:
77*a00bb94cSHeiner Kallweit    type: boolean
78*a00bb94cSHeiner Kallweit    description: scl is used in a non-compliant way and has no pull-up.
79*a00bb94cSHeiner Kallweit      Therefore disable open-drain. This property is mutually-exclusive
80*a00bb94cSHeiner Kallweit      with i2c-gpio,scl-open-drain.
81*a00bb94cSHeiner Kallweit
82*a00bb94cSHeiner Kallweitdependencies:
83*a00bb94cSHeiner Kallweit  i2c-gpio,sda-has-no-pullup:
84*a00bb94cSHeiner Kallweit    not:
85*a00bb94cSHeiner Kallweit      required:
86*a00bb94cSHeiner Kallweit        - i2c-gpio,sda-open-drain
87*a00bb94cSHeiner Kallweit  i2c-gpio,scl-has-no-pullup:
88*a00bb94cSHeiner Kallweit    not:
89*a00bb94cSHeiner Kallweit      required:
90*a00bb94cSHeiner Kallweit        - i2c-gpio,scl-open-drain
91*a00bb94cSHeiner Kallweit
920175ce4aSRob Herringrequired:
930175ce4aSRob Herring  - compatible
940175ce4aSRob Herring  - sda-gpios
950175ce4aSRob Herring  - scl-gpios
960175ce4aSRob Herring
976fdc6e23SRob HerringunevaluatedProperties: false
986fdc6e23SRob Herring
990175ce4aSRob Herring...
100