blob: 61484927413ca461c945c90848629da92092f6e5 [file] [log] [blame]
Harald Welteda02f552012-01-14 18:18:31 +01001#ifndef _IDT82_H
2#define _IDT82_H
3
4enum idt82_term {
5 IDT_TERM_INT_75 = 0
6 IDT_TERM_INT_120,
7 IDT_TERM_INT_100,
8 IDT_TERM_INT_110,
9 IDT_TERM_EXT,
10};
11
12enum idt82_mode {
13 IDT_MODE_E1 = 0,
14 IDT_MODE_T1,
15 IDT_MODE_J1,
16};
17
18struct idt82 {
19 enum idt82_mode mode;
20 enum idt82_term term;
Harald Welte605e3e42012-03-06 23:15:42 +010021 void *priv;
22 uint8_t cs;
Harald Welteda02f552012-01-14 18:18:31 +010023};
24
25int idt82_termination(struct idt82 *idt, enum idt82_term term);
26int idt82_mode(struct idt82 *idt, enum idt82_mode mode);
27int idt82_get_errcount(struct idt82 *idt);
28int idt82_get_line_att(struct idt82 *idt);
29int idt82_init(struct idt82 *idt);
30
31/* callbacks into transport */
32int idt82_reg_write(struct idt82 *idt, uint8_t reg, uin8_t val);
33int idt82_reg_read(struct idt82 *idt, uint8_t reg);
34
Harald Welte605e3e42012-03-06 23:15:42 +010035/* board specific initializers */
36int idt82_at91_init(struct idt82 *idt, void *spi, unsigned int id,
37 uint8_t cs, uint32_t spi_mr, uint32_t csr);
38
Harald Welteda02f552012-01-14 18:18:31 +010039#endif