]>
Commit | Line | Data |
---|---|---|
84b124db DN |
1 | // SPDX-License-Identifier: GPL-2.0 |
2 | /* | |
3 | * Copyright (C) 2019 Intel Corporation <www.intel.com> | |
4 | */ | |
5 | ||
6 | #ifndef __CACHE_H | |
7 | #define __CACHE_H | |
8 | ||
9 | /* | |
10 | * Structure for the cache controller | |
11 | */ | |
12 | struct cache_info { | |
13 | phys_addr_t base; /* Base physical address of cache device. */ | |
14 | }; | |
15 | ||
16 | struct cache_ops { | |
17 | /** | |
18 | * get_info() - Get basic cache info | |
19 | * | |
20 | * @dev: Device to check (UCLASS_CACHE) | |
21 | * @info: Place to put info | |
22 | * @return 0 if OK, -ve on error | |
23 | */ | |
24 | int (*get_info)(struct udevice *dev, struct cache_info *info); | |
4d0140ee RC |
25 | |
26 | /** | |
27 | * enable() - Enable cache | |
28 | * | |
29 | * @dev: Device to check (UCLASS_CACHE) | |
30 | * @return 0 if OK, -ve on error | |
31 | */ | |
32 | int (*enable)(struct udevice *dev); | |
33 | ||
34 | /** | |
35 | * disable() - Flush and disable cache | |
36 | * | |
37 | * @dev: Device to check (UCLASS_CACHE) | |
38 | * @return 0 if OK, -ve on error | |
39 | */ | |
40 | int (*disable)(struct udevice *dev); | |
84b124db DN |
41 | }; |
42 | ||
43 | #define cache_get_ops(dev) ((struct cache_ops *)(dev)->driver->ops) | |
44 | ||
45 | /** | |
46 | * cache_get_info() - Get information about a cache controller | |
47 | * | |
48 | * @dev: Device to check (UCLASS_CACHE) | |
49 | * @info: Returns cache info | |
50 | * @return 0 if OK, -ve on error | |
51 | */ | |
52 | int cache_get_info(struct udevice *dev, struct cache_info *info); | |
53 | ||
4d0140ee RC |
54 | /** |
55 | * cache_enable() - Enable cache | |
56 | * | |
57 | * @dev: Device to check (UCLASS_CACHE) | |
58 | * @return 0 if OK, -ve on error | |
59 | */ | |
60 | int cache_enable(struct udevice *dev); | |
61 | ||
62 | /** | |
63 | * cache_disable() - Flush and disable cache | |
64 | * | |
65 | * @dev: Device to check (UCLASS_CACHE) | |
66 | * @return 0 if OK, -ve on error | |
67 | */ | |
68 | int cache_disable(struct udevice *dev); | |
84b124db | 69 | #endif |