blob: 5560654545f659b256cb38751e652714574bf05b [file] [log] [blame]
/****************************************************************************
* arch/arm/src/mx8mp/hardware/mx8mp_i2c.h
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __ARCH_ARM_SRC_MX8MP_HARDWARE_MX8MP_I2C_H
#define __ARCH_ARM_SRC_MX8MP_HARDWARE_MX8MP_I2C_H
/****************************************************************************
* Included Files
****************************************************************************/
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* I2C Register Offsets *****************************************************/
#define IADR_OFFSET 0x0000
#define IFDR_OFFSET 0x0004
#define I2CR_OFFSET 0x0008
#define I2SR_OFFSET 0x000c
#define I2DR_OFFSET 0x0010
/* I2C Register Bit Definitions *********************************************/
#define IADR_SHIFT 1
#define IADR_MASK (0x7f << IADR_SHIFT)
#define IFDR_SHIFT 0
#define IFDR_MASK (0x3f << IFDR_SHIFT)
#define I2CR_IEN (1 << 7) /* enable */
#define I2CR_IIEN (1 << 6) /* interrupt enable */
#define I2CR_MSTA (1 << 5) /* master/start */
#define I2CR_MTX (1 << 4) /* transmit */
#define I2CR_TXAK (1 << 3) /* ACK/NACK on reception */
#define I2CR_RSTA (1 << 2) /* repeated start */
#define I2SR_ICF (1 << 7) /* transfer in progress */
#define I2SR_IAAS (1 << 6) /* addressed as a slave */
#define I2SR_IBB (1 << 5) /* is busy */
#define I2SR_IAL (1 << 4) /* arbitration lost */
#define I2SR_SRW (1 << 2) /* slave read/write (if in slave mode) */
#define I2SR_IIF (1 << 1) /* interrupt is pending */
#define I2SR_RXAK (1 << 0) /* no ack detected */
/****************************************************************************
* Inline Functions
****************************************************************************/
#endif /* __ARCH_ARM_SRC_MX8MP_HARDWARE_MX8MP_I2C_H */