brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · d160d92 Raw
64 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * Copyright (C) 2016 Marek Vasut <marex@denx.de>4 *5 * i.MX23/i.MX28/i.MX6SX MXSFB LCD controller driver.6 */7 8#ifndef __MXSFB_DRV_H__9#define __MXSFB_DRV_H__10 11#include <drm/drm_crtc.h>12#include <drm/drm_device.h>13#include <drm/drm_encoder.h>14#include <drm/drm_plane.h>15 16struct clk;17 18struct mxsfb_devdata {19	unsigned int	transfer_count;20	unsigned int	cur_buf;21	unsigned int	next_buf;22	unsigned int	hs_wdth_mask;23	unsigned int	hs_wdth_shift;24	bool		has_overlay;25	bool		has_ctrl2;26	bool		has_crc32;27};28 29struct mxsfb_drm_private {30	const struct mxsfb_devdata	*devdata;31 32	void __iomem			*base;	/* registers */33	struct clk			*clk;34	struct clk			*clk_axi;35	struct clk			*clk_disp_axi;36 37	unsigned int			irq;38 39	struct drm_device		*drm;40	struct {41		struct drm_plane	primary;42		struct drm_plane	overlay;43	} planes;44	struct drm_crtc			crtc;45	struct drm_encoder		encoder;46	struct drm_connector		*connector;47	struct drm_bridge		*bridge;48 49	bool				crc_active;50};51 52static inline struct mxsfb_drm_private *53to_mxsfb_drm_private(struct drm_device *drm)54{55	return drm->dev_private;56}57 58void mxsfb_enable_axi_clk(struct mxsfb_drm_private *mxsfb);59void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb);60 61int mxsfb_kms_init(struct mxsfb_drm_private *mxsfb);62 63#endif /* __MXSFB_DRV_H__ */64