1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* |
3 | * Copyright (C) 2022 Marek Vasut <marex@denx.de> |
4 | * |
5 | * i.MX8MP/i.MXRT LCDIFv3 LCD controller driver. |
6 | */ |
7 | |
8 | #ifndef __LCDIF_DRV_H__ |
9 | #define __LCDIF_DRV_H__ |
10 | |
11 | #include <drm/drm_bridge.h> |
12 | #include <drm/drm_crtc.h> |
13 | #include <drm/drm_device.h> |
14 | #include <drm/drm_plane.h> |
15 | |
16 | struct clk; |
17 | |
18 | struct lcdif_drm_private { |
19 | void __iomem *base; /* registers */ |
20 | struct clk *clk; |
21 | struct clk *clk_axi; |
22 | struct clk *clk_disp_axi; |
23 | |
24 | unsigned int irq; |
25 | |
26 | struct drm_device *drm; |
27 | struct { |
28 | struct drm_plane primary; |
29 | /* i.MXRT does support overlay planes, add them here. */ |
30 | } planes; |
31 | struct drm_crtc crtc; |
32 | }; |
33 | |
34 | static inline struct lcdif_drm_private * |
35 | to_lcdif_drm_private(struct drm_device *drm) |
36 | { |
37 | return drm->dev_private; |
38 | } |
39 | |
40 | int lcdif_kms_init(struct lcdif_drm_private *lcdif); |
41 | |
42 | #endif /* __LCDIF_DRV_H__ */ |
43 | |