1edbee095SDong Aisheng /* SPDX-License-Identifier: GPL-2.0+ */
2edbee095SDong Aisheng /*
3edbee095SDong Aisheng * Copyright (C) 2016 Freescale Semiconductor, Inc.
4edbee095SDong Aisheng * Copyright 2017~2018 NXP
5edbee095SDong Aisheng *
6edbee095SDong Aisheng * Header file containing the public System Controller Interface (SCI)
7edbee095SDong Aisheng * definitions.
8edbee095SDong Aisheng */
9edbee095SDong Aisheng
10edbee095SDong Aisheng #ifndef _SC_SCI_H
11edbee095SDong Aisheng #define _SC_SCI_H
12edbee095SDong Aisheng
13edbee095SDong Aisheng #include <linux/firmware/imx/ipc.h>
14edbee095SDong Aisheng
1515e1f2bcSDong Aisheng #include <linux/firmware/imx/svc/misc.h>
160a914a49SA.s. Dong #include <linux/firmware/imx/svc/pm.h>
17169caf69SPeng Fan #include <linux/firmware/imx/svc/rm.h>
18851826c7SAnson Huang
1995de5094SPeng Fan #if IS_ENABLED(CONFIG_IMX_SCU)
20851826c7SAnson Huang int imx_scu_enable_general_irq_channel(struct device *dev);
21851826c7SAnson Huang int imx_scu_irq_register_notifier(struct notifier_block *nb);
22851826c7SAnson Huang int imx_scu_irq_unregister_notifier(struct notifier_block *nb);
23851826c7SAnson Huang int imx_scu_irq_group_enable(u8 group, u32 mask, u8 enable);
24*d2bd250cSPeng Fan int imx_scu_irq_get_status(u8 group, u32 *irq_status);
25a24015faSAnson Huang int imx_scu_soc_init(struct device *dev);
2695de5094SPeng Fan #else
imx_scu_soc_init(struct device * dev)2795de5094SPeng Fan static inline int imx_scu_soc_init(struct device *dev)
2895de5094SPeng Fan {
298314aa8aSPeng Fan return -EOPNOTSUPP;
3095de5094SPeng Fan }
3195de5094SPeng Fan
imx_scu_enable_general_irq_channel(struct device * dev)3295de5094SPeng Fan static inline int imx_scu_enable_general_irq_channel(struct device *dev)
3395de5094SPeng Fan {
348314aa8aSPeng Fan return -EOPNOTSUPP;
3595de5094SPeng Fan }
3695de5094SPeng Fan
imx_scu_irq_register_notifier(struct notifier_block * nb)3795de5094SPeng Fan static inline int imx_scu_irq_register_notifier(struct notifier_block *nb)
3895de5094SPeng Fan {
398314aa8aSPeng Fan return -EOPNOTSUPP;
4095de5094SPeng Fan }
4195de5094SPeng Fan
imx_scu_irq_unregister_notifier(struct notifier_block * nb)4295de5094SPeng Fan static inline int imx_scu_irq_unregister_notifier(struct notifier_block *nb)
4395de5094SPeng Fan {
448314aa8aSPeng Fan return -EOPNOTSUPP;
4595de5094SPeng Fan }
4695de5094SPeng Fan
imx_scu_irq_group_enable(u8 group,u32 mask,u8 enable)4795de5094SPeng Fan static inline int imx_scu_irq_group_enable(u8 group, u32 mask, u8 enable)
4895de5094SPeng Fan {
498314aa8aSPeng Fan return -EOPNOTSUPP;
5095de5094SPeng Fan }
51*d2bd250cSPeng Fan
imx_scu_irq_get_status(u8 group,u32 * irq_status)52*d2bd250cSPeng Fan static inline int imx_scu_irq_get_status(u8 group, u32 *irq_status)
53*d2bd250cSPeng Fan {
54*d2bd250cSPeng Fan return -EOPNOTSUPP;
55*d2bd250cSPeng Fan }
5695de5094SPeng Fan #endif
57edbee095SDong Aisheng #endif /* _SC_SCI_H */
58