162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * driver for Microchip PQI-based storage controllers 462306a36Sopenharmony_ci * Copyright (c) 2019-2023 Microchip Technology Inc. and its subsidiaries 562306a36Sopenharmony_ci * Copyright (c) 2016-2018 Microsemi Corporation 662306a36Sopenharmony_ci * Copyright (c) 2016 PMC-Sierra, Inc. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * Questions/Comments/Bugfixes to storagedev@microchip.com 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#if !defined(_SMARTPQI_SIS_H) 1362306a36Sopenharmony_ci#define _SMARTPQI_SIS_H 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_civoid sis_verify_structures(void); 1662306a36Sopenharmony_ciint sis_wait_for_ctrl_ready(struct pqi_ctrl_info *ctrl_info); 1762306a36Sopenharmony_ciint sis_wait_for_ctrl_ready_resume(struct pqi_ctrl_info *ctrl_info); 1862306a36Sopenharmony_cibool sis_is_firmware_running(struct pqi_ctrl_info *ctrl_info); 1962306a36Sopenharmony_cibool sis_is_kernel_up(struct pqi_ctrl_info *ctrl_info); 2062306a36Sopenharmony_ciint sis_get_ctrl_properties(struct pqi_ctrl_info *ctrl_info); 2162306a36Sopenharmony_ciint sis_get_pqi_capabilities(struct pqi_ctrl_info *ctrl_info); 2262306a36Sopenharmony_ciint sis_init_base_struct_addr(struct pqi_ctrl_info *ctrl_info); 2362306a36Sopenharmony_civoid sis_enable_msix(struct pqi_ctrl_info *ctrl_info); 2462306a36Sopenharmony_civoid sis_enable_intx(struct pqi_ctrl_info *ctrl_info); 2562306a36Sopenharmony_civoid sis_shutdown_ctrl(struct pqi_ctrl_info *ctrl_info, 2662306a36Sopenharmony_ci enum pqi_ctrl_shutdown_reason ctrl_shutdown_reason); 2762306a36Sopenharmony_ciint sis_pqi_reset_quiesce(struct pqi_ctrl_info *ctrl_info); 2862306a36Sopenharmony_ciint sis_reenable_sis_mode(struct pqi_ctrl_info *ctrl_info); 2962306a36Sopenharmony_civoid sis_write_driver_scratch(struct pqi_ctrl_info *ctrl_info, u32 value); 3062306a36Sopenharmony_ciu32 sis_read_driver_scratch(struct pqi_ctrl_info *ctrl_info); 3162306a36Sopenharmony_civoid sis_soft_reset(struct pqi_ctrl_info *ctrl_info); 3262306a36Sopenharmony_ciu32 sis_get_product_id(struct pqi_ctrl_info *ctrl_info); 3362306a36Sopenharmony_ciint sis_wait_for_fw_triage_completion(struct pqi_ctrl_info *ctrl_info); 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciextern unsigned int sis_ctrl_ready_timeout_secs; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci#endif /* _SMARTPQI_SIS_H */ 38