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