1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright 2019 Google LLC
4  */
5 
6 #ifndef __ASM_FSP_API_H
7 #define __ASM_FSP_API_H
8 
9 #include <linux/linkage.h>
10 
11 enum fsp_phase {
12 	/* Notification code for post PCI enuermation */
13 	INIT_PHASE_PCI		= 0x20,
14 	/*
15 	 * Notification code before transferring control to the payload.
16 	 * This is issued at the end of init before starting main(), i.e.
17 	 * the command line / boot script.
18 	 */
19 	INIT_PHASE_BOOT		= 0x40,
20 	/*
21 	 * Notification code before existing boot services. This is issued
22 	 * just before removing devices and booting the kernel.
23 	 */
24 	INIT_PHASE_END_FIRMWARE	= 0xf0,
25 };
26 
27 struct fsp_notify_params {
28 	/* Notification phase used for NotifyPhase API */
29 	enum fsp_phase	phase;
30 };
31 
32 /* FspNotify API function prototype */
33 typedef asmlinkage u32 (*fsp_notify_f)(struct fsp_notify_params *params);
34 
35 #endif
36