diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/input/misc/pmic8xxx-pwrkey.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/input/misc/pmic8xxx-pwrkey.c b/drivers/input/misc/pmic8xxx-pwrkey.c index d618c58f8a22..ef938405a9c6 100644 --- a/drivers/input/misc/pmic8xxx-pwrkey.c +++ b/drivers/input/misc/pmic8xxx-pwrkey.c | |||
| @@ -18,9 +18,9 @@ | |||
| 18 | #include <linux/input.h> | 18 | #include <linux/input.h> |
| 19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
| 20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
| 21 | #include <linux/regmap.h> | ||
| 21 | #include <linux/log2.h> | 22 | #include <linux/log2.h> |
| 22 | 23 | ||
| 23 | #include <linux/mfd/pm8xxx/core.h> | ||
| 24 | #include <linux/input/pmic8xxx-pwrkey.h> | 24 | #include <linux/input/pmic8xxx-pwrkey.h> |
| 25 | 25 | ||
| 26 | #define PON_CNTL_1 0x1C | 26 | #define PON_CNTL_1 0x1C |
| @@ -88,7 +88,8 @@ static int pmic8xxx_pwrkey_probe(struct platform_device *pdev) | |||
| 88 | int key_press_irq = platform_get_irq(pdev, 1); | 88 | int key_press_irq = platform_get_irq(pdev, 1); |
| 89 | int err; | 89 | int err; |
| 90 | unsigned int delay; | 90 | unsigned int delay; |
| 91 | u8 pon_cntl; | 91 | unsigned int pon_cntl; |
| 92 | struct regmap *regmap; | ||
| 92 | struct pmic8xxx_pwrkey *pwrkey; | 93 | struct pmic8xxx_pwrkey *pwrkey; |
| 93 | const struct pm8xxx_pwrkey_platform_data *pdata = | 94 | const struct pm8xxx_pwrkey_platform_data *pdata = |
| 94 | dev_get_platdata(&pdev->dev); | 95 | dev_get_platdata(&pdev->dev); |
| @@ -103,6 +104,12 @@ static int pmic8xxx_pwrkey_probe(struct platform_device *pdev) | |||
| 103 | return -EINVAL; | 104 | return -EINVAL; |
| 104 | } | 105 | } |
| 105 | 106 | ||
| 107 | regmap = dev_get_regmap(pdev->dev.parent, NULL); | ||
| 108 | if (!regmap) { | ||
| 109 | dev_err(&pdev->dev, "failed to locate regmap for the device\n"); | ||
| 110 | return -ENODEV; | ||
| 111 | } | ||
| 112 | |||
| 106 | pwrkey = kzalloc(sizeof(*pwrkey), GFP_KERNEL); | 113 | pwrkey = kzalloc(sizeof(*pwrkey), GFP_KERNEL); |
| 107 | if (!pwrkey) | 114 | if (!pwrkey) |
| 108 | return -ENOMEM; | 115 | return -ENOMEM; |
| @@ -123,7 +130,7 @@ static int pmic8xxx_pwrkey_probe(struct platform_device *pdev) | |||
| 123 | delay = (pdata->kpd_trigger_delay_us << 10) / USEC_PER_SEC; | 130 | delay = (pdata->kpd_trigger_delay_us << 10) / USEC_PER_SEC; |
| 124 | delay = 1 + ilog2(delay); | 131 | delay = 1 + ilog2(delay); |
| 125 | 132 | ||
| 126 | err = pm8xxx_readb(pdev->dev.parent, PON_CNTL_1, &pon_cntl); | 133 | err = regmap_read(regmap, PON_CNTL_1, &pon_cntl); |
| 127 | if (err < 0) { | 134 | if (err < 0) { |
| 128 | dev_err(&pdev->dev, "failed reading PON_CNTL_1 err=%d\n", err); | 135 | dev_err(&pdev->dev, "failed reading PON_CNTL_1 err=%d\n", err); |
| 129 | goto free_input_dev; | 136 | goto free_input_dev; |
| @@ -136,7 +143,7 @@ static int pmic8xxx_pwrkey_probe(struct platform_device *pdev) | |||
| 136 | else | 143 | else |
| 137 | pon_cntl &= ~PON_CNTL_PULL_UP; | 144 | pon_cntl &= ~PON_CNTL_PULL_UP; |
| 138 | 145 | ||
| 139 | err = pm8xxx_writeb(pdev->dev.parent, PON_CNTL_1, pon_cntl); | 146 | err = regmap_write(regmap, PON_CNTL_1, pon_cntl); |
| 140 | if (err < 0) { | 147 | if (err < 0) { |
| 141 | dev_err(&pdev->dev, "failed writing PON_CNTL_1 err=%d\n", err); | 148 | dev_err(&pdev->dev, "failed writing PON_CNTL_1 err=%d\n", err); |
| 142 | goto free_input_dev; | 149 | goto free_input_dev; |
