MERGE-master-patchset-edits
[linux-2.6/openmoko-kernel.git] / arch / m68knommu / include / asm / quicc_simple.h
blobc3636932d4bc9093a8be79a7b55b79028560be00
1 /***********************************
2 * $Id: quicc_simple.h,v 1.1 2002/03/02 15:01:10 gerg Exp $
3 ***********************************
5 ***************************************
6 * Simple drivers common header
7 ***************************************
8 */
10 #ifndef __SIMPLE_H
11 #define __SIMPLE_H
13 /* #include "quicc.h" */
15 #define GLB_SCC_0 0
16 #define GLB_SCC_1 1
17 #define GLB_SCC_2 2
18 #define GLB_SCC_3 3
20 typedef void (int_routine)(unsigned short interrupt_event);
21 typedef int_routine *int_routine_ptr;
22 typedef void *(alloc_routine)(int length);
23 typedef void (free_routine)(int scc_num, int channel_num, void *buf);
24 typedef void (store_rx_buffer_routine)(int scc_num, int channel_num, void *buff, int length);
25 typedef int (handle_tx_error_routine)(int scc_num, int channel_num, QUICC_BD *tbd);
26 typedef void (handle_rx_error_routine)(int scc_num, int channel_num, QUICC_BD *rbd);
27 typedef void (handle_lost_error_routine)(int scc_num, int channel_num);
29 /* user defined functions for global errors */
30 typedef void (handle_glob_overrun_routine)(int scc_number);
31 typedef void (handle_glob_underrun_routine)(int scc_number);
32 typedef void (glob_intr_q_overflow_routine)(int scc_number);
35 * General initialization and command routines
37 void quicc_issue_cmd (unsigned short cmd, int scc_num);
38 void quicc_init(void);
39 void quicc_scc_init(int scc_number, int number_of_rx_buf, int number_of_tx_buf);
40 void quicc_smc_init(int smc_number, int number_of_rx_buf, int number_of_tx_buf);
41 void quicc_scc_start(int scc_num);
42 void quicc_scc_loopback(int scc_num);
44 /* Interrupt enable/disable routines for critical pieces of code*/
45 unsigned short IntrDis(void);
46 void IntrEna(unsigned short old_sr);
48 /* For debugging */
49 void print_rbd(int scc_num);
50 void print_tbd(int scc_num);
52 #endif