4 * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com)
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
20 struct arcpgu_drm_private
{
23 struct drm_fbdev_cma
*fbdev
;
24 struct drm_framebuffer
*fb
;
26 struct drm_plane
*plane
;
29 #define crtc_to_arcpgu_priv(x) container_of(x, struct arcpgu_drm_private, crtc)
31 static inline void arc_pgu_write(struct arcpgu_drm_private
*arcpgu
,
32 unsigned int reg
, u32 value
)
34 iowrite32(value
, arcpgu
->regs
+ reg
);
37 static inline u32
arc_pgu_read(struct arcpgu_drm_private
*arcpgu
,
40 return ioread32(arcpgu
->regs
+ reg
);
43 int arc_pgu_setup_crtc(struct drm_device
*dev
);
44 int arcpgu_drm_hdmi_init(struct drm_device
*drm
, struct device_node
*np
);
45 int arcpgu_drm_sim_init(struct drm_device
*drm
, struct device_node
*np
);
46 struct drm_fbdev_cma
*arcpgu_fbdev_cma_init(struct drm_device
*dev
,
47 unsigned int preferred_bpp
, unsigned int num_crtc
,
48 unsigned int max_conn_count
);