xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-lpc32xx/i2c.h (revision 234d12985ae1a5d878de6445187ec0b888772511)
1*fb057880SLiam Beguin #ifndef _LPC32XX_I2C_H
2*fb057880SLiam Beguin #define _LPC32XX_I2C_H
3*fb057880SLiam Beguin 
4*fb057880SLiam Beguin #include <common.h>
5*fb057880SLiam Beguin #include <asm/types.h>
6*fb057880SLiam Beguin 
7*fb057880SLiam Beguin /* i2c register set */
8*fb057880SLiam Beguin struct lpc32xx_i2c_base {
9*fb057880SLiam Beguin 	union {
10*fb057880SLiam Beguin 		u32 rx;
11*fb057880SLiam Beguin 		u32 tx;
12*fb057880SLiam Beguin 	};
13*fb057880SLiam Beguin 	u32 stat;
14*fb057880SLiam Beguin 	u32 ctrl;
15*fb057880SLiam Beguin 	u32 clk_hi;
16*fb057880SLiam Beguin 	u32 clk_lo;
17*fb057880SLiam Beguin 	u32 adr;
18*fb057880SLiam Beguin 	u32 rxfl;
19*fb057880SLiam Beguin 	u32 txfl;
20*fb057880SLiam Beguin 	u32 rxb;
21*fb057880SLiam Beguin 	u32 txb;
22*fb057880SLiam Beguin 	u32 stx;
23*fb057880SLiam Beguin 	u32 stxfl;
24*fb057880SLiam Beguin };
25*fb057880SLiam Beguin 
26*fb057880SLiam Beguin #ifdef CONFIG_DM_I2C
27*fb057880SLiam Beguin enum {
28*fb057880SLiam Beguin 	I2C_0, I2C_1, I2C_2,
29*fb057880SLiam Beguin };
30*fb057880SLiam Beguin 
31*fb057880SLiam Beguin struct lpc32xx_i2c_dev {
32*fb057880SLiam Beguin 	struct lpc32xx_i2c_base *base;
33*fb057880SLiam Beguin 	int index;
34*fb057880SLiam Beguin 	uint speed;
35*fb057880SLiam Beguin };
36*fb057880SLiam Beguin #endif /* CONFIG_DM_I2C */
37*fb057880SLiam Beguin #endif /* _LPC32XX_I2C_H */
38