/* 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__ */
