/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2014-2020, Samsung Electronics. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * may be copied, distributed, and modified under those terms. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ #ifndef __MCU_IPC_H__ #define __MCU_IPC_H__ #if IS_ENABLED(CONFIG_MCU_IPC) extern int cp_mbox_register_handler(u32 idx, u32 int_num, irq_handler_t handler, void *data); extern int cp_mbox_unregister_handler(u32 idx, u32 int_num, irq_handler_t handler); extern int cp_mbox_enable_handler(u32 idx, u32 int_num); extern int cp_mbox_disable_handler(u32 idx, u32 int_num); extern int cp_mbox_check_handler(u32 idx, u32 int_num); extern void cp_mbox_set_interrupt(u32 idx, u32 int_num); extern u32 cp_mbox_get_sr(u32 sr_num); extern u32 cp_mbox_extract_sr(u32 sr_num, u32 mask, u32 pos); extern void cp_mbox_set_sr(u32 sr_num, u32 msg); extern void cp_mbox_update_sr(u32 sr_num, u32 msg, u32 mask, u32 pos); extern void cp_mbox_dump_sr(void); extern void cp_mbox_reset(void); extern int cp_mbox_get_affinity(u32 idx); extern int cp_mbox_set_affinity(u32 idx, int affinity); #else /* CONFIG_MCU_IPC */ static inline int cp_mbox_register_handler(u32 idx, u32 int_num, irq_handler_t handler, void *data) { return 0; } static inline int cp_mbox_unregister_handler(u32 idx, u32 int_num, irq_handler_t handler) { return 0; } static inline int cp_mbox_enable_handler(u32 idx, u32 int_num) { return 0; } static inline int cp_mbox_disable_handler(u32 idx, u32 int_num) { return 0; } static inline int cp_mbox_check_handler(u32 idx, u32 int_num) { return 0; } static inline void cp_mbox_set_interrupt(u32 idx, u32 int_num) { return; } static inline u32 cp_mbox_get_sr(u32 sr_num) { return 0; } static inline u32 cp_mbox_extract_sr(u32 sr_num, u32 mask, u32 pos) { return 0; } static inline void cp_mbox_set_sr(u32 sr_num, u32 msg) { return; } static inline void cp_mbox_update_sr(u32 sr_num, u32 msg, u32 mask, u32 pos) { return; } static inline void cp_mbox_dump_sr(void) { return; } static inline void cp_mbox_reset(void) { return; } static inline int cp_mbox_get_affinity(u32 idx) { return 0; } static inline int cp_mbox_set_affinity(u32 idx, int affinity) { return 0; } #endif /* CONFIG_MCU_IPC */ #endif /* __MCU_IPC_H__ */