* [PATCH 1/5] dt-bindings: interconnect: Add UFS clocks to MSM8996 A2NoC
[not found] <20221210200353.418391-1-konrad.dybcio@linaro.org>
@ 2022-12-10 20:03 ` Konrad Dybcio
2022-12-12 8:50 ` Krzysztof Kozlowski
2022-12-10 20:03 ` [PATCH 5/5] arm64: dts: qcom: msm8996: Add additional A2NoC clocks Konrad Dybcio
1 sibling, 1 reply; 4+ messages in thread
From: Konrad Dybcio @ 2022-12-10 20:03 UTC (permalink / raw)
To: linux-arm-msm, andersson, agross, krzysztof.kozlowski
Cc: marijn.suijten, Konrad Dybcio, Georgi Djakov, Rob Herring,
Krzysztof Kozlowski, linux-pm, devicetree, linux-kernel
MSM8996 A2NoC contains a UFS master, which means the UFS hardware is
accessed every time sync_state is called within the interconnect
framework. It's all good on devices where this clock is already enabled
(most likely from the bootloader), but devices with eMMC storage are
rather unlikely to have it like that. Add the missing 2 clocks to the
binding.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
.../bindings/interconnect/qcom,rpm.yaml | 24 ++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/interconnect/qcom,rpm.yaml b/Documentation/devicetree/bindings/interconnect/qcom,rpm.yaml
index 4b37aa88a375..5e6be4e79201 100644
--- a/Documentation/devicetree/bindings/interconnect/qcom,rpm.yaml
+++ b/Documentation/devicetree/bindings/interconnect/qcom,rpm.yaml
@@ -84,7 +84,6 @@ allOf:
- qcom,msm8939-pcnoc
- qcom,msm8939-snoc
- qcom,msm8996-a1noc
- - qcom,msm8996-a2noc
- qcom,msm8996-bimc
- qcom,msm8996-cnoc
- qcom,msm8996-pnoc
@@ -186,6 +185,29 @@ allOf:
required:
- power-domains
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,msm8996-a2noc
+
+ then:
+ properties:
+ clock-names:
+ items:
+ - const: bus
+ - const: bus_a
+ - const: aggre2_ufs_axi
+ - const: ufs_axi
+
+ clocks:
+ items:
+ - description: Bus Clock
+ - description: Bus A Clock
+ - description: Aggregate2 NoC UFS AXI Clock
+ - description: UFS AXI Clock
+
- if:
properties:
compatible:
--
2.38.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 5/5] arm64: dts: qcom: msm8996: Add additional A2NoC clocks
[not found] <20221210200353.418391-1-konrad.dybcio@linaro.org>
2022-12-10 20:03 ` [PATCH 1/5] dt-bindings: interconnect: Add UFS clocks to MSM8996 A2NoC Konrad Dybcio
@ 2022-12-10 20:03 ` Konrad Dybcio
2022-12-10 20:53 ` Dmitry Baryshkov
1 sibling, 1 reply; 4+ messages in thread
From: Konrad Dybcio @ 2022-12-10 20:03 UTC (permalink / raw)
To: linux-arm-msm, andersson, agross, krzysztof.kozlowski
Cc: marijn.suijten, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
devicetree, linux-kernel
On eMMC devices, the UFS clocks aren't started in the bootloader (or well,
at least it should not be, as that would just leak power..), which results
in platform reboots when trying to access the unclocked UFS hardware,
which unfortunately happens on each and every boot, as interconnect calls
sync_state and goes over each and every path.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
arch/arm64/boot/dts/qcom/msm8996.dtsi | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index 95dc10a1deb2..616b5b1b1fb0 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -826,9 +826,11 @@ a2noc: interconnect@583000 {
compatible = "qcom,msm8996-a2noc";
reg = <0x00583000 0x7000>;
#interconnect-cells = <1>;
- clock-names = "bus", "bus_a";
+ clock-names = "bus", "bus_a", "aggre2_ufs_axi", "ufs_axi";
clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>,
- <&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>;
+ <&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>,
+ <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
+ <&gcc GCC_UFS_AXI_CLK>;
};
mnoc: interconnect@5a4000 {
--
2.38.1
^ permalink raw reply related [flat|nested] 4+ messages in thread