1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __HISAX_ISAC_H__
3 #define __HISAX_ISAC_H__
4 
5 #include <linux/kernel.h>
6 #include "fsm.h"
7 #include "hisax_if.h"
8 
9 #define TIMER3_VALUE 7000
10 #define MAX_DFRAME_LEN_L1 300
11 
12 #define ISAC_IOM1	0
13 
14 struct isac {
15 	void *priv;
16 
17 	u_long flags;
18 	struct hisax_d_if hisax_d_if;
19 	struct FsmInst l1m;
20 	struct FsmTimer timer;
21 	u_char mocr;
22 	u_char adf2;
23 	int    type;
24 
25 	u_char rcvbuf[MAX_DFRAME_LEN_L1];
26 	int rcvidx;
27 
28 	struct sk_buff *tx_skb;
29 	int tx_cnt;
30 
31 	u_char (*read_isac)      (struct isac *, u_char);
32 	void   (*write_isac)     (struct isac *, u_char, u_char);
33 	void   (*read_isac_fifo) (struct isac *, u_char *, int);
34 	void   (*write_isac_fifo)(struct isac *, u_char *, int);
35 };
36 
37 void isac_init(struct isac *isac);
38 void isac_d_l2l1(struct hisax_if *hisax_d_if, int pr, void *arg);
39 
40 void isac_setup(struct isac *isac);
41 void isac_irq(struct isac *isac);
42 
43 void isacsx_setup(struct isac *isac);
44 void isacsx_irq(struct isac *isac);
45 
46 #endif
47