18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Aic94xx SAS/SATA driver sequencer interface header file. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2005 Adaptec, Inc. All rights reserved. 68c2ecf20Sopenharmony_ci * Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com> 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#ifndef _AIC94XX_SEQ_H_ 108c2ecf20Sopenharmony_ci#define _AIC94XX_SEQ_H_ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#define CSEQ_NUM_VECS 3 138c2ecf20Sopenharmony_ci#define LSEQ_NUM_VECS 11 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#define SAS_RAZOR_SEQUENCER_FW_FILE "aic94xx-seq.fw" 168c2ecf20Sopenharmony_ci#define SAS_RAZOR_SEQUENCER_FW_MAJOR 1 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci/* Note: All quantites in the sequencer file are little endian */ 198c2ecf20Sopenharmony_cistruct sequencer_file_header { 208c2ecf20Sopenharmony_ci /* Checksum of the entire contents of the sequencer excluding 218c2ecf20Sopenharmony_ci * these four bytes */ 228c2ecf20Sopenharmony_ci u32 csum; 238c2ecf20Sopenharmony_ci /* numeric major version */ 248c2ecf20Sopenharmony_ci u32 major; 258c2ecf20Sopenharmony_ci /* numeric minor version */ 268c2ecf20Sopenharmony_ci u32 minor; 278c2ecf20Sopenharmony_ci /* version string printed by driver */ 288c2ecf20Sopenharmony_ci char version[16]; 298c2ecf20Sopenharmony_ci u32 cseq_table_offset; 308c2ecf20Sopenharmony_ci u32 cseq_table_size; 318c2ecf20Sopenharmony_ci u32 lseq_table_offset; 328c2ecf20Sopenharmony_ci u32 lseq_table_size; 338c2ecf20Sopenharmony_ci u32 cseq_code_offset; 348c2ecf20Sopenharmony_ci u32 cseq_code_size; 358c2ecf20Sopenharmony_ci u32 lseq_code_offset; 368c2ecf20Sopenharmony_ci u32 lseq_code_size; 378c2ecf20Sopenharmony_ci u16 mode2_task; 388c2ecf20Sopenharmony_ci u16 cseq_idle_loop; 398c2ecf20Sopenharmony_ci u16 lseq_idle_loop; 408c2ecf20Sopenharmony_ci} __attribute__((packed)); 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci#ifdef __KERNEL__ 438c2ecf20Sopenharmony_ciint asd_init_seqs(struct asd_ha_struct *asd_ha); 448c2ecf20Sopenharmony_ciint asd_start_seqs(struct asd_ha_struct *asd_ha); 458c2ecf20Sopenharmony_ciint asd_release_firmware(void); 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_civoid asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy); 488c2ecf20Sopenharmony_ci#endif 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci#endif 51