]>
Commit | Line | Data |
---|---|---|
d46d4047 PT |
1 | /* |
2 | * Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH | |
3 | * | |
4 | * SPDX-License-Identifier: GPL-2.0+ | |
5 | */ | |
6 | ||
7 | #ifndef __RK_VOP_H__ | |
8 | #define __RK_VOP_H__ | |
9 | ||
10 | #include <asm/arch/vop_rk3288.h> | |
11 | ||
12 | struct rk_vop_priv { | |
64199d4e | 13 | void *grf; |
d46d4047 PT |
14 | void *regs; |
15 | }; | |
16 | ||
17 | enum vop_features { | |
18 | VOP_FEATURE_OUTPUT_10BIT = (1 << 0), | |
19 | }; | |
20 | ||
21 | struct rkvop_driverdata { | |
22 | /* configuration */ | |
23 | u32 features; | |
24 | /* block-specific setters/getters */ | |
25 | void (*set_pin_polarity)(struct udevice *, enum vop_modes, u32); | |
26 | }; | |
27 | ||
76a5e1b7 PT |
28 | /** |
29 | * rk_vop_probe() - common probe implementation | |
30 | * | |
31 | * Performs the rk_display_init on each port-subnode until finding a | |
32 | * working port (or returning an error if none of the ports could be | |
33 | * successfully initialised). | |
34 | * | |
35 | * @dev: device | |
36 | * @return 0 if OK, -ve if something went wrong | |
37 | */ | |
d46d4047 | 38 | int rk_vop_probe(struct udevice *dev); |
76a5e1b7 PT |
39 | |
40 | /** | |
41 | * rk_vop_bind() - common bind implementation | |
42 | * | |
43 | * Sets the plat->size field to the amount of memory to be reserved for | |
44 | * the framebuffer: this is always | |
45 | * (32 BPP) x VIDEO_ROCKCHIP_MAX_XRES x VIDEO_ROCKCHIP_MAX_YRES | |
46 | * | |
47 | * @dev: device | |
48 | * @return 0 (always OK) | |
49 | */ | |
d46d4047 | 50 | int rk_vop_bind(struct udevice *dev); |
76a5e1b7 PT |
51 | |
52 | /** | |
53 | * rk_vop_probe_regulators() - probe (autoset + enable) regulators | |
54 | * | |
55 | * Probes a list of regulators by performing autoset and enable | |
56 | * operations on them. The list of regulators is an array of string | |
57 | * pointers and any individual regulator-probe may fail without | |
58 | * counting as an error. | |
59 | * | |
60 | * @dev: device | |
61 | * @names: array of string-pointers to regulator names to probe | |
62 | * @cnt: number of elements in the 'names' array | |
63 | */ | |
d46d4047 PT |
64 | void rk_vop_probe_regulators(struct udevice *dev, |
65 | const char * const *names, int cnt); | |
66 | ||
67 | #endif |