diff options
Diffstat (limited to 'drivers/mfd/max8925-core.c')
-rw-r--r-- | drivers/mfd/max8925-core.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/mfd/max8925-core.c b/drivers/mfd/max8925-core.c index f621bcea3d0..04028a9ee08 100644 --- a/drivers/mfd/max8925-core.c +++ b/drivers/mfd/max8925-core.c | |||
@@ -90,6 +90,24 @@ static struct mfd_cell rtc_devs[] = { | |||
90 | }, | 90 | }, |
91 | }; | 91 | }; |
92 | 92 | ||
93 | static struct resource onkey_resources[] = { | ||
94 | { | ||
95 | .name = "max8925-onkey", | ||
96 | .start = MAX8925_IRQ_GPM_SW_3SEC, | ||
97 | .end = MAX8925_IRQ_GPM_SW_3SEC, | ||
98 | .flags = IORESOURCE_IRQ, | ||
99 | }, | ||
100 | }; | ||
101 | |||
102 | static struct mfd_cell onkey_devs[] = { | ||
103 | { | ||
104 | .name = "max8925-onkey", | ||
105 | .num_resources = 1, | ||
106 | .resources = &onkey_resources[0], | ||
107 | .id = -1, | ||
108 | }, | ||
109 | }; | ||
110 | |||
93 | #define MAX8925_REG_RESOURCE(_start, _end) \ | 111 | #define MAX8925_REG_RESOURCE(_start, _end) \ |
94 | { \ | 112 | { \ |
95 | .start = MAX8925_##_start, \ | 113 | .start = MAX8925_##_start, \ |
@@ -596,6 +614,15 @@ int __devinit max8925_device_init(struct max8925_chip *chip, | |||
596 | dev_err(chip->dev, "Failed to add rtc subdev\n"); | 614 | dev_err(chip->dev, "Failed to add rtc subdev\n"); |
597 | goto out; | 615 | goto out; |
598 | } | 616 | } |
617 | |||
618 | ret = mfd_add_devices(chip->dev, 0, &onkey_devs[0], | ||
619 | ARRAY_SIZE(onkey_devs), | ||
620 | &onkey_resources[0], 0); | ||
621 | if (ret < 0) { | ||
622 | dev_err(chip->dev, "Failed to add onkey subdev\n"); | ||
623 | goto out_dev; | ||
624 | } | ||
625 | |||
599 | if (pdata && pdata->regulator[0]) { | 626 | if (pdata && pdata->regulator[0]) { |
600 | ret = mfd_add_devices(chip->dev, 0, ®ulator_devs[0], | 627 | ret = mfd_add_devices(chip->dev, 0, ®ulator_devs[0], |
601 | ARRAY_SIZE(regulator_devs), | 628 | ARRAY_SIZE(regulator_devs), |