16819b5a6SJani Nikula /* SPDX-License-Identifier: MIT */ 26819b5a6SJani Nikula /* 36819b5a6SJani Nikula * Copyright © 2013-2021 Intel Corporation 46819b5a6SJani Nikula */ 56819b5a6SJani Nikula 66819b5a6SJani Nikula #ifndef _VLV_IOSF_SB_H_ 76819b5a6SJani Nikula #define _VLV_IOSF_SB_H_ 86819b5a6SJani Nikula 96819b5a6SJani Nikula #include <linux/types.h> 106819b5a6SJani Nikula 116819b5a6SJani Nikula #include "vlv_iosf_sb_reg.h" 126819b5a6SJani Nikula 13bd4d1856SJani Nikula struct drm_device; 146819b5a6SJani Nikula struct drm_i915_private; 156819b5a6SJani Nikula 167e9f0cc2SJani Nikula enum vlv_iosf_sb_unit { 176819b5a6SJani Nikula VLV_IOSF_SB_BUNIT, 186819b5a6SJani Nikula VLV_IOSF_SB_CCK, 196819b5a6SJani Nikula VLV_IOSF_SB_CCU, 206819b5a6SJani Nikula VLV_IOSF_SB_DPIO, 217e9f0cc2SJani Nikula VLV_IOSF_SB_DPIO_2, 226819b5a6SJani Nikula VLV_IOSF_SB_FLISDSI, 236819b5a6SJani Nikula VLV_IOSF_SB_GPIO, 246819b5a6SJani Nikula VLV_IOSF_SB_NC, 256819b5a6SJani Nikula VLV_IOSF_SB_PUNIT, 266819b5a6SJani Nikula }; 276819b5a6SJani Nikula 286819b5a6SJani Nikula void vlv_iosf_sb_init(struct drm_i915_private *i915); 296819b5a6SJani Nikula void vlv_iosf_sb_fini(struct drm_i915_private *i915); 306819b5a6SJani Nikula 31*52d83615SJani Nikula void vlv_iosf_sb_get(struct drm_device *drm, unsigned long unit_mask); 32*52d83615SJani Nikula void vlv_iosf_sb_put(struct drm_device *drm, unsigned long unit_mask); 336819b5a6SJani Nikula 34bd4d1856SJani Nikula u32 vlv_iosf_sb_read(struct drm_device *drm, enum vlv_iosf_sb_unit unit, u32 addr); 35bd4d1856SJani Nikula int vlv_iosf_sb_write(struct drm_device *drm, enum vlv_iosf_sb_unit unit, u32 addr, u32 val); 367e9f0cc2SJani Nikula 376819b5a6SJani Nikula #endif /* _VLV_IOSF_SB_H_ */ 38