Commit 0175ce4a authored by Rob Herring's avatar Rob Herring
Browse files

dt-bindings: i2c: Convert i2c-gpio binding to json-schema



Convert the i2c-gpio binding to DT schema format using json-schema. This
serves as an example of how to include other schema (i2c-controller.yaml
in this case).

Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent b31abceb
Loading
Loading
Loading
Loading
+0 −46
Original line number Diff line number Diff line
Device-Tree bindings for i2c gpio driver

Required properties:
	- compatible = "i2c-gpio";
	- sda-gpios: gpio used for the sda signal, this should be flagged as
	  active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)
	  from <dt-bindings/gpio/gpio.h> since the signal is by definition
	  open drain.
	- scl-gpios: gpio used for the scl signal, this should be flagged as
	  active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)
	  from <dt-bindings/gpio/gpio.h> since the signal is by definition
	  open drain.

Optional properties:
	- i2c-gpio,scl-output-only: scl as output only
	- i2c-gpio,delay-us: delay between GPIO operations (may depend on each platform)
	- i2c-gpio,timeout-ms: timeout to get data

Deprecated properties, do not use in new device tree sources:
	- gpios: sda and scl gpio, alternative for {sda,scl}-gpios
	- i2c-gpio,sda-open-drain: this means that something outside of our
	  control has put the GPIO line used for SDA into open drain mode, and
	  that something is not the GPIO chip. It is essentially an
	  inconsistency flag.
	- i2c-gpio,scl-open-drain: this means that something outside of our
	  control has put the GPIO line used for SCL into open drain mode, and
	  that something is not the GPIO chip. It is essentially an
	  inconsistency flag.

Example nodes:

#include <dt-bindings/gpio/gpio.h>

i2c@0 {
	compatible = "i2c-gpio";
	sda-gpios = <&pioA 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
	scl-gpios = <&pioA 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
	i2c-gpio,delay-us = <2>;	/* ~100 kHz */
	#address-cells = <1>;
	#size-cells = <0>;

	rv3029c2@56 {
		compatible = "rv3029c2";
		reg = <0x56>;
	};
};
+73 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Bindings for GPIO bitbanged I2C

maintainers:
  - Wolfram Sang <wolfram@the-dreams.de>

allOf:
  - $ref: /schemas/i2c/i2c-controller.yaml#

properties:
  compatible:
    items:
      - const: i2c-gpio

  sda-gpios:
    description:
      gpio used for the sda signal, this should be flagged as
      active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)
      from <dt-bindings/gpio/gpio.h> since the signal is by definition
      open drain.
    maxItems: 1

  scl-gpios:
    description:
      gpio used for the scl signal, this should be flagged as
      active high using open drain with (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)
      from <dt-bindings/gpio/gpio.h> since the signal is by definition
      open drain.
    maxItems: 1

  i2c-gpio,scl-output-only:
    description: scl as output only
    type: boolean

  i2c-gpio,delay-us:
    description: delay between GPIO operations (may depend on each platform)
    $ref: /schemas/types.yaml#/definitions/uint32

  i2c-gpio,timeout-ms:
    description: timeout to get data
    $ref: /schemas/types.yaml#/definitions/uint32

  # Deprecated properties, do not use in new device tree sources:
  gpios:
    minItems: 2
    maxItems: 2
    description: sda and scl gpio, alternative for {sda,scl}-gpios

  i2c-gpio,sda-open-drain:
    # Generate a warning if present
    not: true
    description: this means that something outside of our control has put
      the GPIO line used for SDA into open drain mode, and that something is
      not the GPIO chip. It is essentially an inconsistency flag.

  i2c-gpio,scl-open-drain:
    # Generate a warning if present
    not: true
    description: this means that something outside of our control has put the
      GPIO line used for SCL into open drain mode, and that something is not
      the GPIO chip. It is essentially an inconsistency flag.

required:
  - compatible
  - sda-gpios
  - scl-gpios

...