1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
2 | /* |
3 | * Copyright (C) 2016 Freescale Semiconductor, Inc. |
4 | * Copyright 2017~2018 NXP |
5 | * |
6 | * Header file containing the public System Controller Interface (SCI) |
7 | * definitions. |
8 | */ |
9 | |
10 | #ifndef _SC_SCI_H |
11 | #define _SC_SCI_H |
12 | |
13 | #include <linux/firmware/imx/ipc.h> |
14 | |
15 | #include <linux/firmware/imx/svc/misc.h> |
16 | #include <linux/firmware/imx/svc/pm.h> |
17 | #include <linux/firmware/imx/svc/rm.h> |
18 | |
19 | #if IS_ENABLED(CONFIG_IMX_SCU) |
20 | int imx_scu_enable_general_irq_channel(struct device *dev); |
21 | int imx_scu_irq_register_notifier(struct notifier_block *nb); |
22 | int imx_scu_irq_unregister_notifier(struct notifier_block *nb); |
23 | int imx_scu_irq_group_enable(u8 group, u32 mask, u8 enable); |
24 | int imx_scu_irq_get_status(u8 group, u32 *irq_status); |
25 | int imx_scu_soc_init(struct device *dev); |
26 | #else |
27 | static inline int imx_scu_soc_init(struct device *dev) |
28 | { |
29 | return -EOPNOTSUPP; |
30 | } |
31 | |
32 | static inline int imx_scu_enable_general_irq_channel(struct device *dev) |
33 | { |
34 | return -EOPNOTSUPP; |
35 | } |
36 | |
37 | static inline int imx_scu_irq_register_notifier(struct notifier_block *nb) |
38 | { |
39 | return -EOPNOTSUPP; |
40 | } |
41 | |
42 | static inline int imx_scu_irq_unregister_notifier(struct notifier_block *nb) |
43 | { |
44 | return -EOPNOTSUPP; |
45 | } |
46 | |
47 | static inline int imx_scu_irq_group_enable(u8 group, u32 mask, u8 enable) |
48 | { |
49 | return -EOPNOTSUPP; |
50 | } |
51 | |
52 | static inline int imx_scu_irq_get_status(u8 group, u32 *irq_status) |
53 | { |
54 | return -EOPNOTSUPP; |
55 | } |
56 | #endif |
57 | #endif /* _SC_SCI_H */ |
58 | |