#ifndef __MULTICORE_I2C_H__ #define __MULTICORE_I2C_H__ /* * Смещения регистров I2C */ #define RG_PRER 0x00 /* Предделитель частоты */ #define RG_CTR 0x04 /* Управление */ #define RG_TXR 0x08 /* Передача данных */ #define RG_RXR 0x0C /* Прием данных */ #define RG_CR 0x10 /* Команды */ #define RG_SR 0x14 /* Состояние */ #define RG_PR_CNT 0x18 /* Счетчик предделителя частоты */ #define RG_SYNC 0x1C /* Регистр синхронизации */ /* * CTR - регистр управления */ #define F_IEN (1 << 6) #define F_EN (1 << 7) #define F_PRST (1 << 8) #define F_TM_CNT (1 << 9) #define F_TICK (1 << 10) /* * CR - регистр команд */ #define F_IACK (1 << 0) #define F_NACK (1 << 3) #define F_SND (1 << 4) #define F_RCV (1 << 5) #define F_STO (1 << 6) #define F_STA (1 << 7) /* * SR - регистр состояния */ #define F_IF (1 << 0) #define F_TIP (1 << 1) #define F_AL (1 << 5) #define F_BUSY (1 << 6) #define F_RX_NACK (1 << 7) /* * SYNC - регистр синхронизации */ #define F_WAIT_PER(x) ((x) & 0xFFFF) #define F_SYNC_EN (1 << 16) #endif