]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/Common/drivers/Atmel/at91lib/peripherals/ac97c/ac97c.h
Add FreeRTOS-Plus directory.
[freertos] / FreeRTOS / Demo / Common / drivers / Atmel / at91lib / peripherals / ac97c / ac97c.h
1 /* ----------------------------------------------------------------------------\r
2  *         ATMEL Microcontroller Software Support \r
3  * ----------------------------------------------------------------------------\r
4  * Copyright (c) 2008, Atmel Corporation\r
5  *\r
6  * All rights reserved.\r
7  *\r
8  * Redistribution and use in source and binary forms, with or without\r
9  * modification, are permitted provided that the following conditions are met:\r
10  *\r
11  * - Redistributions of source code must retain the above copyright notice,\r
12  * this list of conditions and the disclaimer below.\r
13  *\r
14  * Atmel's name may not be used to endorse or promote products derived from\r
15  * this software without specific prior written permission.\r
16  *\r
17  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR\r
18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
20  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,\r
21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\r
23  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
24  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
25  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
26  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
27  * ----------------------------------------------------------------------------\r
28  */\r
29 \r
30 \r
31 #ifndef AC97C_H\r
32 #define AC97C_H\r
33 \r
34 //------------------------------------------------------------------------------\r
35 //         Constants\r
36 //------------------------------------------------------------------------------\r
37 \r
38 /// The channel is already busy with a transfer.\r
39 #define AC97C_ERROR_BUSY            1\r
40 /// The transfer has been stopped by the user.\r
41 #define AC97C_ERROR_STOPPED         2\r
42 \r
43 /// Codec channel index.\r
44 #define AC97C_CHANNEL_CODEC             0\r
45 /// Channel A index.\r
46 #define AC97C_CHANNEL_A             1\r
47 /// Channel B index.\r
48 #define AC97C_CHANNEL_B             2\r
49 \r
50 /// Codec transmit/receive transfer index.\r
51 #define AC97C_CODEC_TRANSFER        0\r
52 /// Channel A receive transfer index.\r
53 #define AC97C_CHANNEL_A_RECEIVE     1\r
54 /// Channel A transmit transfer index.\r
55 #define AC97C_CHANNEL_A_TRANSMIT    2\r
56 /// Channel B receive transfer index.\r
57 #define AC97C_CHANNEL_B_RECEIVE     3\r
58 /// Channel B transmit transfer index.\r
59 #define AC97C_CHANNEL_B_TRANSMIT    4\r
60 \r
61 //------------------------------------------------------------------------------\r
62 //         Types\r
63 //------------------------------------------------------------------------------\r
64 \r
65 /// AC97C transfer callback function.\r
66 typedef void (*Ac97Callback)(void *pArg,\r
67                              unsigned char status,\r
68                              unsigned int remaining);\r
69 \r
70 //------------------------------------------------------------------------------\r
71 //         Exported functions\r
72 //------------------------------------------------------------------------------\r
73 \r
74 extern void AC97C_Configure();\r
75 \r
76 extern void AC97C_ConfigureChannel(unsigned char channel, unsigned int cfg);\r
77 \r
78 extern void AC97C_AssignInputSlots(unsigned char channel, unsigned int slots);\r
79 \r
80 extern void AC97C_AssignOutputSlots(unsigned char channel, unsigned int slots);\r
81 \r
82 extern unsigned char AC97C_Transfer(\r
83                                 unsigned char channel,\r
84                                 unsigned char *pBuffer,\r
85                                 unsigned int numSamples,\r
86                                 Ac97Callback callback,\r
87                                 void *pArg);\r
88 \r
89 extern unsigned char AC97C_IsFinished(unsigned char channel);\r
90 \r
91 extern void AC97C_WriteCodec(unsigned char address, unsigned short data);\r
92 \r
93 extern unsigned short AC97C_ReadCodec(unsigned char address);\r
94 \r
95 extern void AC97C_SetChannelSize(unsigned char channel, unsigned char size);\r
96 \r
97 extern void AC97C_CancelTransfer(unsigned char channel);\r
98 \r
99 #endif //#ifndef AC97C_H\r
100 \r