diff options
author | Josh Cartwright <joshc@codeaurora.org> | 2015-03-26 14:29:26 -0400 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2015-03-30 03:19:58 -0400 |
commit | 4d54b0adfa67476e6509bc8646b9dbac642e8a29 (patch) | |
tree | 40d751ae00fd8af7a2d86f618396b2c237ea4981 /drivers/mfd | |
parent | 30bc3aa5c4ed3072bdff7d915772df1b91307ed4 (diff) |
mfd: qcom_rpm: Add support for IPQ8064
The IPQ8064 also includes an RPM following the same message structure as
other chips. In addition, it supports a few new resource types to
support the NSS fabric clocks and the SMB208/SMB209 regulators found on
the reference boards.
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/qcom_rpm.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/drivers/mfd/qcom_rpm.c b/drivers/mfd/qcom_rpm.c index f696328c2933..12e324319573 100644 --- a/drivers/mfd/qcom_rpm.c +++ b/drivers/mfd/qcom_rpm.c | |||
@@ -323,10 +323,51 @@ static const struct qcom_rpm_data msm8960_template = { | |||
323 | .n_resources = ARRAY_SIZE(msm8960_rpm_resource_table), | 323 | .n_resources = ARRAY_SIZE(msm8960_rpm_resource_table), |
324 | }; | 324 | }; |
325 | 325 | ||
326 | static const struct qcom_rpm_resource ipq806x_rpm_resource_table[] = { | ||
327 | [QCOM_RPM_CXO_CLK] = { 25, 9, 5, 1 }, | ||
328 | [QCOM_RPM_PXO_CLK] = { 26, 10, 6, 1 }, | ||
329 | [QCOM_RPM_APPS_FABRIC_CLK] = { 27, 11, 8, 1 }, | ||
330 | [QCOM_RPM_SYS_FABRIC_CLK] = { 28, 12, 9, 1 }, | ||
331 | [QCOM_RPM_NSS_FABRIC_0_CLK] = { 29, 13, 10, 1 }, | ||
332 | [QCOM_RPM_DAYTONA_FABRIC_CLK] = { 30, 14, 11, 1 }, | ||
333 | [QCOM_RPM_SFPB_CLK] = { 31, 15, 12, 1 }, | ||
334 | [QCOM_RPM_CFPB_CLK] = { 32, 16, 13, 1 }, | ||
335 | [QCOM_RPM_NSS_FABRIC_1_CLK] = { 33, 17, 14, 1 }, | ||
336 | [QCOM_RPM_EBI1_CLK] = { 34, 18, 16, 1 }, | ||
337 | [QCOM_RPM_APPS_FABRIC_HALT] = { 35, 19, 18, 2 }, | ||
338 | [QCOM_RPM_APPS_FABRIC_MODE] = { 37, 20, 19, 3 }, | ||
339 | [QCOM_RPM_APPS_FABRIC_IOCTL] = { 40, 21, 20, 1 }, | ||
340 | [QCOM_RPM_APPS_FABRIC_ARB] = { 41, 22, 21, 12 }, | ||
341 | [QCOM_RPM_SYS_FABRIC_HALT] = { 53, 23, 22, 2 }, | ||
342 | [QCOM_RPM_SYS_FABRIC_MODE] = { 55, 24, 23, 3 }, | ||
343 | [QCOM_RPM_SYS_FABRIC_IOCTL] = { 58, 25, 24, 1 }, | ||
344 | [QCOM_RPM_SYS_FABRIC_ARB] = { 59, 26, 25, 30 }, | ||
345 | [QCOM_RPM_MM_FABRIC_HALT] = { 89, 27, 26, 2 }, | ||
346 | [QCOM_RPM_MM_FABRIC_MODE] = { 91, 28, 27, 3 }, | ||
347 | [QCOM_RPM_MM_FABRIC_IOCTL] = { 94, 29, 28, 1 }, | ||
348 | [QCOM_RPM_MM_FABRIC_ARB] = { 95, 30, 29, 2 }, | ||
349 | [QCOM_RPM_CXO_BUFFERS] = { 209, 33, 31, 1 }, | ||
350 | [QCOM_RPM_USB_OTG_SWITCH] = { 210, 34, 32, 1 }, | ||
351 | [QCOM_RPM_HDMI_SWITCH] = { 211, 35, 33, 1 }, | ||
352 | [QCOM_RPM_DDR_DMM] = { 212, 36, 34, 2 }, | ||
353 | [QCOM_RPM_VDDMIN_GPIO] = { 215, 40, 39, 1 }, | ||
354 | [QCOM_RPM_SMB208_S1a] = { 216, 41, 90, 2 }, | ||
355 | [QCOM_RPM_SMB208_S1b] = { 218, 43, 91, 2 }, | ||
356 | [QCOM_RPM_SMB208_S2a] = { 220, 45, 92, 2 }, | ||
357 | [QCOM_RPM_SMB208_S2b] = { 222, 47, 93, 2 }, | ||
358 | }; | ||
359 | |||
360 | static const struct qcom_rpm_data ipq806x_template = { | ||
361 | .version = 3, | ||
362 | .resource_table = ipq806x_rpm_resource_table, | ||
363 | .n_resources = ARRAY_SIZE(ipq806x_rpm_resource_table), | ||
364 | }; | ||
365 | |||
326 | static const struct of_device_id qcom_rpm_of_match[] = { | 366 | static const struct of_device_id qcom_rpm_of_match[] = { |
327 | { .compatible = "qcom,rpm-apq8064", .data = &apq8064_template }, | 367 | { .compatible = "qcom,rpm-apq8064", .data = &apq8064_template }, |
328 | { .compatible = "qcom,rpm-msm8660", .data = &msm8660_template }, | 368 | { .compatible = "qcom,rpm-msm8660", .data = &msm8660_template }, |
329 | { .compatible = "qcom,rpm-msm8960", .data = &msm8960_template }, | 369 | { .compatible = "qcom,rpm-msm8960", .data = &msm8960_template }, |
370 | { .compatible = "qcom,rpm-ipq8064", .data = &ipq806x_template }, | ||
330 | { } | 371 | { } |
331 | }; | 372 | }; |
332 | MODULE_DEVICE_TABLE(of, qcom_rpm_of_match); | 373 | MODULE_DEVICE_TABLE(of, qcom_rpm_of_match); |