summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/arm/juno-sched-energy.dtsi
blob: 38207e4391ab3e24fe1d134d624b16089bfdf40d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*
 * ARM JUNO specific energy cost model data. There are no unit requirements for
 * the data. Data can be normalized to any reference point, but the
 * normalization must be consistent. That is, one bogo-joule/watt must be the
 * same quantity for all data, but we don't care what it is.
 */

/* static struct idle_state idle_states_cluster_a53[] = { */
/*        { .power = 56 }, /\* arch_cpu_idle() (active idle) = WFI *\/ */
/*        { .power = 56 }, /\* WFI *\/ */
/*        { .power = 56 }, /\* cpu-sleep-0 *\/ */
/*        { .power = 17 }, /\* cluster-sleep-0 *\/ */
/* }; */

/* static struct idle_state idle_states_cluster_a57[] = { */
/*        { .power = 65 }, /\* arch_cpu_idle() (active idle) = WFI *\/ */
/*        { .power = 65 }, /\* WFI *\/ */
/*        { .power = 65 }, /\* cpu-sleep-0 *\/ */
/*        { .power = 24 }, /\* cluster-sleep-0 *\/ */
/* }; */

/* static struct capacity_state cap_states_cluster_a53[] = { */
/*         /\* Power per cluster *\/ */
/*        { .cap =  235, .power = 26, }, /\*  450 MHz *\/ */
/*        { .cap =  303, .power = 30, }, /\*  575 MHz *\/ */
/*        { .cap =  368, .power = 39, }, /\*  700 MHz *\/ */
/*        { .cap =  406, .power = 47, }, /\*  775 MHz *\/ */
/*        { .cap =  447, .power = 57, }, /\*  850 Mhz *\/ */
/* }; */

/* static struct capacity_state cap_states_cluster_a57[] = { */
/*         /\* Power per cluster *\/ */
/*        { .cap =  417, .power = 24, }, /\*  450 MHz *\/ */
/*        { .cap =  579, .power = 32, }, /\*  625 MHz *\/ */
/*        { .cap =  744, .power = 43, }, /\*  800 MHz *\/ */
/*        { .cap =  883, .power = 49, }, /\*  950 MHz *\/ */
/*        { .cap = 1024, .power = 64, }, /\* 1100 MHz *\/ */
/* }; */

/* static struct sched_group_energy energy_cluster_a53 = { */
/*        .nr_idle_states = ARRAY_SIZE(idle_states_cluster_a53), */
/*        .idle_states    = idle_states_cluster_a53, */
/*        .nr_cap_states  = ARRAY_SIZE(cap_states_cluster_a53), */
/*        .cap_states     = cap_states_cluster_a53, */
/* }; */

/* static struct sched_group_energy energy_cluster_a57 = { */
/*        .nr_idle_states = ARRAY_SIZE(idle_states_cluster_a57), */
/*        .idle_states    = idle_states_cluster_a57, */
/*        .nr_cap_states  = ARRAY_SIZE(cap_states_cluster_a57), */
/*        .cap_states     = cap_states_cluster_a57, */
/* }; */

/* static struct idle_state idle_states_core_a53[] = { */
/*        { .power = 6 }, /\* arch_cpu_idle() (active idle) = WFI *\/ */
/*        { .power = 6 }, /\* WFI *\/ */
/*        { .power = 0 }, /\* cpu-sleep-0 *\/ */
/*        { .power = 0 }, /\* cluster-sleep-0 *\/ */
/* }; */

/* static struct idle_state idle_states_core_a57[] = { */
/*        { .power = 15 }, /\* arch_cpu_idle() (active idle) = WFI *\/ */
/*        { .power = 15 }, /\* WFI *\/ */
/*        { .power = 0  }, /\* cpu-sleep-0 *\/ */
/*        { .power = 0  }, /\* cluster-sleep-0 *\/ */
/* }; */

/* static struct capacity_state cap_states_core_a53[] = { */
/*         /\* Power per cpu *\/ */
/*        { .cap =  235, .power =  33, }, /\*  450 MHz *\/ */
/*        { .cap =  302, .power =  46, }, /\*  575 MHz *\/ */
/*        { .cap =  368, .power =  61, }, /\*  700 MHz *\/ */
/*        { .cap =  406, .power =  76, }, /\*  775 MHz *\/ */
/*        { .cap =  447, .power =  93, }, /\*  850 Mhz *\/ */
/* }; */

/* static struct capacity_state cap_states_core_a57[] = { */
/*         /\* Power per cpu *\/ */
/*        { .cap =  417, .power = 168, }, /\*  450 MHz *\/ */
/*        { .cap =  579, .power = 251, }, /\*  625 MHz *\/ */
/*        { .cap =  744, .power = 359, }, /\*  800 MHz *\/ */
/*        { .cap =  883, .power = 479, }, /\*  950 MHz *\/ */
/*        { .cap = 1024, .power = 616, }, /\* 1100 MHz *\/ */
/* }; */

energy-costs {
	CPU_COST_A57: core-cost0 {
		busy-cost-data = <
			417   168
			579   251
			744   359
			883   479
		       1023   616
		>;
		idle-cost-data = <
		      15
		      15
		       0
		       0
		>;
	};
	CPU_COST_A53: core-cost1 {
		busy-cost-data = <
			235    33
			302    46
			368    61
			406    76
			447    93
		>;
		idle-cost-data = <
		      6
		      6
		      0
		      0
		>;
	};
	CLUSTER_COST_A57: cluster-cost0 {
		busy-cost-data = <
			417    24
			579    32
			744    43
			883    49
		       1024    64
		>;
		idle-cost-data = <
			 65
			 65
			 65
			 24
		>;
	};
	CLUSTER_COST_A53: cluster-cost1 {
		busy-cost-data = <
			235    26
			303    30
			368    39
			406    47
			447    57
		>;
		idle-cost-data = <
			56
			56
			56
			17
		>;
	};
};