blob: 6f5ab53ce83b187a89af8eda8a18fb169dfc6b18 [file] [log] [blame]
Christina Quast637ace92014-11-28 13:28:37 +01001/* ----------------------------------------------------------------------------
2 * ATMEL Microcontroller Software Support
3 * ----------------------------------------------------------------------------
4 * Copyright (c) 2009, Atmel Corporation
5 *
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are met:
10 *
11 * - Redistributions of source code must retain the above copyright notice,
12 * this list of conditions and the disclaimer below.
13 *
14 * Atmel's name may not be used to endorse or promote products derived from
15 * this software without specific prior written permission.
16 *
17 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 * ----------------------------------------------------------------------------
28 */
29
30#ifndef _TWID_
31#define _TWID_
32
33/*----------------------------------------------------------------------------
34 * Headers
35 *----------------------------------------------------------------------------*/
36
37#include "chip.h"
38
39#include <stdint.h>
40
41/*----------------------------------------------------------------------------
42 * Definition
43 *----------------------------------------------------------------------------*/
44
45/** TWI driver is currently busy. */
46#define TWID_ERROR_BUSY 1
47
48#ifdef __cplusplus
49 extern "C" {
50#endif
51
52/*----------------------------------------------------------------------------
53 * Types
54 *----------------------------------------------------------------------------*/
55
56/** \brief TWI driver structure. Holds the internal state of the driver.*/
57typedef struct _Twid
58{
59 /** Pointer to the underlying TWI peripheral.*/
60 Twi *pTwi ;
61 /** Current asynchronous transfer being processed.*/
62 Async *pTransfer ;
63} Twid;
64
65/*----------------------------------------------------------------------------
66 * Export functions
67 *----------------------------------------------------------------------------*/
68extern void TWID_Initialize( Twid *pTwid, Twi *pTwi ) ;
69
70extern void TWID_Handler( Twid *pTwid ) ;
71
72extern uint8_t TWID_Read(
73 Twid *pTwid,
74 uint8_t address,
75 uint32_t iaddress,
76 uint8_t isize,
77 uint8_t *pData,
78 uint32_t num,
79 Async *pAsync);
80
81extern uint8_t TWID_Write(
82 Twid *pTwid,
83 uint8_t address,
84 uint32_t iaddress,
85 uint8_t isize,
86 uint8_t *pData,
87 uint32_t num,
88 Async *pAsync);
89
90#ifdef __cplusplus
91}
92#endif
93
94#endif //#ifndef TWID_H
95