xref: /linux/drivers/gpu/drm/i915/vlv_iosf_sb.h (revision 8d2b0853add1d7534dc0794e3c8e0b9e8c4ec640)
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