18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * linux/drivers/video/mmp/fb/mmpfb.h
48c2ecf20Sopenharmony_ci * Framebuffer driver for Marvell Display controller.
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * Copyright (C) 2012 Marvell Technology Group Ltd.
78c2ecf20Sopenharmony_ci * Authors: Zhou Zhu <zzhu3@marvell.com>
88c2ecf20Sopenharmony_ci */
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#ifndef _MMP_FB_H_
118c2ecf20Sopenharmony_ci#define _MMP_FB_H_
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#include <video/mmp_disp.h>
148c2ecf20Sopenharmony_ci#include <linux/fb.h>
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci/* LCD controller private state. */
178c2ecf20Sopenharmony_cistruct mmpfb_info {
188c2ecf20Sopenharmony_ci	struct device	*dev;
198c2ecf20Sopenharmony_ci	int	id;
208c2ecf20Sopenharmony_ci	const char	*name;
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	struct fb_info	*fb_info;
238c2ecf20Sopenharmony_ci	/* basicaly videomode is for output */
248c2ecf20Sopenharmony_ci	struct fb_videomode	mode;
258c2ecf20Sopenharmony_ci	int	pix_fmt;
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	void	*fb_start;
288c2ecf20Sopenharmony_ci	int	fb_size;
298c2ecf20Sopenharmony_ci	dma_addr_t	fb_start_dma;
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	struct mmp_overlay	*overlay;
328c2ecf20Sopenharmony_ci	struct mmp_path	*path;
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci	struct mutex	access_ok;
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci	unsigned int		pseudo_palette[16];
378c2ecf20Sopenharmony_ci	int output_fmt;
388c2ecf20Sopenharmony_ci};
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci#define MMPFB_DEFAULT_SIZE (PAGE_ALIGN(1920 * 1080 * 4 * 2))
418c2ecf20Sopenharmony_ci#endif /* _MMP_FB_H_ */
42