The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/gpio/gpio-pcf857x.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 * PCF857x-compatible I/O expanders
    2 
    3 The PCF857x-compatible chips have "quasi-bidirectional" I/O lines that can be
    4 driven high by a pull-up current source or driven low to ground. This combines
    5 the direction and output level into a single bit per line, which can't be read
    6 back. We can't actually know at initialization time whether a line is configured
    7 (a) as output and driving the signal low/high, or (b) as input and reporting a
    8 low/high value, without knowing the last value written since the chip came out
    9 of reset (if any). The only reliable solution for setting up line direction is
   10 thus to do it explicitly.
   11 
   12 Required Properties:
   13 
   14   - compatible: should be one of the following.
   15     - "maxim,max7328": For the Maxim MAX7378
   16     - "maxim,max7329": For the Maxim MAX7329
   17     - "nxp,pca8574": For the NXP PCA8574
   18     - "nxp,pca8575": For the NXP PCA8575
   19     - "nxp,pca9670": For the NXP PCA9670
   20     - "nxp,pca9671": For the NXP PCA9671
   21     - "nxp,pca9672": For the NXP PCA9672
   22     - "nxp,pca9673": For the NXP PCA9673
   23     - "nxp,pca9674": For the NXP PCA9674
   24     - "nxp,pca9675": For the NXP PCA9675
   25     - "nxp,pcf8574": For the NXP PCF8574
   26     - "nxp,pcf8574a": For the NXP PCF8574A
   27     - "nxp,pcf8575": For the NXP PCF8575
   28 
   29   - reg: I2C slave address.
   30 
   31   - gpio-controller: Marks the device node as a gpio controller.
   32   - #gpio-cells: Should be 2. The first cell is the GPIO number and the second
   33     cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. Only the
   34     GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported.
   35 
   36 Optional Properties:
   37 
   38   - lines-initial-states: Bitmask that specifies the initial state of each
   39   line. When a bit is set to zero, the corresponding line will be initialized to
   40   the input (pulled-up) state. When the  bit is set to one, the line will be
   41   initialized the low-level output state. If the property is not specified
   42   all lines will be initialized to the input state.
   43 
   44   The I/O expander can detect input state changes, and thus optionally act as
   45   an interrupt controller. When the expander interrupt line is connected all the
   46   following properties must be set. For more information please see the
   47   interrupt controller device tree bindings documentation available at
   48   Documentation/devicetree/bindings/interrupt-controller/interrupts.txt.
   49 
   50   - interrupt-controller: Identifies the node as an interrupt controller.
   51   - #interrupt-cells: Number of cells to encode an interrupt source, shall be 2.
   52   - interrupts: Interrupt specifier for the controllers interrupt.
   53 
   54 
   55 Please refer to gpio.txt in this directory for details of the common GPIO
   56 bindings used by client devices.
   57 
   58 Example: PCF8575 I/O expander node
   59 
   60         pcf8575: gpio@20 {
   61                 compatible = "nxp,pcf8575";
   62                 reg = <0x20>;
   63                 interrupt-parent = <&irqpin2>;
   64                 interrupts = <3 0>;
   65                 gpio-controller;
   66                 #gpio-cells = <2>;
   67                 interrupt-controller;
   68                 #interrupt-cells = <2>;
   69         };

Cache object: 70538d93c6b32907be95609832af2d33


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.