mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-08 05:43:21 +09:00
![Tom Rini](/assets/img/avatar_default.png)
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
70 lines
1.7 KiB
C
70 lines
1.7 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2012 SAMSUNG Electronics
|
|
* Jaehoon Chung <jh80.chung@samsung.com>
|
|
*/
|
|
|
|
#ifndef __ASM_ARCH_I2C_H
|
|
#define __ASM_ARCH_I2C_H
|
|
|
|
struct i2c_regs {
|
|
u32 con;
|
|
u32 clkdiv;
|
|
u32 mrxaddr;
|
|
u32 mrxraddr;
|
|
u32 mtxcnt;
|
|
u32 mrxcnt;
|
|
u32 ien;
|
|
u32 ipd;
|
|
u32 fcnt;
|
|
u32 reserved0[0x37];
|
|
u32 txdata[8];
|
|
u32 reserved1[0x38];
|
|
u32 rxdata[8];
|
|
};
|
|
|
|
/* Control register */
|
|
#define I2C_CON_EN (1 << 0)
|
|
#define I2C_CON_MOD(mod) ((mod) << 1)
|
|
#define I2C_MODE_TX 0x00
|
|
#define I2C_MODE_TRX 0x01
|
|
#define I2C_MODE_RX 0x02
|
|
#define I2C_MODE_RRX 0x03
|
|
#define I2C_CON_MASK (3 << 1)
|
|
|
|
#define I2C_CON_START (1 << 3)
|
|
#define I2C_CON_STOP (1 << 4)
|
|
#define I2C_CON_LASTACK (1 << 5)
|
|
#define I2C_CON_ACTACK (1 << 6)
|
|
|
|
/* Clock dividor register */
|
|
#define I2C_CLKDIV_VAL(divl, divh) \
|
|
(((divl) & 0xffff) | (((divh) << 16) & 0xffff0000))
|
|
|
|
/* the slave address accessed for master rx mode */
|
|
#define I2C_MRXADDR_SET(vld, addr) (((vld) << 24) | (addr))
|
|
|
|
/* the slave register address accessed for master rx mode */
|
|
#define I2C_MRXRADDR_SET(vld, raddr) (((vld) << 24) | (raddr))
|
|
|
|
/* interrupt enable register */
|
|
#define I2C_BTFIEN (1 << 0)
|
|
#define I2C_BRFIEN (1 << 1)
|
|
#define I2C_MBTFIEN (1 << 2)
|
|
#define I2C_MBRFIEN (1 << 3)
|
|
#define I2C_STARTIEN (1 << 4)
|
|
#define I2C_STOPIEN (1 << 5)
|
|
#define I2C_NAKRCVIEN (1 << 6)
|
|
|
|
/* interrupt pending register */
|
|
#define I2C_BTFIPD (1 << 0)
|
|
#define I2C_BRFIPD (1 << 1)
|
|
#define I2C_MBTFIPD (1 << 2)
|
|
#define I2C_MBRFIPD (1 << 3)
|
|
#define I2C_STARTIPD (1 << 4)
|
|
#define I2C_STOPIPD (1 << 5)
|
|
#define I2C_NAKRCVIPD (1 << 6)
|
|
#define I2C_IPD_ALL_CLEAN 0x7f
|
|
|
|
#endif
|