Commit | Line | Data |
---|---|---|
7caa4342 D |
1 | #ifndef __VIDEO_SH_MOBILE_MERAM_H__ |
2 | #define __VIDEO_SH_MOBILE_MERAM_H__ | |
3 | ||
4 | /* For sh_mobile_meram_info.addr_mode */ | |
5 | enum { | |
6 | SH_MOBILE_MERAM_MODE0 = 0, | |
7 | SH_MOBILE_MERAM_MODE1 | |
8 | }; | |
9 | ||
10 | enum { | |
11 | SH_MOBILE_MERAM_PF_NV = 0, | |
3fedd2ac D |
12 | SH_MOBILE_MERAM_PF_RGB, |
13 | SH_MOBILE_MERAM_PF_NV24 | |
7caa4342 D |
14 | }; |
15 | ||
16 | ||
17 | struct sh_mobile_meram_priv; | |
18 | struct sh_mobile_meram_ops; | |
19 | ||
20 | struct sh_mobile_meram_info { | |
21 | int addr_mode; | |
22 | struct sh_mobile_meram_ops *ops; | |
23 | struct sh_mobile_meram_priv *priv; | |
24 | struct platform_device *pdev; | |
25 | }; | |
26 | ||
27 | /* icb config */ | |
28 | struct sh_mobile_meram_icb { | |
29 | int marker_icb; /* ICB # for Marker ICB */ | |
30 | int cache_icb; /* ICB # for Cache ICB */ | |
31 | int meram_offset; /* MERAM Buffer Offset to use */ | |
32 | int meram_size; /* MERAM Buffer Size to use */ | |
33 | ||
34 | int cache_unit; /* bytes to cache per ICB */ | |
35 | }; | |
36 | ||
37 | struct sh_mobile_meram_cfg { | |
38 | struct sh_mobile_meram_icb icb[2]; | |
39 | int pixelformat; | |
40 | int current_reg; | |
41 | }; | |
42 | ||
43 | struct module; | |
44 | struct sh_mobile_meram_ops { | |
45 | struct module *module; | |
46 | /* register usage of meram */ | |
47 | int (*meram_register)(struct sh_mobile_meram_info *meram_dev, | |
48 | struct sh_mobile_meram_cfg *cfg, | |
49 | int xres, int yres, int pixelformat, | |
50 | unsigned long base_addr_y, | |
51 | unsigned long base_addr_c, | |
52 | unsigned long *icb_addr_y, | |
53 | unsigned long *icb_addr_c, int *pitch); | |
54 | ||
55 | /* unregister usage of meram */ | |
56 | int (*meram_unregister)(struct sh_mobile_meram_info *meram_dev, | |
57 | struct sh_mobile_meram_cfg *cfg); | |
58 | ||
59 | /* update meram settings */ | |
60 | int (*meram_update)(struct sh_mobile_meram_info *meram_dev, | |
61 | struct sh_mobile_meram_cfg *cfg, | |
62 | unsigned long base_addr_y, | |
63 | unsigned long base_addr_c, | |
64 | unsigned long *icb_addr_y, | |
65 | unsigned long *icb_addr_c); | |
66 | }; | |
67 | ||
68 | #endif /* __VIDEO_SH_MOBILE_MERAM_H__ */ |