qcom_rpm: add support for IPQ8064 resources
v2 cover qcom_rpm: add support for IPQ8064 resources
This is a resend of the IPQ RPM support that Josh sent a while back. I've removed the regulator part because that has been done a different way now.
Josh Cartwright (2):
mfd: devicetree: qcom_rpm: document IPQ8064 resources
mfd: qcom_rpm: add support for IPQ8064
Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 1 + drivers/mfd/qcom_rpm.c | 41 ++++++++++++++++++++++ include/dt-bindings/mfd/qcom-rpm.h | 6 ++++ 3 files changed, 48 insertions(+)
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
PATCH v2 1/2 mfd: devicetree: qcom_rpm: document IPQ8064 resources
From: Josh Cartwright <[email protected]>
The IPQ8064 SoC has several RPM-controlled resources, an NSS fabrick clock and four regulator resources. Provide definitions for them.
--- Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 1 + include/dt-bindings/mfd/qcom-rpm.h | 6 ++++++ 2 files changed, 7 insertions(+)
Documentation/devicetree/bindings/mfd/qcom-rpm.txt +1 -0
@@ -12,6 +12,7 @@ frequencies. "qcom,rpm-apq8064" "qcom,rpm-msm8660" "qcom,rpm-msm8960" + "qcom,rpm-ipq8064" - reg: Usage: required
include/dt-bindings/mfd/qcom-rpm.h +6 -0
@@ -141,6 +141,12 @@#define QCOM_RPM_SYS_FABRIC_MODE 131#define QCOM_RPM_USB_OTG_SWITCH 132#define QCOM_RPM_VDDMIN_GPIO 133 +#define QCOM_RPM_NSS_FABRIC_0_CLK 134 +#define QCOM_RPM_NSS_FABRIC_1_CLK 135 +#define QCOM_RPM_SMB208_S1a 136 +#define QCOM_RPM_SMB208_S1b 137 +#define QCOM_RPM_SMB208_S2a 138 +#define QCOM_RPM_SMB208_S2b 139/* * Constants used to select force mode for regulators.
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
Re: [PATCHv2 1/2] mfd: devicetree: qcom_rpm: document IPQ8064 resources
Quoted 5 lines · Stephen Boyd
From: Josh Cartwright <[email protected]>
The IPQ8064 SoC has several RPM-controlled resources, an NSS fabrick clock and four regulator resources. Provide definitions for them.
Quoted 7 lines
Signed-off-by Josh Cartwright <[email protected]>[sboyd at codeaurora.org: Drop regulator part of binding]Signed-off-by Stephen Boyd <[email protected]>--- Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 1 + include/dt-bindings/mfd/qcom-rpm.h | 6 ++++++ 2 files changed, 7 insertions(+)
Thanks for re-basing. Patch applied.
Quoted 29 lines
Documentation/devicetree/bindings/mfd/qcom-rpm.txt +1
-0@@ -12,6 +12,7 @@ frequencies. "qcom,rpm-apq8064" "qcom,rpm-msm8660" "qcom,rpm-msm8960" + "qcom,rpm-ipq8064" - reg: Usage: requiredinclude/dt-bindings/mfd/qcom-rpm.h +6
-0@@ -141,6 +141,12 @@#define QCOM_RPM_SYS_FABRIC_MODE 131#define QCOM_RPM_USB_OTG_SWITCH 132#define QCOM_RPM_VDDMIN_GPIO 133 +#define QCOM_RPM_NSS_FABRIC_0_CLK 134 +#define QCOM_RPM_NSS_FABRIC_1_CLK 135 +#define QCOM_RPM_SMB208_S1a 136 +#define QCOM_RPM_SMB208_S1b 137 +#define QCOM_RPM_SMB208_S2a 138 +#define QCOM_RPM_SMB208_S2b 139/* * Constants used to select force mode for regulators.
Signature · 4 lines
Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog
PATCH v2 2/2 mfd: qcom_rpm: add support for IPQ8064
In reply to Stephen BoydFrom: Josh Cartwright <[email protected]>
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.
--- drivers/mfd/qcom_rpm.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
drivers/mfd/qcom_rpm.c +41 -0
@@ -323,10 +323,51 @@ static const struct qcom_rpm_data msm8960_template = { .n_resources = ARRAY_SIZE(msm8960_rpm_resource_table), }; +static const struct qcom_rpm_resource ipq806x_rpm_resource_table[] = { + [QCOM_RPM_CXO_CLK ] = {25 ,9 ,5 ,1 }, + [QCOM_RPM_PXO_CLK ] = {26 ,10 ,6 ,1 }, + [QCOM_RPM_APPS_FABRIC_CLK ] = {27 ,11 ,8 ,1 }, + [QCOM_RPM_SYS_FABRIC_CLK ] = {28 ,12 ,9 ,1 }, + [QCOM_RPM_NSS_FABRIC_0_CLK ] = {29 ,13 ,10 ,1 }, + [QCOM_RPM_DAYTONA_FABRIC_CLK ] = {30 ,14 ,11 ,1 }, + [QCOM_RPM_SFPB_CLK ] = {31 ,15 ,12 ,1 }, + [QCOM_RPM_CFPB_CLK ] = {32 ,16 ,13 ,1 }, + [QCOM_RPM_NSS_FABRIC_1_CLK ] = {33 ,17 ,14 ,1 }, + [QCOM_RPM_EBI1_CLK ] = {34 ,18 ,16 ,1 }, + [QCOM_RPM_APPS_FABRIC_HALT ] = {35 ,19 ,18 ,2 }, + [QCOM_RPM_APPS_FABRIC_MODE ] = {37 ,20 ,19 ,3 }, + [QCOM_RPM_APPS_FABRIC_IOCTL ] = {40 ,21 ,20 ,1 }, + [QCOM_RPM_APPS_FABRIC_ARB ] = {41 ,22 ,21 ,12 }, + [QCOM_RPM_SYS_FABRIC_HALT ] = {53 ,23 ,22 ,2 }, + [QCOM_RPM_SYS_FABRIC_MODE ] = {55 ,24 ,23 ,3 }, + [QCOM_RPM_SYS_FABRIC_IOCTL ] = {58 ,25 ,24 ,1 }, + [QCOM_RPM_SYS_FABRIC_ARB ] = {59 ,26 ,25 ,30 }, + [QCOM_RPM_MM_FABRIC_HALT ] = {89 ,27 ,26 ,2 }, + [QCOM_RPM_MM_FABRIC_MODE ] = {91 ,28 ,27 ,3 }, + [QCOM_RPM_MM_FABRIC_IOCTL ] = {94 ,29 ,28 ,1 }, + [QCOM_RPM_MM_FABRIC_ARB ] = {95 ,30 ,29 ,2 }, + [QCOM_RPM_CXO_BUFFERS ] = {209 ,33 ,31 ,1 }, + [QCOM_RPM_USB_OTG_SWITCH ] = {210 ,34 ,32 ,1 }, + [QCOM_RPM_HDMI_SWITCH ] = {211 ,35 ,33 ,1 }, + [QCOM_RPM_DDR_DMM ] = {212 ,36 ,34 ,2 }, + [QCOM_RPM_VDDMIN_GPIO ] = {215 ,40 ,39 ,1 }, + [QCOM_RPM_SMB208_S1a] = {216 ,41 ,90 ,2 }, + [QCOM_RPM_SMB208_S1b] = {218 ,43 ,91 ,2 }, + [QCOM_RPM_SMB208_S2a] = {220 ,45 ,92 ,2 }, + [QCOM_RPM_SMB208_S2b] = {222 ,47 ,93 ,2 }, +}; + +static const struct qcom_rpm_data ipq806x_template = { + .version =3 , + .resource_table = ipq806x_rpm_resource_table, + .n_resources =ARRAY_SIZE (ipq806x_rpm_resource_table), +}; +static const struct of_device_id qcom_rpm_of_match[] = { { .compatible ="qcom,rpm-apq8064" , .data = &apq8064_template }, { .compatible ="qcom,rpm-msm8660" , .data = &msm8660_template }, { .compatible ="qcom,rpm-msm8960" , .data = &msm8960_template }, + { .compatible ="qcom,rpm-ipq8064" , .data = &ipq806x_template }, { } };MODULE_DEVICE_TABLE (of, qcom_rpm_of_match);
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
Re: [PATCHv2 2/2] mfd: qcom_rpm: add support for IPQ8064
Quoted 7 lines · Stephen Boyd
From: Josh Cartwright <[email protected]>
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.
Quoted 5 lines
Signed-off-by Josh Cartwright <[email protected]>Signed-off-by Stephen Boyd <[email protected]>--- drivers/mfd/qcom_rpm.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
Thanks for re-basing. Patch applied.
Quoted 56 lines
drivers/mfd/qcom_rpm.c +41
-0@@ -323,10 +323,51 @@ static const struct qcom_rpm_data msm8960_template = { .n_resources = ARRAY_SIZE(msm8960_rpm_resource_table), }; +static const struct qcom_rpm_resource ipq806x_rpm_resource_table[] = { + [QCOM_RPM_CXO_CLK ] = {25 ,9 ,5 ,1 }, + [QCOM_RPM_PXO_CLK ] = {26 ,10 ,6 ,1 }, + [QCOM_RPM_APPS_FABRIC_CLK ] = {27 ,11 ,8 ,1 }, + [QCOM_RPM_SYS_FABRIC_CLK ] = {28 ,12 ,9 ,1 }, + [QCOM_RPM_NSS_FABRIC_0_CLK ] = {29 ,13 ,10 ,1 }, + [QCOM_RPM_DAYTONA_FABRIC_CLK ] = {30 ,14 ,11 ,1 }, + [QCOM_RPM_SFPB_CLK ] = {31 ,15 ,12 ,1 }, + [QCOM_RPM_CFPB_CLK ] = {32 ,16 ,13 ,1 }, + [QCOM_RPM_NSS_FABRIC_1_CLK ] = {33 ,17 ,14 ,1 }, + [QCOM_RPM_EBI1_CLK ] = {34 ,18 ,16 ,1 }, + [QCOM_RPM_APPS_FABRIC_HALT ] = {35 ,19 ,18 ,2 }, + [QCOM_RPM_APPS_FABRIC_MODE ] = {37 ,20 ,19 ,3 }, + [QCOM_RPM_APPS_FABRIC_IOCTL ] = {40 ,21 ,20 ,1 }, + [QCOM_RPM_APPS_FABRIC_ARB ] = {41 ,22 ,21 ,12 }, + [QCOM_RPM_SYS_FABRIC_HALT ] = {53 ,23 ,22 ,2 }, + [QCOM_RPM_SYS_FABRIC_MODE ] = {55 ,24 ,23 ,3 }, + [QCOM_RPM_SYS_FABRIC_IOCTL ] = {58 ,25 ,24 ,1 }, + [QCOM_RPM_SYS_FABRIC_ARB ] = {59 ,26 ,25 ,30 }, + [QCOM_RPM_MM_FABRIC_HALT ] = {89 ,27 ,26 ,2 }, + [QCOM_RPM_MM_FABRIC_MODE ] = {91 ,28 ,27 ,3 }, + [QCOM_RPM_MM_FABRIC_IOCTL ] = {94 ,29 ,28 ,1 }, + [QCOM_RPM_MM_FABRIC_ARB ] = {95 ,30 ,29 ,2 }, + [QCOM_RPM_CXO_BUFFERS ] = {209 ,33 ,31 ,1 }, + [QCOM_RPM_USB_OTG_SWITCH ] = {210 ,34 ,32 ,1 }, + [QCOM_RPM_HDMI_SWITCH ] = {211 ,35 ,33 ,1 }, + [QCOM_RPM_DDR_DMM ] = {212 ,36 ,34 ,2 }, + [QCOM_RPM_VDDMIN_GPIO ] = {215 ,40 ,39 ,1 }, + [QCOM_RPM_SMB208_S1a] = {216 ,41 ,90 ,2 }, + [QCOM_RPM_SMB208_S1b] = {218 ,43 ,91 ,2 }, + [QCOM_RPM_SMB208_S2a] = {220 ,45 ,92 ,2 }, + [QCOM_RPM_SMB208_S2b] = {222 ,47 ,93 ,2 }, +}; + +static const struct qcom_rpm_data ipq806x_template = { + .version =3 , + .resource_table = ipq806x_rpm_resource_table, + .n_resources =ARRAY_SIZE (ipq806x_rpm_resource_table), +}; +static const struct of_device_id qcom_rpm_of_match[] = { { .compatible ="qcom,rpm-apq8064" , .data = &apq8064_template }, { .compatible ="qcom,rpm-msm8660" , .data = &msm8660_template }, { .compatible ="qcom,rpm-msm8960" , .data = &msm8960_template }, + { .compatible ="qcom,rpm-ipq8064" , .data = &ipq806x_template }, { } };MODULE_DEVICE_TABLE (of, qcom_rpm_of_match);
Signature · 4 lines
Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog