xref: /openbmc/linux/drivers/net/ipa/ipa_smp2p.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1530f9216SAlex Elder /* SPDX-License-Identifier: GPL-2.0 */
2530f9216SAlex Elder 
3530f9216SAlex Elder /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4*a4388da5SAlex Elder  * Copyright (C) 2019-2022 Linaro Ltd.
5530f9216SAlex Elder  */
6530f9216SAlex Elder #ifndef _IPA_SMP2P_H_
7530f9216SAlex Elder #define _IPA_SMP2P_H_
8530f9216SAlex Elder 
9530f9216SAlex Elder #include <linux/types.h>
10530f9216SAlex Elder 
11530f9216SAlex Elder struct ipa;
12530f9216SAlex Elder 
13530f9216SAlex Elder /**
14530f9216SAlex Elder  * ipa_smp2p_init() - Initialize the IPA SMP2P subsystem
15530f9216SAlex Elder  * @ipa:	IPA pointer
16530f9216SAlex Elder  * @modem_init:	Whether the modem is responsible for GSI initialization
17530f9216SAlex Elder  *
18e3eea08eSAlex Elder  * Return:	0 if successful, or a negative error code
19530f9216SAlex Elder  *
20530f9216SAlex Elder  */
21530f9216SAlex Elder int ipa_smp2p_init(struct ipa *ipa, bool modem_init);
22530f9216SAlex Elder 
23530f9216SAlex Elder /**
24530f9216SAlex Elder  * ipa_smp2p_exit() - Inverse of ipa_smp2p_init()
25530f9216SAlex Elder  * @ipa:	IPA pointer
26530f9216SAlex Elder  */
27530f9216SAlex Elder void ipa_smp2p_exit(struct ipa *ipa);
28530f9216SAlex Elder 
29530f9216SAlex Elder /**
308afc7e47SAlex Elder  * ipa_smp2p_irq_disable_setup() - Disable the "setup ready" interrupt
31862d3f2cSAlex Elder  * @ipa:	IPA pointer
32530f9216SAlex Elder  *
338afc7e47SAlex Elder  * Disable the "ipa-setup-ready" interrupt from the modem.
34530f9216SAlex Elder  */
358afc7e47SAlex Elder void ipa_smp2p_irq_disable_setup(struct ipa *ipa);
36530f9216SAlex Elder 
37530f9216SAlex Elder /**
38530f9216SAlex Elder  * ipa_smp2p_notify_reset() - Reset modem notification state
39530f9216SAlex Elder  * @ipa:	IPA pointer
40530f9216SAlex Elder  *
417aa0e8b8SAlex Elder  * If the modem crashes it queries the IPA power state.  In cleaning
42530f9216SAlex Elder  * up after such a crash this is used to reset some state maintained
43530f9216SAlex Elder  * for managing this notification.
44530f9216SAlex Elder  */
45530f9216SAlex Elder void ipa_smp2p_notify_reset(struct ipa *ipa);
46530f9216SAlex Elder 
47530f9216SAlex Elder #endif /* _IPA_SMP2P_H_ */
48