]> rtime.felk.cvut.cz Git - sysless.git/blob - arch/h8300/mach-2638/drivers/sci0.c
Sizes of RS232 buffers can be specified by applications.
[sysless.git] / arch / h8300 / mach-2638 / drivers / sci0.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_0(void) __attribute__ ((interrupt_handler));
8 void sci_rs232_rxi_isr_0(void) __attribute__ ((interrupt_handler));
9 void sci_rs232_txi_isr_0(void) __attribute__ ((interrupt_handler));
10 void sci_rs232_tei_isr_0(void) __attribute__ ((interrupt_handler));
11
12 void sci_rs232_eri_isr_0() { sci_rs232_eri_isr(&sci_rs232_chan0); }
13 void sci_rs232_rxi_isr_0() { sci_rs232_rxi_isr(&sci_rs232_chan0); }
14 void sci_rs232_txi_isr_0() { sci_rs232_txi_isr(&sci_rs232_chan0); }
15 void sci_rs232_tei_isr_0() { sci_rs232_tei_isr(&sci_rs232_chan0); }
16
17 int sci_rs232_rxd_pin_0() { return (*DIO_PORT3)&(1<<1); }
18
19 DECLARE_SCI_BUFS(0)
20
21 void sci_rs232_init_0() 
22
23   sci_rs232_chan0.sci_rs232_buf_in       = sci_rs232_buf_in_0;
24   sci_rs232_chan0.sci_rs232_buf_in_size  = sci_rs232_buf_in_0_size;
25   sci_rs232_chan0.sci_rs232_buf_out      = sci_rs232_buf_out_0;
26   sci_rs232_chan0.sci_rs232_buf_out_size = sci_rs232_buf_out_0_size;
27
28   *SYS_MSTPCRB&=~MSTPCRB_SCI0m; 
29
30   excptvec_set(EXCPTVEC_ERI0, sci_rs232_eri_isr_0);
31   excptvec_set(EXCPTVEC_RXI0, sci_rs232_rxi_isr_0);
32   excptvec_set(EXCPTVEC_TXI0, sci_rs232_txi_isr_0);
33   excptvec_set(EXCPTVEC_TEI0, sci_rs232_tei_isr_0);
34 }
35
36 sci_info_t sci_rs232_chan0 = {
37   .regs = (struct sci_regs *)SCI_SMR0,
38   .sci_rs232_baud = 9600,
39   .sci_rs232_mode = SCI_SMR_8N1,
40   .sci_rs232_flowc = 0,
41   .sci_rs232_init = sci_rs232_init_0,
42   .sci_rs232_rxd_pin = sci_rs232_rxd_pin_0,
43 };
44     
45
46 /* Local variables: */
47 /* c-basic-offset:2 */
48 /* End: */