2 * Copyright (C) Marvell International Ltd. and its affiliates
4 * SPDX-License-Identifier: GPL-2.0
11 #define DEFAULT_PARAM 0
12 #define MV_BOARD_TCLK_ERROR 0xffffffff
14 #define NO_DATA 0xffffffff
15 #define MAX_DATA_ARRAY 5
25 /* Operation parameters */
30 u32 data[MAX_DATA_ARRAY]; /* data array */
31 u8 wait_time; /* msec */
32 u16 num_of_loops; /* for polling only */
36 * Sequence parameters. Each sequence contains:
38 * 2. Sequence size (total amount of operations during the sequence)
39 * 3. a series of operations. operations can be write, poll or delay
40 * 4. index in the data array (the entry where the relevant data sits)
43 struct op_params *op_params_ptr;
48 extern struct cfg_seq serdes_seq_db[];
51 * A generic function type for executing an operation (write, poll or delay)
53 typedef int (*op_execute_func_ptr)(u32 serdes_num, struct op_params *params,
56 /* Specific functions for executing each operation */
57 int write_op_execute(u32 serdes_num, struct op_params *params,
59 int delay_op_execute(u32 serdes_num, struct op_params *params,
61 int poll_op_execute(u32 serdes_num, struct op_params *params, u32 data_arr_idx);
62 enum mv_op get_cfg_seq_op(struct op_params *params);
63 int mv_seq_exec(u32 serdes_num, u32 seq_id);
65 #endif /*_SEQ_EXEC_H*/