The purpose of this patchset is to provide a new inverter gpio controller to configure the polarity of the gpio pins. This driver enables the consumers to directly use the gpio pin without worrying about the hardware level polarity configuration. Polarity configuration will be done by the inverter gpio controller based on device tree information. This is created after the discussion in the thread "gpio: set active-state of GPIO lines using device tree" https://www.spinics.net/lists/linux-gpio/msg38829.html to model inverters in the device tree to describe the hardware. Thanks, Harish. --- Changes in V4: - Addressed further review findings from Linus Walleij. Changes in V3: - Addressed review findings from Linus Walleij to not use GPIO_ACTIVE_LOW. Changes in V2: - Addressed review findings from Linus Walleij, Phil Reid, Geert Uytterhoeven and Enrico Weigelt - Implement can_sleep changes - Changes not included Wrap some functions like .set_multiple/.get_multiple/.set_config. Reason: Not completely certain of the necessity in this driver especially given gpio_chip_set_multiple and gpio_chip_get_multiple functions in gpiolib handles when the callbacks are not set. Also not sure of using gpiochip_generic_config as a callback function or with some other implementation. Please let me know if they need to be implemented. Harish Jenny K N (2): gpio: inverter: Add Inverter controller for gpio configuration gpio: inverter: document the inverter bindings .../devicetree/bindings/gpio/gpio-inverter.txt | 29 +++++ drivers/gpio/Kconfig | 9 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-inverter.c | 128 +++++++++++++++++++++ 4 files changed, 167 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpio/gpio-inverter.txt create mode 100644 drivers/gpio/gpio-inverter.c -- 2.7.4