summaryrefslogtreecommitdiff
path: root/drivers/mfd/qcom_rpm.c
diff options
context:
space:
mode:
authorJonathan Marek <jonathan@marek.ca>2018-11-19 22:53:17 +0300
committerLee Jones <lee.jones@linaro.org>2019-01-03 11:32:42 +0300
commit504e4175829c44328773b96ad9c538e4783a8d22 (patch)
treecda54f03a2098ae0805c56537d939b5a01ec05ca /drivers/mfd/qcom_rpm.c
parentac4ca4b9f4623ba5e1ea7a582f286567c611e027 (diff)
downloadlinux-504e4175829c44328773b96ad9c538e4783a8d22.tar.xz
mfd: qcom_rpm: write fw_version to CTRL_REG
This is required as part of the initialization sequence on certain SoCs. If these registers are not initialized, the hardware can be unresponsive. This fixes the driver on apq8060 (HP TouchPad device). Signed-off-by: Jonathan Marek <jonathan@marek.ca> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd/qcom_rpm.c')
-rw-r--r--drivers/mfd/qcom_rpm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/mfd/qcom_rpm.c b/drivers/mfd/qcom_rpm.c
index 52fafea06067..8d420c37b2a6 100644
--- a/drivers/mfd/qcom_rpm.c
+++ b/drivers/mfd/qcom_rpm.c
@@ -638,6 +638,10 @@ static int qcom_rpm_probe(struct platform_device *pdev)
return -EFAULT;
}
+ writel(fw_version[0], RPM_CTRL_REG(rpm, 0));
+ writel(fw_version[1], RPM_CTRL_REG(rpm, 1));
+ writel(fw_version[2], RPM_CTRL_REG(rpm, 2));
+
dev_info(&pdev->dev, "RPM firmware %u.%u.%u\n", fw_version[0],
fw_version[1],
fw_version[2]);