| Microchip MCP2308/MCP23S08/MCP23017/MCP23S17 driver for | 
 | 8-/16-bit I/O expander with serial interface (I2C/SPI) | 
 |  | 
 | Required properties: | 
 | - compatible : Should be | 
 |     - "mcp,mcp23s08" (DEPRECATED) for  8 GPIO SPI version | 
 |     - "mcp,mcp23s17" (DEPRECATED) for 16 GPIO SPI version | 
 |     - "mcp,mcp23008" (DEPRECATED) for  8 GPIO I2C version or | 
 |     - "mcp,mcp23017" (DEPRECATED) for 16 GPIO I2C version of the chip | 
 |  | 
 |     - "microchip,mcp23s08" for  8 GPIO SPI version | 
 |     - "microchip,mcp23s17" for 16 GPIO SPI version | 
 |     - "microchip,mcp23008" for  8 GPIO I2C version or | 
 |     - "microchip,mcp23017" for 16 GPIO I2C version of the chip | 
 |     NOTE: Do not use the old mcp prefix any more. It is deprecated and will be | 
 |     removed. | 
 | - #gpio-cells : Should be two. | 
 |   - first cell is the pin number | 
 |   - second cell is used to specify flags. Flags are currently unused. | 
 | - gpio-controller : Marks the device node as a GPIO controller. | 
 | - reg : For an address on its bus. I2C uses this a the I2C address of the chip. | 
 |         SPI uses this to specify the chipselect line which the chip is | 
 |         connected to. The driver and the SPI variant of the chip support | 
 |         multiple chips on the same chipselect. Have a look at | 
 |         microchip,spi-present-mask below. | 
 |  | 
 | Required device specific properties (only for SPI chips): | 
 | - mcp,spi-present-mask (DEPRECATED) | 
 | - microchip,spi-present-mask : This is a present flag, that makes only sense for SPI | 
 |         chips - as the name suggests. Multiple SPI chips can share the same | 
 |         SPI chipselect. Set a bit in bit0-7 in this mask to 1 if there is a | 
 |         chip connected with the corresponding spi address set. For example if | 
 |         you have a chip with address 3 connected, you have to set bit3 to 1, | 
 |         which is 0x08. mcp23s08 chip variant only supports bits 0-3. It is not | 
 |         possible to mix mcp23s08 and mcp23s17 on the same chipselect. Set at | 
 |         least one bit to 1 for SPI chips. | 
 |     NOTE: Do not use the old mcp prefix any more. It is deprecated and will be | 
 |     removed. | 
 | - spi-max-frequency = The maximum frequency this chip is able to handle | 
 |  | 
 | Optional properties: | 
 | - #interrupt-cells : Should be two. | 
 |   - first cell is the pin number | 
 |   - second cell is used to specify flags. | 
 | - interrupt-controller: Marks the device node as a interrupt controller. | 
 | NOTE: The interrupt functionality is only supported for i2c versions of the | 
 | chips. The spi chips can also do the interrupts, but this is not supported by | 
 | the linux driver yet. | 
 |  | 
 | Optional device specific properties: | 
 | - microchip,irq-mirror: Sets the mirror flag in the IOCON register. Devices | 
 |         with two interrupt outputs (these are the devices ending with 17 and | 
 |         those that have 16 IOs) have two IO banks: IO 0-7 form bank 1 and | 
 |         IO 8-15 are bank 2. These chips have two different interrupt outputs: | 
 |         One for bank 1 and another for bank 2. If irq-mirror is set, both | 
 |         interrupts are generated regardless of the bank that an input change | 
 |         occurred on. If it is not set, the interrupt are only generated for the | 
 |         bank they belong to. | 
 |         On devices with only one interrupt output this property is useless. | 
 | - microchip,irq-active-high: Sets the INTPOL flag in the IOCON register. This | 
 |         configures the IRQ output polarity as active high. | 
 |  | 
 | Example I2C (with interrupt): | 
 | gpiom1: gpio@20 { | 
 |         compatible = "microchip,mcp23017"; | 
 |         gpio-controller; | 
 |         #gpio-cells = <2>; | 
 |         reg = <0x20>; | 
 |  | 
 |         interrupt-parent = <&gpio1>; | 
 |         interrupts = <17 IRQ_TYPE_LEVEL_LOW>; | 
 |         interrupt-controller; | 
 |         #interrupt-cells=<2>; | 
 |         microchip,irq-mirror; | 
 | }; | 
 |  | 
 | Example SPI: | 
 | gpiom1: gpio@0 { | 
 |         compatible = "microchip,mcp23s17"; | 
 |         gpio-controller; | 
 |         #gpio-cells = <2>; | 
 |         spi-present-mask = <0x01>; | 
 |         reg = <0>; | 
 |         spi-max-frequency = <1000000>; | 
 | }; |