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