Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm: dts: exynos: Add missing cooling device properties for CPUs

The cooling device properties, like "#cooling-cells" and
"dynamic-power-coefficient", should either be present for all the CPUs
of a cluster or none. If these are present only for a subset of CPUs of
a cluster then things will start falling apart as soon as the CPUs are
brought online in a different order. For example, this will happen
because the operating system looks for such properties in the CPU node
it is trying to bring up, so that it can register a cooling device.

Add such missing properties.

Fix other missing properties (clocks, OPP, clock latency) as well to
make it all work.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

authored by

Viresh Kumar and committed by
Krzysztof Kozlowski
672f3319 7daf201d

+61
+16
arch/arm/boot/dts/exynos3250.dtsi
··· 78 78 compatible = "arm,cortex-a7"; 79 79 reg = <1>; 80 80 clock-frequency = <1000000000>; 81 + clocks = <&cmu CLK_ARM_CLK>; 82 + clock-names = "cpu"; 83 + #cooling-cells = <2>; 84 + 85 + operating-points = < 86 + 1000000 1150000 87 + 900000 1112500 88 + 800000 1075000 89 + 700000 1037500 90 + 600000 1000000 91 + 500000 962500 92 + 400000 925000 93 + 300000 887500 94 + 200000 850000 95 + 100000 850000 96 + >; 81 97 }; 82 98 }; 83 99
+13
arch/arm/boot/dts/exynos4210.dtsi
··· 55 55 device_type = "cpu"; 56 56 compatible = "arm,cortex-a9"; 57 57 reg = <0x901>; 58 + clocks = <&clock CLK_ARM_CLK>; 59 + clock-names = "cpu"; 60 + clock-latency = <160000>; 61 + 62 + operating-points = < 63 + 1200000 1250000 64 + 1000000 1150000 65 + 800000 1075000 66 + 500000 975000 67 + 400000 975000 68 + 200000 950000 69 + >; 70 + #cooling-cells = <2>; /* min followed by max */ 58 71 }; 59 72 }; 60 73
+9
arch/arm/boot/dts/exynos4412.dtsi
··· 49 49 device_type = "cpu"; 50 50 compatible = "arm,cortex-a9"; 51 51 reg = <0xA01>; 52 + clocks = <&clock CLK_ARM_CLK>; 53 + clock-names = "cpu"; 52 54 operating-points-v2 = <&cpu0_opp_table>; 55 + #cooling-cells = <2>; /* min followed by max */ 53 56 }; 54 57 55 58 cpu@a02 { 56 59 device_type = "cpu"; 57 60 compatible = "arm,cortex-a9"; 58 61 reg = <0xA02>; 62 + clocks = <&clock CLK_ARM_CLK>; 63 + clock-names = "cpu"; 59 64 operating-points-v2 = <&cpu0_opp_table>; 65 + #cooling-cells = <2>; /* min followed by max */ 60 66 }; 61 67 62 68 cpu@a03 { 63 69 device_type = "cpu"; 64 70 compatible = "arm,cortex-a9"; 65 71 reg = <0xA03>; 72 + clocks = <&clock CLK_ARM_CLK>; 73 + clock-names = "cpu"; 66 74 operating-points-v2 = <&cpu0_opp_table>; 75 + #cooling-cells = <2>; /* min followed by max */ 67 76 }; 68 77 }; 69 78
+23
arch/arm/boot/dts/exynos5250.dtsi
··· 84 84 compatible = "arm,cortex-a15"; 85 85 reg = <1>; 86 86 clock-frequency = <1700000000>; 87 + clocks = <&clock CLK_ARM_CLK>; 88 + clock-names = "cpu"; 89 + clock-latency = <140000>; 90 + 91 + operating-points = < 92 + 1700000 1300000 93 + 1600000 1250000 94 + 1500000 1225000 95 + 1400000 1200000 96 + 1300000 1150000 97 + 1200000 1125000 98 + 1100000 1100000 99 + 1000000 1075000 100 + 900000 1050000 101 + 800000 1025000 102 + 700000 1012500 103 + 600000 1000000 104 + 500000 975000 105 + 400000 950000 106 + 300000 937500 107 + 200000 925000 108 + >; 109 + #cooling-cells = <2>; /* min followed by max */ 87 110 }; 88 111 }; 89 112