#include <linux/platform_device.h>
 
 #define PT_TOTAL_GPIO 8
+#define PT_TOTAL_GPIO_EX 24
 
 /* PCI-E MMIO register offsets */
 #define PT_DIRECTION_REG   0x00
        pt_gpio->gc.owner            = THIS_MODULE;
        pt_gpio->gc.request          = pt_gpio_request;
        pt_gpio->gc.free             = pt_gpio_free;
-       pt_gpio->gc.ngpio            = PT_TOTAL_GPIO;
+       pt_gpio->gc.ngpio            = (uintptr_t)device_get_match_data(dev);
 #if defined(CONFIG_OF_GPIO)
        pt_gpio->gc.of_node          = dev->of_node;
 #endif
 }
 
 static const struct acpi_device_id pt_gpio_acpi_match[] = {
-       { "AMDF030", 0 },
-       { "AMDIF030", 0 },
+       { "AMDF030", PT_TOTAL_GPIO },
+       { "AMDIF030", PT_TOTAL_GPIO },
+       { "AMDIF031", PT_TOTAL_GPIO_EX },
        { },
 };
 MODULE_DEVICE_TABLE(acpi, pt_gpio_acpi_match);