1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /*
3  *
4  * (C) COPYRIGHT 2017, 2020-2021 ARM Limited. All rights reserved.
5  *
6  * This program is free software and is provided to you under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation, and any use by you of this program is subject to the terms
9  * of such GNU license.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, you can access it online at
18  * http://www.gnu.org/licenses/gpl-2.0.html.
19  *
20  */
21 
22 #ifndef _PROTECTED_MODE_SWITCH_H_
23 #define _PROTECTED_MODE_SWITCH_H_
24 
25 struct protected_mode_device;
26 
27 /**
28  * struct protected_mode_ops - Callbacks for protected mode switch operations
29  *
30  * @protected_mode_enable:  Callback to enable protected mode for device, and
31  *                          reset device
32  *                          Returns 0 on success, non-zero on error
33  * @protected_mode_disable: Callback to disable protected mode for device
34  *                          Returns 0 on success, non-zero on error
35  */
36 struct protected_mode_ops {
37 	int (*protected_mode_enable)(
38 			struct protected_mode_device *protected_dev);
39 	int (*protected_mode_disable)(
40 			struct protected_mode_device *protected_dev);
41 };
42 
43 /**
44  * struct protected_mode_device - Device structure for protected mode devices
45  * @ops:  Callbacks associated with this device
46  * @data: Pointer to device private data
47  *
48  * This structure should be registered with the platform device using
49  * platform_set_drvdata().
50  */
51 struct protected_mode_device {
52 	struct protected_mode_ops ops;
53 	void *data;
54 };
55 
56 #endif /* _PROTECTED_MODE_SWITCH_H_ */
57