/* SPDX-License-Identifier: GPL-2.0 */

/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
 * Copyright (C) 2019-2022 Linaro Ltd.
 */
#ifndef _IPA_SMP2P_H_
#define _IPA_SMP2P_H_

#include <linux/types.h>

struct platform_device;

struct ipa;

/**
 * ipa_smp2p_init() - Initialize the IPA SMP2P subsystem
 * @ipa:	IPA pointer
 * @pdev:	Platform device pointer
 * @modem_init:	Whether the modem is responsible for GSI initialization
 *
 * Return:	0 if successful, or a negative error code
 */
int ipa_smp2p_init(struct ipa *ipa, struct platform_device *pdev,
		   bool modem_init);

/**
 * ipa_smp2p_exit() - Inverse of ipa_smp2p_init()
 * @ipa:	IPA pointer
 */
void ipa_smp2p_exit(struct ipa *ipa);

/**
 * ipa_smp2p_irq_disable_setup() - Disable the "setup ready" interrupt
 * @ipa:	IPA pointer
 *
 * Disable the "ipa-setup-ready" interrupt from the modem.
 */
void ipa_smp2p_irq_disable_setup(struct ipa *ipa);

/**
 * ipa_smp2p_notify_reset() - Reset modem notification state
 * @ipa:	IPA pointer
 *
 * If the modem crashes it queries the IPA power state.  In cleaning
 * up after such a crash this is used to reset some state maintained
 * for managing this notification.
 */
void ipa_smp2p_notify_reset(struct ipa *ipa);

#endif /* _IPA_SMP2P_H_ */
