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

From: Jorge Ramirez
Date: Mon Dec 31 2018 - 03:42:45 EST

On 12/28/18 23:28, Stephen Boyd wrote:
Quoting Jorge Ramirez (2018-12-26 01:20:07)
On 12/18/18 15:35, Niklas Cassel wrote:
On Mon, Dec 17, 2018 at 03:37:43PM -0800, Stephen Boyd wrote:
Quoting Jorge Ramirez-Ortiz (2018-12-17 01:46:22)
Allow accessing the parent clock names required for the driver
operation by using the device tree node.

This permits extending the driver to other platforms without having to
modify its source code.

For backwards compatibility leave previous values as default.

Why do we need to maintain backwards compatibility? Isn't is required
that the nodes have clocks properties?

Hello Stephen,

This is the existing DT nodes for msm8916:

a53pll: clock@b016000 {
compatible = "qcom,msm8916-a53pll";
reg = <0xb016000 0x40>;
#clock-cells = <0>;

apcs: mailbox@b011000 {
compatible = "qcom,msm8916-apcs-kpss-global", "syscon";
reg = <0xb011000 0x1000>;
#mbox-cells = <1>;
clocks = <&a53pll>;
#clock-cells = <0>;

This is the (suggested) DT nodes for qcs404:

apcs_hfpll: clock-controller@0b016000 {
compatible = "qcom,hfpll";
reg = <0x0b016000 0x30>;
#clock-cells = <0>;
clock-output-names = "apcs_hfpll";
clocks = <&xo_board>;
clock-names = "xo";

apcs_glb: mailbox@b011000 {
compatible = "qcom,qcs404-apcs-apps-global", "syscon";
reg = <0x0b011000 0x1000>;
#mbox-cells = <1>;
clocks = <&gcc GCC_GPLL0_AO_OUT_MAIN>, <&apcs_hfpll>;
clock-names = "aux", "pll";
#clock-cells = <0>;

qcs404 specifies two clocks, with an accompanied clock-name for each clock.

msm8916 specifies a single clock, without an accompanied clock-name.

It is possible to append clock-names = "pll" for the existing clock,
as well as to define the aux clock in the apcs node in the msm8916 DT:
clocks = <&gcc GPLL0_VOTE>;
clock-names = "aux";

However, since the DT is treated as an ABI, the existing DT for msm8916 must
still work, so I don't think that it is possible to ignore having backwards
compability in the apcs clock driver.

so where are we with this?

do we remove backwards compatibility (see below] for v2 or is the DT
really an ABI and therefore the patch under review is good as is?

Breaking compatibility is up to the platform maintainers. If anything, I
would make the DTS and driver changes in parallel and then remove the
driver's backwards compatibility logic later on.

I am not completely sure of what you mean. are you saying that the original patch is good and we should just provide another patch (not part of the current patch series) to remove the compatibility?