On 12-04-17, 18:05, Sudeep Holla wrote:
On 20/03/17 09:32, Viresh Kumar wrote: [...]
+Example 7: domain-Performance-state: +(example: For 1GHz require domain state 1 and for 1.1 & 1.2 GHz require state 2)
+/ {
- domain_opp_table: opp_table0 {
compatible = "operating-points-v2";opp@1 {domain-performance-state = <1>;opp-microvolt = <975000 970000 985000>;};opp@2 {domain-performance-state = <2>;opp-microvolt = <1075000 1000000 1085000>;};- };
- foo_domain: power-controller@12340000 {
compatible = "foo,power-controller";reg = <0x12340000 0x1000>;#power-domain-cells = <0>;operating-points-v2 = <&domain_opp_table>;- }
- cpu0_opp_table: opp_table1 {
compatible = "operating-points-v2";opp-shared;opp@1000000000 {opp-hz = /bits/ 64 <1000000000>;domain-performance-state = <1>;};opp@1100000000 {opp-hz = /bits/ 64 <1100000000>;domain-performance-state = <2>;};opp@1200000000 {opp-hz = /bits/ 64 <1200000000>;domain-performance-state = <2>;};- };
- cpus {
#address-cells = <1>;#size-cells = <0>;cpu@0 {compatible = "arm,cortex-a9";reg = <0>;clocks = <&clk_controller 0>;clock-names = "cpu";operating-points-v2 = <&cpu0_opp_table>;power-domains = <&foo_domain>;};- };
+};
Thinking more about this above example, I think you need more explanation. So in the above case you have cpu with clock controller, power-domain and the OPP table info, I can think of few things that need to be explicit:
- How does the precedence look like ?
Just think of the power-domain as a regulator here. If we are increasing frequency of the device, power-domain needs to be programmed first followed by the clock.
- Since power-domains with OPP table control the performance state, do
They control performance state of the domains, not the devices.
we ignore clock and operating-points-v2 in the above case completely?
No. They are separate.
- Will the power-domain drive the OPP ?
power-domain will driver its own state using its own OPP table. Devices may fine tune within those states.