]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/mfd/intel_quark_i2c_gpio.c
Merge remote-tracking branch 'i2c/i2c/for-next'
[karo-tx-linux.git] / drivers / mfd / intel_quark_i2c_gpio.c
index 1ce16037d043a1be95767f52f838a9ff751789a0..04213746530035af262a77bb7dd03e595e29c8c2 100644 (file)
 #define MFD_I2C_BAR            0
 #define MFD_GPIO_BAR           1
 
+/* ACPI _ADR value to match the child node */
+#define MFD_ACPI_MATCH_GPIO    0ULL
+#define MFD_ACPI_MATCH_I2C     1ULL
+
 /* The base GPIO number under GPIOLIB framework */
 #define INTEL_QUARK_MFD_GPIO_BASE      8
 
@@ -82,27 +86,37 @@ static struct resource intel_quark_i2c_res[] = {
        },
 };
 
+static struct mfd_cell_acpi_match intel_quark_acpi_match_i2c = {
+       .adr = MFD_ACPI_MATCH_I2C,
+};
+
 static struct resource intel_quark_gpio_res[] = {
        [INTEL_QUARK_IORES_MEM] = {
                .flags = IORESOURCE_MEM,
        },
 };
 
+static struct mfd_cell_acpi_match intel_quark_acpi_match_gpio = {
+       .adr = MFD_ACPI_MATCH_GPIO,
+};
+
 static struct mfd_cell intel_quark_mfd_cells[] = {
-       {
-               .id = MFD_I2C_BAR,
-               .name = "i2c_designware",
-               .num_resources = ARRAY_SIZE(intel_quark_i2c_res),
-               .resources = intel_quark_i2c_res,
-               .ignore_resource_conflicts = true,
-       },
        {
                .id = MFD_GPIO_BAR,
                .name = "gpio-dwapb",
+               .acpi_match = &intel_quark_acpi_match_gpio,
                .num_resources = ARRAY_SIZE(intel_quark_gpio_res),
                .resources = intel_quark_gpio_res,
                .ignore_resource_conflicts = true,
        },
+       {
+               .id = MFD_I2C_BAR,
+               .name = "i2c_designware",
+               .acpi_match = &intel_quark_acpi_match_i2c,
+               .num_resources = ARRAY_SIZE(intel_quark_i2c_res),
+               .resources = intel_quark_i2c_res,
+               .ignore_resource_conflicts = true,
+       },
 };
 
 static const struct pci_device_id intel_quark_mfd_ids[] = {
@@ -248,12 +262,11 @@ static int intel_quark_mfd_probe(struct pci_dev *pdev,
 
        dev_set_drvdata(&pdev->dev, quark_mfd);
 
-       ret = intel_quark_i2c_setup(pdev, &intel_quark_mfd_cells[MFD_I2C_BAR]);
+       ret = intel_quark_i2c_setup(pdev, &intel_quark_mfd_cells[1]);
        if (ret)
                return ret;
 
-       ret = intel_quark_gpio_setup(pdev,
-                                    &intel_quark_mfd_cells[MFD_GPIO_BAR]);
+       ret = intel_quark_gpio_setup(pdev, &intel_quark_mfd_cells[0]);
        if (ret)
                return ret;