OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [sw/] [drivers/] [i2c_master_slave/] [include/] [i2c_master_slave.h] - Blame information for rev 393

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 393 julius
/*************************************************************
2
 * I2C functions for Herveille i2c master_slave core         *
3
 *                                                           *
4
 * Provides functions to read from and write to the I2C bus. *
5
 * Master and slave mode are both supported                  *
6
 *                                                           *
7
 *                                                           *
8
 ************************************************************/
9
 
10
#ifndef _I2C_MASTER_SLAVE_H_
11
#define _I2C_MASTER_SLAVE_H_
12
 
13
extern const int i2c_base_adr[4];
14
//Memory mapping adresses
15
 
16
#define PRERlo 0x0  // Clock prescaler register 
17
#define PRERhi 0x1  // Clock prescaler register 
18
#define CTR    0x2     // Control register
19
#define TXR    0x3     // Transmit register
20
#define RXR    0x3     // Recive register
21
#define CR     0x4      // Controll register
22
#define SR     0x4      // Status register
23
#define SLADR  0x7      // Slave address register
24
 
25
 
26
#define CTR_CORE_ENABLE 0x80
27
#define CTR_INTR_ENABLE 0x40
28
#define CTR_SLAVE_ENABLE 0x20
29
 
30
#define CR_START        0x80
31
#define CR_STOP         0x40
32
#define CR_READ         0x20
33
#define CR_WRITE        0x10
34
#define CR_ACK          0x08
35
#define CR_SL_CONT      0x02
36
#define CR_IACK         0x01
37
 
38
#define SR_RXACK            0x80
39
#define SR_BUSY             0x40
40
#define SR_ARB_LOST         0x20
41
#define SR_SLAVE_MODE       0x10
42
#define SR_SLAVE_DATA_AVAIL 0x08
43
#define SR_SLAVE_DATA_REQ   0x04
44
#define SR_TRANSFER_IN_PRG  0x02
45
#define SR_IRQ_FLAG         0x01
46
 
47
 
48
int i2c_master_slave_initI2C(int core, unsigned short prescaler,
49
                             int interrupt_enable);
50
 
51
int i2c_master_slave_initI2CSlave (int core, char addr);
52
int i2c_master_slave_deactI2CSlave (int core);
53
int i2c_master_slave_masterStart(int core, unsigned char addr, int read);
54
int i2c_master_slave_masterWrite(int core, unsigned char data,
55
                                 int check_prev_ack, int stop);
56
int i2c_master_slave_masterStop(int core);
57
int i2c_master_slave_masterRead(int core, int check_prev_ack, int stop,
58
                                char* data);
59
int i2c_master_slave_ackInterrupt(int core);
60
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.