/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2023 VeriSilicon Holdings Co., Ltd. */ #ifndef __VS_DRV_H__ #define __VS_DRV_H__ #include #include #include #include #include #include #include enum rst_vout { RST_VOUT_AXI = 0, RST_VOUT_AHB, RST_VOUT_CORE, RST_VOUT_NUM }; /*@pitch_alignment: buffer pitch alignment required by sub-devices.*/ struct vs_drm_device { struct drm_device base; unsigned int pitch_alignment; /* clocks */ unsigned int clk_count; struct clk **clks; struct reset_control_bulk_data rst_vout[RST_VOUT_NUM]; int nrsts; }; static inline struct vs_drm_device * to_vs_drm_private(const struct drm_device *dev) { return container_of(dev, struct vs_drm_device, base); } #ifdef CONFIG_DRM_VERISILICON_STARFIVE_HDMI extern struct platform_driver starfive_hdmi_driver; #endif #endif /* __VS_DRV_H__ */