197fb5e8dSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2af2c3834SStanimir Varbanov /*
3af2c3834SStanimir Varbanov  * Copyright (C) 2017 Linaro Ltd.
4af2c3834SStanimir Varbanov  */
5af2c3834SStanimir Varbanov #ifndef __VENUS_FIRMWARE_H__
6af2c3834SStanimir Varbanov #define __VENUS_FIRMWARE_H__
7af2c3834SStanimir Varbanov 
8af2c3834SStanimir Varbanov struct device;
9af2c3834SStanimir Varbanov 
10f9799fccSStanimir Varbanov int venus_firmware_init(struct venus_core *core);
11f9799fccSStanimir Varbanov void venus_firmware_deinit(struct venus_core *core);
12a4cf7e3cSVikash Garodia int venus_boot(struct venus_core *core);
13df381dc8SVikash Garodia int venus_shutdown(struct venus_core *core);
145df317c8SVikash Garodia int venus_set_hw_state(struct venus_core *core, bool suspend);
155df317c8SVikash Garodia 
venus_set_hw_state_suspend(struct venus_core * core)165df317c8SVikash Garodia static inline int venus_set_hw_state_suspend(struct venus_core *core)
175df317c8SVikash Garodia {
185df317c8SVikash Garodia 	return venus_set_hw_state(core, false);
195df317c8SVikash Garodia }
205df317c8SVikash Garodia 
venus_set_hw_state_resume(struct venus_core * core)215df317c8SVikash Garodia static inline int venus_set_hw_state_resume(struct venus_core *core)
225df317c8SVikash Garodia {
235df317c8SVikash Garodia 	return venus_set_hw_state(core, true);
245df317c8SVikash Garodia }
25af2c3834SStanimir Varbanov 
26af2c3834SStanimir Varbanov #endif
27