]> rtime.felk.cvut.cz Git - sysless.git/blob - arch/h8300/mach-2638/drivers/sci1.c
Sizes of RS232 buffers can be specified by applications.
[sysless.git] / arch / h8300 / mach-2638 / drivers / sci1.c
1 #include <periph/sci_rs232.h>
2 #include <periph/sci_channels.h>
3 #include <h8s2638h.h>
4 #include <cpu_def.h>
5 #include <periph/sci_rs232_bufs.h>
6
7 void sci_rs232_eri_isr_1(void) __attribute__ ((interrupt_handler));
8 void sci_rs232_rxi_isr_1(void) __attribute__ ((interrupt_handler));
9 void sci_rs232_txi_isr_1(void) __attribute__ ((interrupt_handler));
10 void sci_rs232_tei_isr_1(void) __attribute__ ((interrupt_handler));
11
12 void sci_rs232_eri_isr_1() { sci_rs232_eri_isr(&sci_rs232_chan1); }
13 void sci_rs232_rxi_isr_1() { sci_rs232_rxi_isr(&sci_rs232_chan1); }
14 void sci_rs232_txi_isr_1() { sci_rs232_txi_isr(&sci_rs232_chan1); }
15 void sci_rs232_tei_isr_1() { sci_rs232_tei_isr(&sci_rs232_chan1); }
16
17 int sci_rs232_rxd_pin_1() { return (*DIO_PORT3)&(1<<2); }
18
19 DECLARE_SCI_BUFS(1)
20
21 void sci_rs232_init_1() 
22
23   sci_rs232_chan1.sci_rs232_buf_in       = sci_rs232_buf_in_1;
24   sci_rs232_chan1.sci_rs232_buf_in_size  = sci_rs232_buf_in_1_size;
25   sci_rs232_chan1.sci_rs232_buf_out      = sci_rs232_buf_out_1;
26   sci_rs232_chan1.sci_rs232_buf_out_size = sci_rs232_buf_out_1_size;
27
28   *SYS_MSTPCRB&=~MSTPCRB_SCI1m;
29   
30   excptvec_set(EXCPTVEC_ERI1, sci_rs232_eri_isr_1);
31   excptvec_set(EXCPTVEC_RXI1, sci_rs232_rxi_isr_1);
32   excptvec_set(EXCPTVEC_TXI1, sci_rs232_txi_isr_1);
33   excptvec_set(EXCPTVEC_TEI1, sci_rs232_tei_isr_1);
34     
35 }
36
37 sci_info_t sci_rs232_chan1 = {
38   .regs = (struct sci_regs *)SCI_SMR1,
39   .sci_rs232_baud = 9600,
40   .sci_rs232_mode = SCI_SMR_8N1,
41   .sci_rs232_flowc = 0,
42   .sci_rs232_init = sci_rs232_init_1,
43   .sci_rs232_rxd_pin = sci_rs232_rxd_pin_1
44 };
45     
46
47 /* Local variables: */
48 /* c-basic-offset:2 */
49 /* End: */