diff options
author | Vinod Koul <vkoul@kernel.org> | 2018-06-04 10:41:25 +0530 |
---|---|---|
committer | Amit Pundir <amit.pundir@linaro.org> | 2018-07-11 12:29:29 +0530 |
commit | 0121d2db4d1d9a54052e6c424d1cf3b80c941f4a (patch) | |
tree | a62be04c479aba5504db8f4136532b2c7ee42ac9 | |
parent | d18b2f650d4fc12023ada9254306a648ac8003a4 (diff) |
squashme: pwrkey: remove pon_child
we can check pon child if regmap query fails and we cna lookup parent
then, thus avoiding pon_child
Signed-off-by: Vinod Koul <vkoul@kernel.org>
-rw-r--r-- | drivers/input/misc/pm8941-pwrkey.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/input/misc/pm8941-pwrkey.c b/drivers/input/misc/pm8941-pwrkey.c index 36c431709355..389921e86c62 100644 --- a/drivers/input/misc/pm8941-pwrkey.c +++ b/drivers/input/misc/pm8941-pwrkey.c @@ -223,7 +223,7 @@ static void pm8941_resin_setup(struct platform_device *pdev, static int pm8941_pwrkey_probe(struct platform_device *pdev) { struct pm8941_pwrkey *pwrkey; - bool pull_up, pon_child; + bool pull_up; struct device *parent; u32 req_delay; int error; @@ -245,16 +245,18 @@ static int pm8941_pwrkey_probe(struct platform_device *pdev) pwrkey->dev = &pdev->dev; pwrkey->pull_up_offset = (unsigned long)of_device_get_match_data(&pdev->dev); - pon_child = of_property_read_bool(pdev->dev.of_node, "pon_child"); - if (pon_child) - parent = pdev->dev.parent->parent; - else - parent = pdev->dev.parent; - + parent = pdev->dev.parent; pwrkey->regmap = dev_get_regmap(parent, NULL); if (!pwrkey->regmap) { - dev_err(&pdev->dev, "failed to locate regmap\n"); - return -ENODEV; + /* + * we failed to get regmap for parent, check if + * parent->parent has it (device would be child of pon) + */ + pwrkey->regmap = dev_get_regmap(parent->parent, NULL); + if (!pwrkey->regmap) { + dev_err(&pdev->dev, "failed to locate regmap\n"); + return -ENODEV; + } } pwrkey->irq = platform_get_irq(pdev, 0); |