pinebuds/platform/hal/reg_slave_i2c.h
2022-08-15 17:20:27 +08:00

48 lines
1.9 KiB
C

/***************************************************************************
*
* Copyright 2015-2020 BES.
* All rights reserved. All unpublished rights reserved.
*
* No part of this work may be used or reproduced in any form or by any
* means, or stored in a database or retrieval system, without prior written
* permission of BES.
*
* Use of this work is governed by a license granted by BES.
* This work contains confidential and proprietary information of
* BES. which is protected by copyright, trade secret,
* trademark and other intellectual property rights.
*
****************************************************************************/
#ifndef __REG_SLAVE_I2C_H__
#define __REG_SLAVE_I2C_H__
#include "plat_types.h"
struct SLAVE_I2C_T {
__IO uint32_t EN; // 0x000
__IO uint32_t ID; // 0x004
__IO uint32_t SMP; // 0x008
__IO uint32_t RESERVED_00C[5]; // 0x00C
__IO uint32_t TBP; // 0x020
};
#define I2C_EN (1 << 0)
#define W_FILTERLEN_SHIFT 7
#define W_FILTERLEN_MASK (0xFF << W_FILTERLEN_SHIFT)
#define W_FILTERLEN(n) BITFIELD_VAL(W_FILTERLEN, n)
#define R_FILTERLEN_SHIFT 8
#define R_FILTERLEN_MASK (0xFF << R_FILTERLEN_SHIFT)
#define R_FILTERLEN(n) BITFIELD_VAL(R_FILTERLEN, n)
#define DEV_ID_SHIFT 0
#define DEV_ID_MASK (0xFF << DEV_ID_SHIFT)
#define DEV_ID(n) BITFIELD_VAL(DEV_ID, n)
#define SMP_I2C_SEL_SHIFT 0
#define SMP_I2C_SEL_MASK (0xF << SMP_I2C_SEL_SHIFT)
#define SMP_I2C_SEL(n) BITFIELD_VAL(SMP_I2C_SEL, n)
#define TIMEOUT_BYPASS (1 << 0)
#endif