1af2c3834SStanimir Varbanov /*
2af2c3834SStanimir Varbanov  * Copyright (C) 2017 Linaro Ltd.
3af2c3834SStanimir Varbanov  *
4af2c3834SStanimir Varbanov  * This program is free software; you can redistribute it and/or modify
5af2c3834SStanimir Varbanov  * it under the terms of the GNU General Public License version 2 and
6af2c3834SStanimir Varbanov  * only version 2 as published by the Free Software Foundation.
7af2c3834SStanimir Varbanov  *
8af2c3834SStanimir Varbanov  * This program is distributed in the hope that it will be useful,
9af2c3834SStanimir Varbanov  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10af2c3834SStanimir Varbanov  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11af2c3834SStanimir Varbanov  * GNU General Public License for more details.
12af2c3834SStanimir Varbanov  *
13af2c3834SStanimir Varbanov  */
14af2c3834SStanimir Varbanov #ifndef __VENUS_FIRMWARE_H__
15af2c3834SStanimir Varbanov #define __VENUS_FIRMWARE_H__
16af2c3834SStanimir Varbanov 
17af2c3834SStanimir Varbanov struct device;
18af2c3834SStanimir Varbanov 
19377a22d3SStanimir Varbanov int venus_boot(struct device *dev, const char *fwname);
20377a22d3SStanimir Varbanov int venus_shutdown(struct device *dev);
215df317c8SVikash Garodia int venus_set_hw_state(struct venus_core *core, bool suspend);
225df317c8SVikash Garodia 
235df317c8SVikash Garodia static inline int venus_set_hw_state_suspend(struct venus_core *core)
245df317c8SVikash Garodia {
255df317c8SVikash Garodia 	return venus_set_hw_state(core, false);
265df317c8SVikash Garodia }
275df317c8SVikash Garodia 
285df317c8SVikash Garodia static inline int venus_set_hw_state_resume(struct venus_core *core)
295df317c8SVikash Garodia {
305df317c8SVikash Garodia 	return venus_set_hw_state(core, true);
315df317c8SVikash Garodia }
32af2c3834SStanimir Varbanov 
33af2c3834SStanimir Varbanov #endif
34