On 01-04-16, 09:15, Rob Herring wrote:
On Fri, Apr 1, 2016 at 5:23 AM, Viresh Kumar viresh.kumar@linaro.org wrote:
So you mean for future DT files we can have something like this:
cpus { compatible = "operation-points-v2"; #address-cells = <1>; #size-cells = <0>; cpu@0 { compatible = "arm,cortex-a9"; reg = <0>; next-level-cache = <&L2>; operating-points-v2 = <&cpu0_opp_table>; }; }; cpu0_opp_table: opp_table0 { opp@1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <970000 975000 985000>; opp-microamp = <70000>; clock-latency-ns = <300000>; opp-suspend; }; opp@1100000000 { opp-hz = /bits/ 64 <1100000000>; opp-microvolt = <980000 1000000 1010000>; opp-microamp = <80000>; clock-latency-ns = <310000>; }; };
};
And the cpufreq-dt driver can match /cpus node's compatible string against "operating-points-v2" and create a device at runtime ?
@Rob: Will that be acceptable to you? We are discussing (again) about how to probe cpufreq-dt driver automatically for platforms :)
No, I don't think that belongs in /cpus.
Part of the problem is this requires a DT change if you switch between a platform-specific driver and generic driver.
Right.
I don't understand the issue having a little bit of code to parse the DT and create the device.
I am fine with that, we were just re-evaluating our options :)
If you are worried about having a long list of platforms,
At least I am not.
you could instead check the tree for operating-points-v2 property in the cpu node and create the device unless the platform is black-listed.
I don't really like the black-list idea much. It forces a Non cpufreq-dt platform to edit cpufreq-dt related file, just to make its own cpufreq driver work.
I find that ugly somehow :)