Re: [PATCH 2/5] clk: qcom: apcs-msm8916: get parent clock names from DT

From: Stephen Boyd
Date: Tue Sep 10 2019 - 06:20:17 EST


Quoting Jorge Ramirez (2019-09-10 02:40:34)
> On 9/10/19 11:34, Jorge Ramirez wrote:
> > On 9/10/19 11:14, Stephen Boyd wrote:
> >>
> >> This is not a backwards compatible change.
> >>
> >>>>> --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
> >>>>> +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> >>>>> @@ -429,7 +429,8 @@
> >>>>> compatible = "qcom,msm8916-apcs-kpss-global", "syscon";
> >>>>> reg = <0xb011000 0x1000>;
> >>>>> #mbox-cells = <1>;
> >>>>> - clocks = <&a53pll>;
> >>>>> + clocks = <&gcc GPLL0_VOTE>, <&a53pll>;
> >>>>> + clock-names = "aux", "pll";
> >>>>> #clock-cells = <0>;
> >>>>> };
> >>>>>
> >>
> >> Because the "clocks" property changed from
> >>
> >> <&a53pll>
> >>
> >> to
> >>
> >> <&gcc GPLL0_VOTE>, <&a53pll>
> >>
> >> and that moves pll to cell 1 instead of cell 0.
> >>
> >>
> >
> > what do you mean by backwards compatible? because this change does not
> > break previous clients.
>
> as per the comments I added to the code (in case this helps framing the
> discussion)
>
> [..]
> legacy bindings only defined the pll parent clock (index = 0) with no
> name; when both of the parents are specified in the bindings, the
> pll is the second one (index = 1).

The 'clock-names' property is entirely irrelevant to this discussion.
The PLL _must_ be index 0 forever so that the binding is left in a
backwards compatible state. Moving the PLL to index 1 and then using
clock-names to find it is a backwards incompatible change. The order of
clks in the 'clocks' property is an ABI.