/* SPDX-License-Identifier: GPL-2.0 */ /* * Support for Intel Camera Imaging ISP subsystem. * Copyright (c) 2010 - 2015, Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #ifndef __IA_CSS_SPCTRL_H__ #define __IA_CSS_SPCTRL_H__ #include <system_global.h> #include <ia_css_err.h> #include "ia_css_spctrl_comm.h" typedef struct { u32 ddr_data_offset; /** posistion of data in DDR */ u32 dmem_data_addr; /** data segment address in dmem */ u32 dmem_bss_addr; /** bss segment address in dmem */ u32 data_size; /** data segment size */ u32 bss_size; /** bss segment size */ u32 spctrl_config_dmem_addr; /* <location of dmem_cfg in SP dmem */ u32 spctrl_state_dmem_addr; /* < location of state in SP dmem */ unsigned int sp_entry; /* < entry function ptr on SP */ const void *code; /** location of firmware */ u32 code_size; char *program_name; /** not used on hardware, only for simulation */ } ia_css_spctrl_cfg; /* Get the code addr in DDR of SP */ ia_css_ptr get_sp_code_addr(sp_ID_t sp_id); /* ! Load firmware on to specfied SP */ int ia_css_spctrl_load_fw(sp_ID_t sp_id, ia_css_spctrl_cfg *spctrl_cfg); /* ISP2401 */ /*! Setup registers for reloading FW */ void sh_css_spctrl_reload_fw(sp_ID_t sp_id); /*! Unload/release any memory allocated to hold the firmware */ int ia_css_spctrl_unload_fw(sp_ID_t sp_id); /*! Intilaize dmem_cfg in SP dmem and start SP program */ int ia_css_spctrl_start(sp_ID_t sp_id); /*! stop spctrl */ int ia_css_spctrl_stop(sp_ID_t sp_id); /*! Query the state of SP */ ia_css_spctrl_sp_sw_state ia_css_spctrl_get_state(sp_ID_t sp_id); /*! Check if SP is idle/ready */ int ia_css_spctrl_is_idle(sp_ID_t sp_id); #endif /* __IA_CSS_SPCTRL_H__ */