Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2
3/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2019-2022 Linaro Ltd.
5 */
6#ifndef _IPA_UC_H_
7#define _IPA_UC_H_
8
9struct ipa;
10
11/**
12 * ipa_uc_config() - Configure the IPA microcontroller subsystem
13 * @ipa: IPA pointer
14 */
15void ipa_uc_config(struct ipa *ipa);
16
17/**
18 * ipa_uc_deconfig() - Inverse of ipa_uc_config()
19 * @ipa: IPA pointer
20 */
21void ipa_uc_deconfig(struct ipa *ipa);
22
23/**
24 * ipa_uc_power() - Take a proxy power reference for the microcontroller
25 * @ipa: IPA pointer
26 *
27 * The first time the modem boots, it loads firmware for and starts the
28 * IPA-resident microcontroller. The microcontroller signals that it
29 * has completed its initialization by sending an INIT_COMPLETED response
30 * message to the AP. The AP must ensure the IPA is powered until
31 * it receives this message, and to do so we take a "proxy" clock
32 * reference on its behalf here. Once we receive the INIT_COMPLETED
33 * message (in ipa_uc_response_hdlr()) we drop this power reference.
34 */
35void ipa_uc_power(struct ipa *ipa);
36
37/**
38 * ipa_uc_panic_notifier()
39 * @ipa: IPA pointer
40 *
41 * Notifier function called when the system crashes, to inform the
42 * microcontroller of the event.
43 */
44void ipa_uc_panic_notifier(struct ipa *ipa);
45
46#endif /* _IPA_UC_H_ */