]> cvs.zerfleddert.de Git - proxmark3-svn/blame_incremental - armsrc/i2c.c
Update CHANGELOG.md
[proxmark3-svn] / armsrc / i2c.c
... / ...
CommitLineData
1//-----------------------------------------------------------------------------
2// Willok, June 2018
3// Edits by Iceman, July 2018
4//
5// This code is licensed to you under the terms of the GNU GPL, version 2 or,
6// at your option, any later version. See the LICENSE.txt file for the text of
7// the license.
8//-----------------------------------------------------------------------------
9// The main i2c code, for communications with smart card module
10//-----------------------------------------------------------------------------
11
12#include "i2c.h"
13
14#include <stdint.h>
15#include <stdbool.h>
16#include "string.h" //for memset memcmp
17#include "proxmark3.h"
18#include "mifareutil.h" // for MF_DBGLEVEL
19#include "BigBuf.h"
20#include "apps.h"
21
22#ifdef WITH_SMARTCARD
23#include "smartcard.h"
24#endif
25
26
27#define GPIO_RST AT91C_PIO_PA1
28#define GPIO_SCL AT91C_PIO_PA5
29#define GPIO_SDA AT91C_PIO_PA7
30
31#define SCL_H HIGH(GPIO_SCL)
32#define SCL_L LOW(GPIO_SCL)
33#define SDA_H HIGH(GPIO_SDA)
34#define SDA_L LOW(GPIO_SDA)
35
36#define SCL_read (AT91C_BASE_PIOA->PIO_PDSR & GPIO_SCL)
37#define SDA_read (AT91C_BASE_PIOA->PIO_PDSR & GPIO_SDA)
38
39#define I2C_ERROR "I2C_WaitAck Error"
40
41static volatile unsigned long c;
42
43