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
13struct drm_device;
14struct drm_i915_private;
15
16enum 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
28void vlv_iosf_sb_init(struct drm_i915_private *i915);
29void vlv_iosf_sb_fini(struct drm_i915_private *i915);
30
31void vlv_iosf_sb_get(struct drm_device *drm, unsigned long unit_mask);
32void vlv_iosf_sb_put(struct drm_device *drm, unsigned long unit_mask);
33
34u32 vlv_iosf_sb_read(struct drm_device *drm, enum vlv_iosf_sb_unit unit, u32 addr);
35int 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