19db35bb3SMarek Vasut /* SPDX-License-Identifier: GPL-2.0-or-later */ 29db35bb3SMarek Vasut /* 39db35bb3SMarek Vasut * Copyright (C) 2022 Marek Vasut <marex@denx.de> 49db35bb3SMarek Vasut * 59db35bb3SMarek Vasut * i.MX8MP/i.MXRT LCDIFv3 LCD controller driver. 69db35bb3SMarek Vasut */ 79db35bb3SMarek Vasut 89db35bb3SMarek Vasut #ifndef __LCDIF_DRV_H__ 99db35bb3SMarek Vasut #define __LCDIF_DRV_H__ 109db35bb3SMarek Vasut 11*fcfd3e5fSMarek Vasut #include <drm/drm_bridge.h> 129db35bb3SMarek Vasut #include <drm/drm_crtc.h> 139db35bb3SMarek Vasut #include <drm/drm_device.h> 149db35bb3SMarek Vasut #include <drm/drm_plane.h> 159db35bb3SMarek Vasut 169db35bb3SMarek Vasut struct clk; 179db35bb3SMarek Vasut 189db35bb3SMarek Vasut struct lcdif_drm_private { 199db35bb3SMarek Vasut void __iomem *base; /* registers */ 209db35bb3SMarek Vasut struct clk *clk; 219db35bb3SMarek Vasut struct clk *clk_axi; 229db35bb3SMarek Vasut struct clk *clk_disp_axi; 239db35bb3SMarek Vasut 249db35bb3SMarek Vasut unsigned int irq; 259db35bb3SMarek Vasut 269db35bb3SMarek Vasut struct drm_device *drm; 279db35bb3SMarek Vasut struct { 289db35bb3SMarek Vasut struct drm_plane primary; 299db35bb3SMarek Vasut /* i.MXRT does support overlay planes, add them here. */ 309db35bb3SMarek Vasut } planes; 319db35bb3SMarek Vasut struct drm_crtc crtc; 329db35bb3SMarek Vasut }; 339db35bb3SMarek Vasut 349db35bb3SMarek Vasut static inline struct lcdif_drm_private * to_lcdif_drm_private(struct drm_device * drm)359db35bb3SMarek Vasutto_lcdif_drm_private(struct drm_device *drm) 369db35bb3SMarek Vasut { 379db35bb3SMarek Vasut return drm->dev_private; 389db35bb3SMarek Vasut } 399db35bb3SMarek Vasut 409db35bb3SMarek Vasut int lcdif_kms_init(struct lcdif_drm_private *lcdif); 419db35bb3SMarek Vasut 429db35bb3SMarek Vasut #endif /* __LCDIF_DRV_H__ */ 43