mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 07:31:29 +00:00
dbb32d8564
The single LCDIF embedded in i.MX93 SoC may drive multiple displays simultaneously. Look at LCDIF output port's remote port parents to find all enabled first bridges. Add an encoder for each found bridge and attach the bridge to the encoder. This is a preparation for adding i.MX93 LCDIF support. Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> Acked-by: Alexander Stein <alexander.stein@ew.tq-group.com> Signed-off-by: Liu Ying <victor.liu@nxp.com> Reviewed-by: Marek Vasut <marex@denx.de> Signed-off-by: Marek Vasut <marex@denx.de> Link: https://patchwork.freedesktop.org/patch/msgid/20230510092450.4024730-6-victor.liu@nxp.com
43 lines
855 B
C
43 lines
855 B
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2022 Marek Vasut <marex@denx.de>
|
|
*
|
|
* i.MX8MP/i.MXRT LCDIFv3 LCD controller driver.
|
|
*/
|
|
|
|
#ifndef __LCDIF_DRV_H__
|
|
#define __LCDIF_DRV_H__
|
|
|
|
#include <drm/drm_bridge.h>
|
|
#include <drm/drm_crtc.h>
|
|
#include <drm/drm_device.h>
|
|
#include <drm/drm_plane.h>
|
|
|
|
struct clk;
|
|
|
|
struct lcdif_drm_private {
|
|
void __iomem *base; /* registers */
|
|
struct clk *clk;
|
|
struct clk *clk_axi;
|
|
struct clk *clk_disp_axi;
|
|
|
|
unsigned int irq;
|
|
|
|
struct drm_device *drm;
|
|
struct {
|
|
struct drm_plane primary;
|
|
/* i.MXRT does support overlay planes, add them here. */
|
|
} planes;
|
|
struct drm_crtc crtc;
|
|
};
|
|
|
|
static inline struct lcdif_drm_private *
|
|
to_lcdif_drm_private(struct drm_device *drm)
|
|
{
|
|
return drm->dev_private;
|
|
}
|
|
|
|
int lcdif_kms_init(struct lcdif_drm_private *lcdif);
|
|
|
|
#endif /* __LCDIF_DRV_H__ */
|