xref: /openbmc/linux/drivers/net/ipa/ipa_version.h (revision 5783c68a25199c47291e5dfa430264417072ebd8)
1cdf2e941SAlex Elder /* SPDX-License-Identifier: GPL-2.0 */
2cdf2e941SAlex Elder 
3cdf2e941SAlex Elder /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4a4388da5SAlex Elder  * Copyright (C) 2019-2022 Linaro Ltd.
5cdf2e941SAlex Elder  */
6cdf2e941SAlex Elder #ifndef _IPA_VERSION_H_
7cdf2e941SAlex Elder #define _IPA_VERSION_H_
8cdf2e941SAlex Elder 
9cdf2e941SAlex Elder /**
10cdf2e941SAlex Elder  * enum ipa_version
11eb09457cSAlex Elder  * @IPA_VERSION_3_0:	IPA version 3.0/GSI version 1.0
12eb09457cSAlex Elder  * @IPA_VERSION_3_1:	IPA version 3.1/GSI version 1.1
13eb09457cSAlex Elder  * @IPA_VERSION_3_5:	IPA version 3.5/GSI version 1.2
14eb09457cSAlex Elder  * @IPA_VERSION_3_5_1:	IPA version 3.5.1/GSI version 1.3
15eb09457cSAlex Elder  * @IPA_VERSION_4_0:	IPA version 4.0/GSI version 2.0
16eb09457cSAlex Elder  * @IPA_VERSION_4_1:	IPA version 4.1/GSI version 2.0
17eb09457cSAlex Elder  * @IPA_VERSION_4_2:	IPA version 4.2/GSI version 2.2
18eb09457cSAlex Elder  * @IPA_VERSION_4_5:	IPA version 4.5/GSI version 2.5
19eb09457cSAlex Elder  * @IPA_VERSION_4_7:	IPA version 4.7/GSI version 2.7
20eb09457cSAlex Elder  * @IPA_VERSION_4_9:	IPA version 4.9/GSI version 2.9
21eb09457cSAlex Elder  * @IPA_VERSION_4_11:	IPA version 4.11/GSI version 2.11 (2.1.1)
22*5783c68aSAlex Elder  * @IPA_VERSION_5_0:	IPA version 5.0/GSI version 3.0
238b3cb084SAlex Elder  * @IPA_VERSION_COUNT:	Number of defined IPA versions
24cdf2e941SAlex Elder  *
25cdf2e941SAlex Elder  * Defines the version of IPA (and GSI) hardware present on the platform.
268b3cb084SAlex Elder  * Please update ipa_version_string() whenever a new version is added.
27cdf2e941SAlex Elder  */
28cdf2e941SAlex Elder enum ipa_version {
29eb09457cSAlex Elder 	IPA_VERSION_3_0,
30eb09457cSAlex Elder 	IPA_VERSION_3_1,
31eb09457cSAlex Elder 	IPA_VERSION_3_5,
32eb09457cSAlex Elder 	IPA_VERSION_3_5_1,
33eb09457cSAlex Elder 	IPA_VERSION_4_0,
34eb09457cSAlex Elder 	IPA_VERSION_4_1,
35eb09457cSAlex Elder 	IPA_VERSION_4_2,
36eb09457cSAlex Elder 	IPA_VERSION_4_5,
37eb09457cSAlex Elder 	IPA_VERSION_4_7,
38eb09457cSAlex Elder 	IPA_VERSION_4_9,
39eb09457cSAlex Elder 	IPA_VERSION_4_11,
40*5783c68aSAlex Elder 	IPA_VERSION_5_0,
418b3cb084SAlex Elder 	IPA_VERSION_COUNT,			/* Last; not a version */
42cdf2e941SAlex Elder };
43cdf2e941SAlex Elder 
448b3cb084SAlex Elder static inline bool ipa_version_supported(enum ipa_version version)
458b3cb084SAlex Elder {
468b3cb084SAlex Elder 	switch (version) {
478b3cb084SAlex Elder 	case IPA_VERSION_3_1:
488b3cb084SAlex Elder 	case IPA_VERSION_3_5_1:
498b3cb084SAlex Elder 	case IPA_VERSION_4_2:
508b3cb084SAlex Elder 	case IPA_VERSION_4_5:
518b3cb084SAlex Elder 	case IPA_VERSION_4_9:
528b3cb084SAlex Elder 	case IPA_VERSION_4_11:
53*5783c68aSAlex Elder 	case IPA_VERSION_5_0:
548b3cb084SAlex Elder 		return true;
558b3cb084SAlex Elder 	default:
568b3cb084SAlex Elder 		return false;
578b3cb084SAlex Elder 	}
588b3cb084SAlex Elder }
598b3cb084SAlex Elder 
60bb788de3SAlex Elder /* Execution environment IDs */
61bb788de3SAlex Elder enum gsi_ee_id {
62bb788de3SAlex Elder 	GSI_EE_AP		= 0x0,
63bb788de3SAlex Elder 	GSI_EE_MODEM		= 0x1,
64bb788de3SAlex Elder 	GSI_EE_UC		= 0x2,
65bb788de3SAlex Elder 	GSI_EE_TZ		= 0x3,
66bb788de3SAlex Elder };
67bb788de3SAlex Elder 
68cdf2e941SAlex Elder #endif /* _IPA_VERSION_H_ */
69