11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef __HISAX_ISAC_H__
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define __HISAX_ISAC_H__
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/kernel.h>
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include "fsm.h"
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include "hisax_if.h"
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TIMER3_VALUE 7000
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MAX_DFRAME_LEN_L1 300
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISAC_IOM1	0
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct isac {
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	void *priv;
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u_long flags;
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct hisax_d_if hisax_d_if;
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct FsmInst l1m;
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct FsmTimer timer;
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u_char mocr;
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u_char adf2;
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int    type;
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u_char rcvbuf[MAX_DFRAME_LEN_L1];
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int rcvidx;
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct sk_buff *tx_skb;
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int tx_cnt;
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u_char (*read_isac)      (struct isac *, u_char);
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	void   (*write_isac)     (struct isac *, u_char, u_char);
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	void   (*read_isac_fifo) (struct isac *, u_char *, int);
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	void   (*write_isac_fifo)(struct isac *, u_char *, int);
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid isac_init(struct isac *isac);
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid isac_d_l2l1(struct hisax_if *hisax_d_if, int pr, void *arg);
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid isac_setup(struct isac *isac);
401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid isac_irq(struct isac *isac);
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid isacsx_setup(struct isac *isac);
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid isacsx_irq(struct isac *isac);
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
46