18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright 2016 Linaro Ltd.
48c2ecf20Sopenharmony_ci * Copyright 2016 ZTE Corporation.
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#ifndef __ZX_DRM_DRV_H__
88c2ecf20Sopenharmony_ci#define __ZX_DRM_DRV_H__
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciextern struct platform_driver zx_crtc_driver;
118c2ecf20Sopenharmony_ciextern struct platform_driver zx_hdmi_driver;
128c2ecf20Sopenharmony_ciextern struct platform_driver zx_tvenc_driver;
138c2ecf20Sopenharmony_ciextern struct platform_driver zx_vga_driver;
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cistatic inline u32 zx_readl(void __iomem *reg)
168c2ecf20Sopenharmony_ci{
178c2ecf20Sopenharmony_ci	return readl_relaxed(reg);
188c2ecf20Sopenharmony_ci}
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_cistatic inline void zx_writel(void __iomem *reg, u32 val)
218c2ecf20Sopenharmony_ci{
228c2ecf20Sopenharmony_ci	writel_relaxed(val, reg);
238c2ecf20Sopenharmony_ci}
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_cistatic inline void zx_writel_mask(void __iomem *reg, u32 mask, u32 val)
268c2ecf20Sopenharmony_ci{
278c2ecf20Sopenharmony_ci	u32 tmp;
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci	tmp = zx_readl(reg);
308c2ecf20Sopenharmony_ci	tmp = (tmp & ~mask) | (val & mask);
318c2ecf20Sopenharmony_ci	zx_writel(reg, tmp);
328c2ecf20Sopenharmony_ci}
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci#endif /* __ZX_DRM_DRV_H__ */
35