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 19f9799fccSStanimir Varbanov int venus_firmware_init(struct venus_core *core); 20f9799fccSStanimir Varbanov void venus_firmware_deinit(struct venus_core *core); 21a4cf7e3cSVikash Garodia int venus_boot(struct venus_core *core); 22df381dc8SVikash Garodia int venus_shutdown(struct venus_core *core); 235df317c8SVikash Garodia int venus_set_hw_state(struct venus_core *core, bool suspend); 245df317c8SVikash Garodia 255df317c8SVikash Garodia static inline int venus_set_hw_state_suspend(struct venus_core *core) 265df317c8SVikash Garodia { 275df317c8SVikash Garodia return venus_set_hw_state(core, false); 285df317c8SVikash Garodia } 295df317c8SVikash Garodia 305df317c8SVikash Garodia static inline int venus_set_hw_state_resume(struct venus_core *core) 315df317c8SVikash Garodia { 325df317c8SVikash Garodia return venus_set_hw_state(core, true); 335df317c8SVikash Garodia } 34af2c3834SStanimir Varbanov 35af2c3834SStanimir Varbanov #endif 36