Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

* MAX732x-compatible I/O expanders

Required properties:
  - compatible: Should be one of the following:
    - "maxim,max7319": For the Maxim MAX7319
    - "maxim,max7320": For the Maxim MAX7320
    - "maxim,max7321": For the Maxim MAX7321
    - "maxim,max7322": For the Maxim MAX7322
    - "maxim,max7323": For the Maxim MAX7323
    - "maxim,max7324": For the Maxim MAX7324
    - "maxim,max7325": For the Maxim MAX7325
    - "maxim,max7326": For the Maxim MAX7326
    - "maxim,max7327": For the Maxim MAX7327
  - reg: I2C slave address for this device.
  - gpio-controller: Marks the device node as a GPIO controller.
  - #gpio-cells: Should be 2.
    - first cell is the GPIO number
    - second cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>.
      Only the GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported.

Optional properties:

  The I/O expander can detect input state changes, and thus optionally act as
  an interrupt controller. When the expander interrupt line is connected all the
  following properties must be set. For more information please see the
  interrupt controller device tree bindings documentation available at
  Documentation/devicetree/bindings/interrupt-controller/interrupts.txt.

  - interrupt-controller: Identifies the node as an interrupt controller.
  - #interrupt-cells: Number of cells to encode an interrupt source, shall be 2.
    - first cell is the pin number
    - second cell is used to specify flags
  - interrupt-parent: phandle of the parent interrupt controller.
  - interrupts: Interrupt specifier for the controllers interrupt.

Please refer to gpio.txt in this directory for details of the common GPIO
bindings used by client devices.

Example 1. MAX7325 with interrupt support enabled (CONFIG_GPIO_MAX732X_IRQ=y):

	expander: max7325@6d {
		compatible = "maxim,max7325";
		reg = <0x6d>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
		interrupt-parent = <&gpio4>;
		interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
	};

Example 2. MAX7325 with interrupt support disabled (CONFIG_GPIO_MAX732X_IRQ=n):

	expander: max7325@6d {
		compatible = "maxim,max7325";
		reg = <0x6d>;
		gpio-controller;
		#gpio-cells = <2>;
	};