Replace most usages of &xo_board with the &rpmcc variant, and also
provide the necessary parent clocks to the mmcc driver.
Signed-off-by: Luca Weiss <[email protected]>
---
Luca Weiss (3):
ARM: dts: qcom: msm8226: Use XO from rpmcc where possible
dt-bindings: clock: qcom,mmcc: define clocks/clock-names for MSM8226
ARM: dts: qcom: msm8226: Provide clocks to mmcc node
.../devicetree/bindings/clock/qcom,mmcc.yaml | 32 ++++++++++++++++++++--
arch/arm/boot/dts/qcom-msm8226.dtsi | 26 ++++++++++++++----
2 files changed, 51 insertions(+), 7 deletions(-)
---
base-commit: f46950f720460ef8b8c5ca68e14a529dd1705832
change-id: 20230509-msm8226-mmcc-parents-24489498e5da
Best regards,
--
Luca Weiss <[email protected]>
Define clock/clock-names properties of the MMCC device node to be used
on MSM8226 platform.
Signed-off-by: Luca Weiss <[email protected]>
---
.../devicetree/bindings/clock/qcom,mmcc.yaml | 32 ++++++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml b/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
index acf0c923c24f..422f5776a771 100644
--- a/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,mmcc.yaml
@@ -31,11 +31,11 @@ properties:
- qcom,mmcc-sdm660
clocks:
- minItems: 8
+ minItems: 7
maxItems: 13
clock-names:
- minItems: 8
+ minItems: 7
maxItems: 13
'#clock-cells':
@@ -99,6 +99,34 @@ allOf:
- const: dsi2pllbyte
- const: hdmipll
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,mmcc-msm8226
+ then:
+ properties:
+ clocks:
+ items:
+ - description: Board XO source
+ - description: MMSS GPLL0 voted clock
+ - description: GPLL0 voted clock
+ - description: GPLL1 voted clock
+ - description: GFX3D clock source
+ - description: DSI phy instance 0 dsi clock
+ - description: DSI phy instance 0 byte clock
+
+ clock-names:
+ items:
+ - const: xo
+ - const: mmss_gpll0_vote
+ - const: gpll0_vote
+ - const: gpll1_vote
+ - const: gfx3d_clk_src
+ - const: dsi0pll
+ - const: dsi0pllbyte
+
- if:
properties:
compatible:
--
2.40.1
The mmcc needs several clocks that are being used as parents. Provide
them in dt.
Signed-off-by: Luca Weiss <[email protected]>
---
arch/arm/boot/dts/qcom-msm8226.dtsi | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm/boot/dts/qcom-msm8226.dtsi b/arch/arm/boot/dts/qcom-msm8226.dtsi
index 4dd4e26c73a2..3187b6853445 100644
--- a/arch/arm/boot/dts/qcom-msm8226.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8226.dtsi
@@ -392,6 +392,21 @@ mmcc: clock-controller@fd8c0000 {
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
+
+ clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
+ <&gcc GCC_MMSS_GPLL0_CLK_SRC>,
+ <&gcc GPLL0_VOTE>,
+ <&gcc GPLL1_VOTE>,
+ <&rpmcc RPM_SMD_GFX3D_CLK_SRC>,
+ <0>,
+ <0>;
+ clock-names = "xo",
+ "mmss_gpll0_vote",
+ "gpll0_vote",
+ "gpll1_vote",
+ "gfx3d_clk_src",
+ "dsi0pll",
+ "dsi0pllbyte";
};
tlmm: pinctrl@fd510000 {
--
2.40.1
The xo clock being used everywhere actually goes via the RPM. Since the
rpmcc driver recently got support for this clock we can use this now.
Signed-off-by: Luca Weiss <[email protected]>
---
arch/arm/boot/dts/qcom-msm8226.dtsi | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/arch/arm/boot/dts/qcom-msm8226.dtsi b/arch/arm/boot/dts/qcom-msm8226.dtsi
index 42acb9ddb8cc..4dd4e26c73a2 100644
--- a/arch/arm/boot/dts/qcom-msm8226.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8226.dtsi
@@ -176,7 +176,7 @@ sdhc_1: mmc@f9824900 {
interrupt-names = "hc_irq", "pwr_irq";
clocks = <&gcc GCC_SDCC1_AHB_CLK>,
<&gcc GCC_SDCC1_APPS_CLK>,
- <&xo_board>;
+ <&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "iface", "core", "xo";
pinctrl-names = "default";
pinctrl-0 = <&sdhc1_default_state>;
@@ -192,7 +192,7 @@ sdhc_2: mmc@f98a4900 {
interrupt-names = "hc_irq", "pwr_irq";
clocks = <&gcc GCC_SDCC2_AHB_CLK>,
<&gcc GCC_SDCC2_APPS_CLK>,
- <&xo_board>;
+ <&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "iface", "core", "xo";
pinctrl-names = "default";
pinctrl-0 = <&sdhc2_default_state>;
@@ -208,7 +208,7 @@ sdhc_3: mmc@f9864900 {
interrupt-names = "hc_irq", "pwr_irq";
clocks = <&gcc GCC_SDCC3_AHB_CLK>,
<&gcc GCC_SDCC3_APPS_CLK>,
- <&xo_board>;
+ <&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "iface", "core", "xo";
pinctrl-names = "default";
pinctrl-0 = <&sdhc3_default_state>;
@@ -362,7 +362,8 @@ usb_hs_phy: phy {
compatible = "qcom,usb-hs-phy-msm8226",
"qcom,usb-hs-phy";
#phy-cells = <0>;
- clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
+ clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
+ <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
clock-names = "ref", "sleep";
resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
reset-names = "phy", "por";
@@ -617,7 +618,7 @@ adsp: remoteproc@fe200000 {
power-domains = <&rpmpd MSM8226_VDDCX>;
power-domain-names = "cx";
- clocks = <&xo_board>;
+ clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "xo";
memory-region = <&adsp_region>;
--
2.40.1
On 09/05/2023 23:16, Luca Weiss wrote:
> Define clock/clock-names properties of the MMCC device node to be used
> on MSM8226 platform.
>
> Signed-off-by: Luca Weiss <[email protected]>
> ---
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Best regards,
Krzysztof
On 5/9/2023 3:16 PM, Luca Weiss wrote:
> Define clock/clock-names properties of the MMCC device node to be used
> on MSM8226 platform.
>
> Signed-off-by: Luca Weiss <[email protected]>
Acked-by: Jeffrey Hugo <[email protected]>
On 9.05.2023 23:16, Luca Weiss wrote:
> The xo clock being used everywhere actually goes via the RPM. Since the
> rpmcc driver recently got support for this clock we can use this now.
>
> Signed-off-by: Luca Weiss <[email protected]>
> ---
Reviewed-by: Konrad Dybcio <[email protected]>
Konrad
> arch/arm/boot/dts/qcom-msm8226.dtsi | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/boot/dts/qcom-msm8226.dtsi b/arch/arm/boot/dts/qcom-msm8226.dtsi
> index 42acb9ddb8cc..4dd4e26c73a2 100644
> --- a/arch/arm/boot/dts/qcom-msm8226.dtsi
> +++ b/arch/arm/boot/dts/qcom-msm8226.dtsi
> @@ -176,7 +176,7 @@ sdhc_1: mmc@f9824900 {
> interrupt-names = "hc_irq", "pwr_irq";
> clocks = <&gcc GCC_SDCC1_AHB_CLK>,
> <&gcc GCC_SDCC1_APPS_CLK>,
> - <&xo_board>;
> + <&rpmcc RPM_SMD_XO_CLK_SRC>;
> clock-names = "iface", "core", "xo";
> pinctrl-names = "default";
> pinctrl-0 = <&sdhc1_default_state>;
> @@ -192,7 +192,7 @@ sdhc_2: mmc@f98a4900 {
> interrupt-names = "hc_irq", "pwr_irq";
> clocks = <&gcc GCC_SDCC2_AHB_CLK>,
> <&gcc GCC_SDCC2_APPS_CLK>,
> - <&xo_board>;
> + <&rpmcc RPM_SMD_XO_CLK_SRC>;
> clock-names = "iface", "core", "xo";
> pinctrl-names = "default";
> pinctrl-0 = <&sdhc2_default_state>;
> @@ -208,7 +208,7 @@ sdhc_3: mmc@f9864900 {
> interrupt-names = "hc_irq", "pwr_irq";
> clocks = <&gcc GCC_SDCC3_AHB_CLK>,
> <&gcc GCC_SDCC3_APPS_CLK>,
> - <&xo_board>;
> + <&rpmcc RPM_SMD_XO_CLK_SRC>;
> clock-names = "iface", "core", "xo";
> pinctrl-names = "default";
> pinctrl-0 = <&sdhc3_default_state>;
> @@ -362,7 +362,8 @@ usb_hs_phy: phy {
> compatible = "qcom,usb-hs-phy-msm8226",
> "qcom,usb-hs-phy";
> #phy-cells = <0>;
> - clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
> + clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
> + <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
> clock-names = "ref", "sleep";
> resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
> reset-names = "phy", "por";
> @@ -617,7 +618,7 @@ adsp: remoteproc@fe200000 {
> power-domains = <&rpmpd MSM8226_VDDCX>;
> power-domain-names = "cx";
>
> - clocks = <&xo_board>;
> + clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
> clock-names = "xo";
>
> memory-region = <&adsp_region>;
>
On 9.05.2023 23:16, Luca Weiss wrote:
> The mmcc needs several clocks that are being used as parents. Provide
> them in dt.
>
> Signed-off-by: Luca Weiss <[email protected]>
> ---
Reviewed-by: Konrad Dybcio <[email protected]>
Konrad
> arch/arm/boot/dts/qcom-msm8226.dtsi | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/arch/arm/boot/dts/qcom-msm8226.dtsi b/arch/arm/boot/dts/qcom-msm8226.dtsi
> index 4dd4e26c73a2..3187b6853445 100644
> --- a/arch/arm/boot/dts/qcom-msm8226.dtsi
> +++ b/arch/arm/boot/dts/qcom-msm8226.dtsi
> @@ -392,6 +392,21 @@ mmcc: clock-controller@fd8c0000 {
> #clock-cells = <1>;
> #reset-cells = <1>;
> #power-domain-cells = <1>;
> +
> + clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
> + <&gcc GCC_MMSS_GPLL0_CLK_SRC>,
> + <&gcc GPLL0_VOTE>,
> + <&gcc GPLL1_VOTE>,
> + <&rpmcc RPM_SMD_GFX3D_CLK_SRC>,
> + <0>,
> + <0>;
> + clock-names = "xo",
> + "mmss_gpll0_vote",
> + "gpll0_vote",
> + "gpll1_vote",
> + "gfx3d_clk_src",
> + "dsi0pll",
> + "dsi0pllbyte";
> };
>
> tlmm: pinctrl@fd510000 {
>
On Tue, 09 May 2023 23:16:34 +0200, Luca Weiss wrote:
> Replace most usages of &xo_board with the &rpmcc variant, and also
> provide the necessary parent clocks to the mmcc driver.
>
>
Applied, thanks!
[1/3] ARM: dts: qcom: msm8226: Use XO from rpmcc where possible
commit: e280427384269fba93c7ec0373afe87bc39d7945
[3/3] ARM: dts: qcom: msm8226: Provide clocks to mmcc node
commit: 3f502e372b4d41db1642c0a1285b2cb52ab5f796
Best regards,
--
Bjorn Andersson <[email protected]>