/*******************************************************************************
 * DISCLAIMER
 * This software is supplied by Renesas Electronics Corporation and is only
 * intended for use with Renesas products. No other uses are authorized. This
 * software is owned by Renesas Electronics Corporation and is protected under
 * all applicable laws, including copyright laws.
 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 * Renesas reserves the right, without notice, to make changes to this software
 * and to discontinue the availability of this software. By using this software,
 * you agree to the additional terms and conditions found by accessing the
 * following link:
 * http://www.renesas.com/disclaimer
 * Copyright 2024 Renesas Electronics Corporation All rights reserved.
 *******************************************************************************/

/*******************************************************************************
 * DESCRIPTION   : I2C driver header
 ******************************************************************************/

#ifndef I2C_DRIVER_H__
#define I2C_DRIVER_H__

#define FLG_RW      (0x00000001U)

#define I2C_OK      (0x00000000U)
#define I2C_NG      (0x00000001U)

#define SET_SCGD    (0x00000018U)
#define SET_CDF     (0x00000007U)

#define FLAG_MDBS   (0x00000080U)
#define FLAG_FSCL   (0x00000040U)
#define FLAG_FSDA   (0x00000020U)
#define FLAG_MIE    (0x00000008U)
#define FLAG_FSB    (0x00000002U)
#define FLAG_ESG    (0x00000001U)

#define FLAG_MNR    (0x00000040U)
#define FLAG_MAL    (0x00000020U)
#define FLAG_MST    (0x00000010U)
#define FLAG_MDE    (0x00000008U)
#define FLAG_MDT    (0x00000004U)
#define FLAG_MDR    (0x00000002U)
#define FLAG_MAT    (0x00000001U)

#define FLAG_NONE   (0U)

#define ERR_MAX     (1U)

void i2c3_init(void);
void i2c3_write(uint32_t slaveAdd, uint32_t regAdd, uint32_t setData);
void i2c3_read(uint32_t slaveAdd, uint32_t regAdd, uint32_t *revData);
uint32_t i2c3_err_check(uint32_t first, uint32_t second, uint32_t error);
void i2c3_release(void);

#endif  /* I2C_DRIVER_H__ */

