Skip to content

Commit 74e1b17

Browse files
carlocaionenashif
authored andcommitted
cache: aspeed: Rework driver
To be compliant to the new cache API. Signed-off-by: Carlo Caione <[email protected]>
1 parent 4b58739 commit 74e1b17

File tree

1 file changed

+61
-15
lines changed

1 file changed

+61
-15
lines changed

drivers/cache/cache_aspeed.c

+61-15
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
#define ICACHE_CLEAN BIT(2)
3737
#define DCACHE_CLEAN BIT(1)
38-
#define CACHE_EANABLE BIT(0)
38+
#define CACHE_ENABLE BIT(0)
3939

4040
/* cache size = 32B * 128 = 4KB */
4141
#define CACHE_LINE_SIZE_LOG2 5
@@ -62,7 +62,7 @@ static void aspeed_cache_init(void)
6262
syscon_write_reg(dev, CACHE_AREA_CTRL_REG, GENMASK(end_bit, start_bit));
6363

6464
/* enable cache */
65-
syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, CACHE_EANABLE);
65+
syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, CACHE_ENABLE);
6666
}
6767

6868
/**
@@ -129,13 +129,12 @@ void cache_instr_disable(void)
129129
syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, 0);
130130
}
131131

132-
int cache_data_all(int op)
132+
int cache_data_invd_all(void)
133133
{
134134
const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon));
135135
uint32_t ctrl;
136136
unsigned int key = 0;
137137

138-
ARG_UNUSED(op);
139138
syscon_read_reg(dev, CACHE_FUNC_CTRL_REG, &ctrl);
140139

141140
/* enter critical section */
@@ -159,14 +158,12 @@ int cache_data_all(int op)
159158
return 0;
160159
}
161160

162-
int cache_data_range(void *addr, size_t size, int op)
161+
int cache_data_invd_range(void *addr, size_t size)
163162
{
164163
uint32_t aligned_addr, i, n;
165164
const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon));
166165
unsigned int key = 0;
167166

168-
ARG_UNUSED(op);
169-
170167
if (((uint32_t)addr < CACHED_SRAM_ADDR) ||
171168
((uint32_t)addr > CACHED_SRAM_END)) {
172169
return 0;
@@ -194,14 +191,12 @@ int cache_data_range(void *addr, size_t size, int op)
194191
return 0;
195192
}
196193

197-
int cache_instr_all(int op)
194+
int cache_instr_invd_all(void)
198195
{
199196
const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon));
200197
uint32_t ctrl;
201198
unsigned int key = 0;
202199

203-
ARG_UNUSED(op);
204-
205200
syscon_read_reg(dev, CACHE_FUNC_CTRL_REG, &ctrl);
206201

207202
/* enter critical section */
@@ -224,14 +219,12 @@ int cache_instr_all(int op)
224219
return 0;
225220
}
226221

227-
int cache_instr_range(void *addr, size_t size, int op)
222+
int cache_instr_invd_range(void *addr, size_t size)
228223
{
229224
uint32_t aligned_addr, i, n;
230225
const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon));
231226
unsigned int key = 0;
232227

233-
ARG_UNUSED(op);
234-
235228
if (((uint32_t)addr < CACHED_SRAM_ADDR) ||
236229
((uint32_t)addr > CACHED_SRAM_END)) {
237230
return 0;
@@ -259,6 +252,59 @@ int cache_instr_range(void *addr, size_t size, int op)
259252
return 0;
260253
}
261254

255+
int cache_data_flush_all(void)
256+
{
257+
return -ENOTSUP;
258+
}
259+
260+
int cache_data_flush_and_invd_all(void)
261+
{
262+
return -ENOTSUP;
263+
}
264+
265+
int cache_data_flush_range(void *addr, size_t size)
266+
{
267+
ARG_UNUSED(addr);
268+
ARG_UNUSED(size);
269+
270+
return -ENOTSUP;
271+
}
272+
273+
int cache_data_flush_and_invd_range(void *addr, size_t size)
274+
{
275+
ARG_UNUSED(addr);
276+
ARG_UNUSED(size);
277+
278+
return -ENOTSUP;
279+
}
280+
281+
int cache_instr_flush_all(void)
282+
{
283+
return -ENOTSUP;
284+
}
285+
286+
int cache_instr_flush_and_invd_all(void)
287+
{
288+
return -ENOTSUP;
289+
}
290+
291+
int cache_instr_flush_range(void *addr, size_t size)
292+
{
293+
ARG_UNUSED(addr);
294+
ARG_UNUSED(size);
295+
296+
return -ENOTSUP;
297+
}
298+
299+
int cache_instr_flush_and_invd_range(void *addr, size_t size)
300+
{
301+
ARG_UNUSED(addr);
302+
ARG_UNUSED(size);
303+
304+
return -ENOTSUP;
305+
}
306+
307+
262308
#ifdef CONFIG_DCACHE_LINE_SIZE_DETECT
263309
size_t cache_data_line_size_get(void)
264310
{
@@ -267,7 +313,7 @@ size_t cache_data_line_size_get(void)
267313

268314
syscon_read_reg(dev, CACHE_FUNC_CTRL_REG, &ctrl);
269315

270-
return (ctrl & CACHE_EANABLE) ? CACHE_LINE_SIZE : 0;
316+
return (ctrl & CACHE_ENABLE) ? CACHE_LINE_SIZE : 0;
271317
}
272318
#endif /* CONFIG_DCACHE_LINE_SIZE_DETECT */
273319

@@ -279,6 +325,6 @@ size_t cache_instr_line_size_get(void)
279325

280326
syscon_read_reg(dev, CACHE_FUNC_CTRL_REG, &ctrl);
281327

282-
return (ctrl & CACHE_EANABLE) ? CACHE_LINE_SIZE : 0;
328+
return (ctrl & CCHE_EANABLE) ? CACHE_LINE_SIZE : 0;
283329
}
284330
#endif /* CONFIG_ICACHE_LINE_SIZE_DETECT */

0 commit comments

Comments
 (0)