blob: 300a70072aa4dc7e29faeb29c7638e1e57715d6a [file] [log] [blame]
xjb04a4022021-11-25 15:01:52 +08001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (c) 2015-2016 MediaTek Inc.
4 * Author: Yong Wu <yong.wu@mediatek.com>
5 */
6#ifndef MTK_IOMMU_SMI_H
7#define MTK_IOMMU_SMI_H
8
9#include <linux/bitops.h>
10#include <linux/device.h>
11
12#if IS_ENABLED(CONFIG_MTK_SMI)
13
14#define MTK_LARB_NR_MAX 16
15
16#define MTK_SMI_MMU_EN(port) BIT(port)
17
18struct mtk_smi_larb_iommu {
19 struct device *dev;
20 unsigned int mmu;
21};
22
23struct mtk_smi_iommu {
24 struct mtk_smi_larb_iommu larb_imu[MTK_LARB_NR_MAX];
25};
26
27void mtk_smi_common_bw_set(struct device *dev, const u32 port, const u32 val);
28void mtk_smi_larb_bw_set(struct device *dev, const u32 port, const u32 val);
29
30#else
31
32static inline void
33mtk_smi_common_bw_set(struct device *dev, const u32 port, const u32 val) { }
34static inline void
35mtk_smi_larb_bw_set(struct device *dev, const u32 port, const u32 val) { }
36
37#endif
38
39#endif