Re: [RFT PATCH 2/2] arm64: dts: qcom: msm8996-xiaomi: fix missing clock populate

From: Dmitry Baryshkov
Date: Fri Sep 01 2023 - 12:36:21 EST


On Fri, 1 Sept 2023 at 11:18, Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxx> wrote:
>
> Commit 338958e30c68 ("arm64: dts: qcom: msm8996-xiaomi: drop simple-bus
> from clocks") removed "simple-bus" compatible from "clocks" node, but
> one of the clocks - divclk1 - is a gpio-gate-clock, which does not have
> CLK_OF_DECLARE. This means it will not be instantiated if placed in
> some subnode. Move the clocks to the root node, so regular devices will
> be populated.

I don't think this is a good idea. We have other fixed clocks under
/clocks. And they have been always working. I think the better way
would be to teach clk-gpio to work with CLK_OF_DECLARE

>
> Reported-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> Closes: https://lore.kernel.org/all/CAA8EJprF==p87oN+RiwAiNeURF1JcHGfL2Ez5zxqYPRRbN-hhg@xxxxxxxxxxxxxx/
> Cc: <stable@xxxxxxxxxxxxxxx>
> Fixes: 338958e30c68 ("arm64: dts: qcom: msm8996-xiaomi: drop simple-bus from clocks")
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> ---
> .../boot/dts/qcom/msm8996-xiaomi-common.dtsi | 32 +++++++++----------
> .../boot/dts/qcom/msm8996-xiaomi-gemini.dts | 16 ++++------
> 2 files changed, 22 insertions(+), 26 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
> index bcd2397eb373..06f8ff624181 100644
> --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
> @@ -11,26 +11,24 @@
> #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
>
> / {
> - clocks {
> - divclk1_cdc: divclk1 {
> - compatible = "gpio-gate-clock";
> - clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
> - #clock-cells = <0>;
> - enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>;
> + divclk1_cdc: divclk1 {
> + compatible = "gpio-gate-clock";
> + clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
> + #clock-cells = <0>;
> + enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>;
>
> - pinctrl-names = "default";
> - pinctrl-0 = <&divclk1_default>;
> - };
> + pinctrl-names = "default";
> + pinctrl-0 = <&divclk1_default>;
> + };
>
> - divclk4: divclk4 {
> - compatible = "fixed-clock";
> - #clock-cells = <0>;
> - clock-frequency = <32768>;
> - clock-output-names = "divclk4";
> + divclk4: divclk4 {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <32768>;
> + clock-output-names = "divclk4";
>
> - pinctrl-names = "default";
> - pinctrl-0 = <&divclk4_pin_a>;
> - };
> + pinctrl-names = "default";
> + pinctrl-0 = <&divclk4_pin_a>;
> };
>
> gpio-keys {
> diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts
> index d1066edaea47..f8e9d90afab0 100644
> --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts
> +++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts
> @@ -20,16 +20,14 @@ / {
> qcom,pmic-id = <0x20009 0x2000a 0x00 0x00>;
> qcom,board-id = <31 0>;
>
> - clocks {
> - divclk2_haptics: divclk2 {
> - compatible = "fixed-clock";
> - #clock-cells = <0>;
> - clock-frequency = <32768>;
> - clock-output-names = "divclk2";
> + divclk2_haptics: divclk2 {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <32768>;
> + clock-output-names = "divclk2";
>
> - pinctrl-names = "default";
> - pinctrl-0 = <&divclk2_pin_a>;
> - };
> + pinctrl-names = "default";
> + pinctrl-0 = <&divclk2_pin_a>;
> };
> };
>
> --
> 2.34.1
>


--
With best wishes
Dmitry