gpio: it87: Add support for IT8613
authorLeonid Bloch <lbloch@janustech.com>
Wed, 8 Aug 2018 22:26:36 +0000 (01:26 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 10 Aug 2018 21:19:17 +0000 (23:19 +0200)
This was tested on actual hardware and found to work fine, but currently
the official specifications of this chip could not be obtained to
confirm the numbers.

Signed-off-by: Leonid Bloch <lbloch@janustech.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/Kconfig
drivers/gpio/gpio-it87.c

index 7429b30..f7a0f57 100644 (file)
@@ -693,7 +693,8 @@ config GPIO_IT87
          Say yes here to support GPIO functionality of IT87xx Super I/O chips.
 
          This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
-         supports the IT8761E, IT8620E and IT8628E Super I/O chip as well.
+         supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
+         well.
 
          To compile this driver as a module, choose M here: the module will
          be called gpio_it87
index d34f517..389ecd8 100644 (file)
@@ -35,6 +35,7 @@
 
 /* Chip Id numbers */
 #define NO_DEV_ID      0xffff
+#define IT8613_ID      0x8613
 #define IT8620_ID      0x8620
 #define IT8628_ID      0x8628
 #define IT8718_ID       0x8718
@@ -308,6 +309,14 @@ static int __init it87_gpio_init(void)
        it87_gpio->chip = it87_template_chip;
 
        switch (chip_type) {
+       case IT8613_ID:
+               gpio_ba_reg = 0x62;
+               it87_gpio->io_size = 8;  /* it8613 only needs 6, use 8 for alignment */
+               it87_gpio->output_base = 0xc8;
+               it87_gpio->simple_base = 0xc0;
+               it87_gpio->simple_size = 6;
+               it87_gpio->chip.ngpio = 64;  /* has 48, use 64 for convenient calc */
+               break;
        case IT8620_ID:
        case IT8628_ID:
                gpio_ba_reg = 0x62;