xref: /linux/drivers/gpu/drm/i915/vlv_iosf_sb.h (revision 8d2b0853add1d7534dc0794e3c8e0b9e8c4ec640)
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2013-2021 Intel Corporation
4  */
5 
6 #ifndef _VLV_IOSF_SB_H_
7 #define _VLV_IOSF_SB_H_
8 
9 #include <linux/types.h>
10 
11 #include "vlv_iosf_sb_reg.h"
12 
13 struct drm_device;
14 struct drm_i915_private;
15 
16 enum vlv_iosf_sb_unit {
17 	VLV_IOSF_SB_BUNIT,
18 	VLV_IOSF_SB_CCK,
19 	VLV_IOSF_SB_CCU,
20 	VLV_IOSF_SB_DPIO,
21 	VLV_IOSF_SB_DPIO_2,
22 	VLV_IOSF_SB_FLISDSI,
23 	VLV_IOSF_SB_GPIO,
24 	VLV_IOSF_SB_NC,
25 	VLV_IOSF_SB_PUNIT,
26 };
27 
28 void vlv_iosf_sb_init(struct drm_i915_private *i915);
29 void vlv_iosf_sb_fini(struct drm_i915_private *i915);
30 
31 void vlv_iosf_sb_get(struct drm_device *drm, unsigned long unit_mask);
32 void vlv_iosf_sb_put(struct drm_device *drm, unsigned long unit_mask);
33 
34 u32 vlv_iosf_sb_read(struct drm_device *drm, enum vlv_iosf_sb_unit unit, u32 addr);
35 int vlv_iosf_sb_write(struct drm_device *drm, enum vlv_iosf_sb_unit unit, u32 addr, u32 val);
36 
37 #endif /* _VLV_IOSF_SB_H_ */
38