qcom_rpm: add support for IPQ8064 resources
Subsystems (4)
cover qcom_rpm: add support for IPQ8064 resources
The IPQ8064 SoC has several Resource Power Manager (RPM) controlled resources:
four regulators (two SMB208s, each controlling two regulators) and two fabric clocks for the Network Subsystem (NSS). This patchset adds the appropriate definitions for these resources, and extends the existing RPM regulator driver to support the SMB208.
This patchset is based ontop of v7 of Bjorne Andersson's RPM patchset [1].
1: http://lkml.kernel.org/r/1411428329-23172-1-git-send-email-bjorn.andersson at sonymobile.com
Josh Cartwright (3):
mfd: devicetree: qcom_rpm: document IPQ8064 resources
mfd: qcom_rpm: add support for IPQ8064
regulator: rpm: add support for RPM-controller SMB208
Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 6 +++- drivers/mfd/qcom_rpm.c | 41 ++++++++++++++++++++++ drivers/regulator/qcom_rpm-regulator.c | 19 ++++++++++ include/dt-bindings/mfd/qcom-rpm.h | 6 ++++ 4 files changed, 71 insertions(+), 1 deletion(-)
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
PATCH 1/3 mfd: devicetree: qcom_rpm: document IPQ8064 resources
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 | 6 +++++- include/dt-bindings/mfd/qcom-rpm.h | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/mfd/qcom-rpm.txt +5 -1
@@ -12,6 +12,7 @@ frequencies. "qcom,rpm-apq8064" "qcom,rpm-msm8660" "qcom,rpm-msm8960" + "qcom,rpm-ipq8064" - reg: Usage: required
@@ -67,6 +68,7 @@ of valid subnodes that can operate on these resources. "qcom,rpm-pm8901-ftsmps" "qcom,rpm-pm8921-smps" "qcom,rpm-pm8921-ftsmps" + "qcom,rpm-smb208" - reg: Usage: required
@@ -76,7 +78,9 @@ of valid subnodes that can operate on these resources. QCOM_RPM_PM8058_SMPS0 - QCOM_RPM_PM8058_SMPS4, QCOM_RPM_PM8821_SMPS1 - QCOM_RPM_PM8821_SMPS2, QCOM_RPM_PM8901_SMPS0 - QCOM_RPM_PM8901_SMPS4, - QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8 + QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8, + QCOM_RPM_SMB208_S1a, QCOM_RPM_SMB208_S1b, + QCOM_RPM_SMB208_S2a, QCOM_RPM_SMB208_S2b - bias-pull-down: Usage: optional
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: [PATCH 1/3] mfd: devicetree: qcom_rpm: document IPQ8064 resources
Quoted 8 lines · Josh Cartwright
The IPQ8064 SoC has several RPM-controlled resources, an NSS fabrick clock and four regulator resources. Provide definitions for them.
Signed-off-by Josh Cartwright <[email protected]>--- Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 6 +++++- include/dt-bindings/mfd/qcom-rpm.h | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-)
What do you want me to do with this patch? I'm guessing the other patches in the set depend on these new defines? I can't even check because you've only send me 2 of the 3 patches in the set.
Quoted 48 lines
Documentation/devicetree/bindings/mfd/qcom-rpm.txt +5
-1@@ -12,6 +12,7 @@ frequencies. "qcom,rpm-apq8064" "qcom,rpm-msm8660" "qcom,rpm-msm8960" + "qcom,rpm-ipq8064" - reg: Usage: required@@ -67,6 +68,7 @@ of valid subnodes that can operate on these resources. "qcom,rpm-pm8901-ftsmps" "qcom,rpm-pm8921-smps" "qcom,rpm-pm8921-ftsmps" + "qcom,rpm-smb208" - reg: Usage: required@@ -76,7 +78,9 @@ of valid subnodes that can operate on these resources. QCOM_RPM_PM8058_SMPS0 - QCOM_RPM_PM8058_SMPS4, QCOM_RPM_PM8821_SMPS1 - QCOM_RPM_PM8821_SMPS2, QCOM_RPM_PM8901_SMPS0 - QCOM_RPM_PM8901_SMPS4, - QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8 + QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8, + QCOM_RPM_SMB208_S1a, QCOM_RPM_SMB208_S1b, + QCOM_RPM_SMB208_S2a, QCOM_RPM_SMB208_S2b - bias-pull-down: Usage: optionalinclude/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
Re: [PATCH 1/3] mfd: devicetree: qcom_rpm: document IPQ8064 resources
In reply to Josh CartwrightQuoted 8 lines · Josh Cartwright
The IPQ8064 SoC has several RPM-controlled resources, an NSS fabrick clock and four regulator resources. Provide definitions for them.
Signed-off-by Josh Cartwright <[email protected]>--- Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 6 +++++- include/dt-bindings/mfd/qcom-rpm.h | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-)
For my own reference:
Quoted 48 lines
Documentation/devicetree/bindings/mfd/qcom-rpm.txt +5
-1@@ -12,6 +12,7 @@ frequencies. "qcom,rpm-apq8064" "qcom,rpm-msm8660" "qcom,rpm-msm8960" + "qcom,rpm-ipq8064" - reg: Usage: required@@ -67,6 +68,7 @@ of valid subnodes that can operate on these resources. "qcom,rpm-pm8901-ftsmps" "qcom,rpm-pm8921-smps" "qcom,rpm-pm8921-ftsmps" + "qcom,rpm-smb208" - reg: Usage: required@@ -76,7 +78,9 @@ of valid subnodes that can operate on these resources. QCOM_RPM_PM8058_SMPS0 - QCOM_RPM_PM8058_SMPS4, QCOM_RPM_PM8821_SMPS1 - QCOM_RPM_PM8821_SMPS2, QCOM_RPM_PM8901_SMPS0 - QCOM_RPM_PM8901_SMPS4, - QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8 + QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8, + QCOM_RPM_SMB208_S1a, QCOM_RPM_SMB208_S1b, + QCOM_RPM_SMB208_S2a, QCOM_RPM_SMB208_S2b - bias-pull-down: Usage: optionalinclude/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
Re: [PATCH 1/3] mfd: devicetree: qcom_rpm: document IPQ8064 resources
Quoted 5 lines · Lee Jones
Quoted 3 lines · Josh Cartwright
The IPQ8064 SoC has several RPM-controlled resources, an NSS fabrick clock and four regulator resources. Provide definitions for them.
Quoted 8 lines
Quoted 5 lines
Signed-off-by Josh Cartwright <[email protected]>--- Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 6 +++++- include/dt-bindings/mfd/qcom-rpm.h | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-)For my own reference:
Acked-by Lee Jones <[email protected]>
Lee, can you pick this patch up please?
Quoted 49 lines
Quoted 49 lines
Documentation/devicetree/bindings/mfd/qcom-rpm.txt +5
-1@@ -12,6 +12,7 @@ frequencies. "qcom,rpm-apq8064" "qcom,rpm-msm8660" "qcom,rpm-msm8960" + "qcom,rpm-ipq8064" - reg: Usage: required@@ -67,6 +68,7 @@ of valid subnodes that can operate on these resources. "qcom,rpm-pm8901-ftsmps" "qcom,rpm-pm8921-smps" "qcom,rpm-pm8921-ftsmps" + "qcom,rpm-smb208" - reg: Usage: required@@ -76,7 +78,9 @@ of valid subnodes that can operate on these resources. QCOM_RPM_PM8058_SMPS0 - QCOM_RPM_PM8058_SMPS4, QCOM_RPM_PM8821_SMPS1 - QCOM_RPM_PM8821_SMPS2, QCOM_RPM_PM8901_SMPS0 - QCOM_RPM_PM8901_SMPS4, - QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8 + QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8, + QCOM_RPM_SMB208_S1a, QCOM_RPM_SMB208_S1b, + QCOM_RPM_SMB208_S2a, QCOM_RPM_SMB208_S2b - bias-pull-down: Usage: optionalinclude/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
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
Re: [PATCH 1/3] mfd: devicetree: qcom_rpm: document IPQ8064 resources
In reply to Josh CartwrightQuoted 8 lines · Josh Cartwright
The IPQ8064 SoC has several RPM-controlled resources, an NSS fabrick clock and four regulator resources. Provide definitions for them.
Signed-off-by Josh Cartwright <[email protected]>--- Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 6 +++++- include/dt-bindings/mfd/qcom-rpm.h | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-)
Applied with Stephen's Ack.
Quoted 48 lines
Documentation/devicetree/bindings/mfd/qcom-rpm.txt +5
-1@@ -12,6 +12,7 @@ frequencies. "qcom,rpm-apq8064" "qcom,rpm-msm8660" "qcom,rpm-msm8960" + "qcom,rpm-ipq8064" - reg: Usage: required@@ -67,6 +68,7 @@ of valid subnodes that can operate on these resources. "qcom,rpm-pm8901-ftsmps" "qcom,rpm-pm8921-smps" "qcom,rpm-pm8921-ftsmps" + "qcom,rpm-smb208" - reg: Usage: required@@ -76,7 +78,9 @@ of valid subnodes that can operate on these resources. QCOM_RPM_PM8058_SMPS0 - QCOM_RPM_PM8058_SMPS4, QCOM_RPM_PM8821_SMPS1 - QCOM_RPM_PM8821_SMPS2, QCOM_RPM_PM8901_SMPS0 - QCOM_RPM_PM8901_SMPS4, - QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8 + QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8, + QCOM_RPM_SMB208_S1a, QCOM_RPM_SMB208_S1b, + QCOM_RPM_SMB208_S2a, QCOM_RPM_SMB208_S2b - bias-pull-down: Usage: optionalinclude/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
Re: [PATCH 1/3] mfd: devicetree: qcom_rpm: document IPQ8064 resources
In reply to Josh CartwrightQuoted 8 lines · Josh Cartwright
The IPQ8064 SoC has several RPM-controlled resources, an NSS fabrick clock and four regulator resources. Provide definitions for them.
Signed-off-by Josh Cartwright <[email protected]>--- Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 6 +++++- include/dt-bindings/mfd/qcom-rpm.h | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-)
Doesn't apply. Please rebase and resend.
Quoted 48 lines
Documentation/devicetree/bindings/mfd/qcom-rpm.txt +5
-1@@ -12,6 +12,7 @@ frequencies. "qcom,rpm-apq8064" "qcom,rpm-msm8660" "qcom,rpm-msm8960" + "qcom,rpm-ipq8064" - reg: Usage: required@@ -67,6 +68,7 @@ of valid subnodes that can operate on these resources. "qcom,rpm-pm8901-ftsmps" "qcom,rpm-pm8921-smps" "qcom,rpm-pm8921-ftsmps" + "qcom,rpm-smb208" - reg: Usage: required@@ -76,7 +78,9 @@ of valid subnodes that can operate on these resources. QCOM_RPM_PM8058_SMPS0 - QCOM_RPM_PM8058_SMPS4, QCOM_RPM_PM8821_SMPS1 - QCOM_RPM_PM8821_SMPS2, QCOM_RPM_PM8901_SMPS0 - QCOM_RPM_PM8901_SMPS4, - QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8 + QCOM_RPM_PM8921_SMPS1 - QCOM_RPM_PM8921_SMPS8, + QCOM_RPM_SMB208_S1a, QCOM_RPM_SMB208_S1b, + QCOM_RPM_SMB208_S2a, QCOM_RPM_SMB208_S2b - bias-pull-down: Usage: optionalinclude/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 2/3 mfd: qcom_rpm: add support for IPQ8064
In reply to Josh CartwrightThe 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
@@ -324,10 +324,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: [PATCH 2/3] mfd: qcom_rpm: add support for IPQ8064
Quoted 9 lines · Josh Cartwright
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 <[email protected]>--- drivers/mfd/qcom_rpm.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
For my own reference:
Quoted 56 lines
drivers/mfd/qcom_rpm.c +41
-0@@ -324,10 +324,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
Re: [PATCH 2/3] mfd: qcom_rpm: add support for IPQ8064
Quoted 7 lines · Lee Jones
Quoted 5 lines · Josh Cartwright
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 8 lines
Quoted 4 lines
Signed-off-by Josh Cartwright <[email protected]>--- drivers/mfd/qcom_rpm.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)For my own reference:
Acked-by Lee Jones <[email protected]>
Lee, can you pick this patch up please?
Quoted 56 lines
Quoted 56 lines
drivers/mfd/qcom_rpm.c +41
-0@@ -324,10 +324,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
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
Re: [PATCH 2/3] mfd: qcom_rpm: add support for IPQ8064
In reply to Josh CartwrightQuoted 9 lines · Josh Cartwright
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 <[email protected]>--- drivers/mfd/qcom_rpm.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
Applied with Stephen's Ack.
Quoted 56 lines
drivers/mfd/qcom_rpm.c +41
-0@@ -324,10 +324,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
Re: [PATCH 2/3] mfd: qcom_rpm: add support for IPQ8064
Quoted 7 lines · Lee Jones
Quoted 5 lines · Josh Cartwright
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 6 lines
Quoted 4 lines
Signed-off-by Josh Cartwright <[email protected]>--- drivers/mfd/qcom_rpm.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)Applied with Stephen's Ack.
I have unapplied this one too, as it depends on the other one.
Quoted 57 lines
Quoted 56 lines
drivers/mfd/qcom_rpm.c +41
-0@@ -324,10 +324,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
PATCH 3/3 regulator: rpm: add support for RPM-controller SMB208
In reply to Josh CartwrightThe IPQ8064 reference boards make use of SMB208 regulators which are controlled by RPM. Implement support for these regulators in the RPM regulator driver.
--- drivers/regulator/qcom_rpm-regulator.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
drivers/regulator/qcom_rpm-regulator.c +19 -0
@@ -183,6 +183,13 @@ static const struct regulator_linear_range ftsmps_ranges[] = { REGULATOR_LINEAR_RANGE(1500000, 64, 100, 50000), }; +static const struct regulator_linear_range smb208_ranges[] = { +REGULATOR_LINEAR_RANGE (375000 ,0 ,29 ,12500 ), +REGULATOR_LINEAR_RANGE (750000 ,30 ,89 ,12500 ), +REGULATOR_LINEAR_RANGE (1500000 ,90 ,153 ,25000 ), +REGULATOR_LINEAR_RANGE (3100000 ,154 ,234 ,25000 ), +}; +static const struct regulator_linear_range ncp_ranges[] = {REGULATOR_LINEAR_RANGE (1500000 ,0 ,31 ,50000 ), };
@@ -559,6 +566,16 @@ static const struct qcom_rpm_reg pm8921_switch = { .parts = &rpm8960_switch_parts, }; +static const struct qcom_rpm_reg smb208_smps = { + .desc.linear_ranges = smb208_ranges, + .desc.n_linear_ranges =ARRAY_SIZE (smb208_ranges), + .desc.n_voltages =235 , + .desc.ops = &uV_ops, + .parts = &rpm8960_smps_parts, + .supports_force_mode_auto = false, + .supports_force_mode_bypass = false, +}; +static const struct of_device_id rpm_of_match[] = { { .compatible ="qcom,rpm-pm8058-pldo" , .data = &pm8058_pldo }, { .compatible ="qcom,rpm-pm8058-nldo" , .data = &pm8058_nldo },
@@ -578,6 +595,8 @@ static const struct of_device_id rpm_of_match[] = { { .compatible = "qcom,rpm-pm8921-ftsmps", .data = &pm8921_ftsmps }, { .compatible = "qcom,rpm-pm8921-ncp", .data = &pm8921_ncp }, { .compatible = "qcom,rpm-pm8921-switch", .data = &pm8921_switch }, + + { .compatible = "qcom,rpm-smb208", .data = &smb208_smps }, { } };MODULE_DEVICE_TABLE (of, rpm_of_match);
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
Mark Brown
maintainerRe: [PATCH 3/3] regulator: rpm: add support for RPM-controller SMB208
Quoted 3 lines · Josh Cartwright
The IPQ8064 reference boards make use of SMB208 regulators which are controlled by RPM. Implement support for these regulators in the RPM regulator driver.
I'm missing both patches 1-3 and the cover letter, what's the story
with the series - are there interdependencies?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141121/64c82591/attachment-0001.sig>
Bjorn Andersson
Acked-byRe: [PATCH 3/3] regulator: rpm: add support for RPM-controller SMB208
Quoted 7 lines · Mark Brown
Quoted 3 lines · Josh Cartwright
The IPQ8064 reference boards make use of SMB208 regulators which are controlled by RPM. Implement support for these regulators in the RPM regulator driver.
I'm missing both patches 1-3 and the cover letter, what's the story with the series - are there interdependencies?
Hi Mark,
There are no new dependencies introduced here, patch 1 and 2 are DT and mfd additions. So you can apply this patch independently in your tree.
Regards,
Bjorn
Mark Brown
maintainerRe: [PATCH 3/3] regulator: rpm: add support for RPM-controller SMB208
In reply to Josh CartwrightQuoted 3 lines · Josh Cartwright
The IPQ8064 reference boards make use of SMB208 regulators which are controlled by RPM. Implement support for these regulators in the RPM regulator driver.
Applied, thanks.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141121/8e941cd4/attachment.sig>