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