#ifndef __SPRD_DPU_H__
#define __SPRD_DPU_H__
#include <linux/bug.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/string.h>
#include <video/videomode.h>
#include <drm/drm_crtc.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_print.h>
#include <drm/drm_vblank.h>
#include <uapi/drm/drm_mode.h>
#define DPU_LAY_REG_OFFSET …
enum { … };
struct dpu_context { … };
struct sprd_dpu { … };
static inline struct sprd_dpu *to_sprd_crtc(struct drm_crtc *crtc)
{ … }
static inline void
dpu_reg_set(struct dpu_context *ctx, u32 offset, u32 set_bits)
{ … }
static inline void
dpu_reg_clr(struct dpu_context *ctx, u32 offset, u32 clr_bits)
{ … }
static inline u32
layer_reg_rd(struct dpu_context *ctx, u32 offset, int index)
{ … }
static inline void
layer_reg_wr(struct dpu_context *ctx, u32 offset, u32 cfg_bits, int index)
{ … }
void sprd_dpu_run(struct sprd_dpu *dpu);
void sprd_dpu_stop(struct sprd_dpu *dpu);
#endif