coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
i2c.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 /*
4  * This file is created based on MT8186 Functional Specification
5  * Chapter number: 5.10
6  */
7 
8 #ifndef SOC_MEDIATEK_MT8186_I2C_H
9 #define SOC_MEDIATEK_MT8186_I2C_H
10 
11 #include <soc/i2c_common.h>
12 #include <soc/pll.h>
13 
14 /* I2C Register */
15 struct mt_i2c_regs {
28  uint32_t hs;
36  uint32_t reserved1[36];
42  uint32_t reserved3[932];
46 };
47 
48 /* I2C ID Number*/
49 enum {
60 };
61 
62 #define I2C_BUS_NUMBER 10
63 #define MAX_CLOCK_DIV 32
64 #define I2C_CLK_HZ (UNIV2PLL_HZ / 20)
65 
66 check_member(mt_i2c_regs, multi_dma, 0xf8c);
67 
69 
70 #endif /* SOC_MEDIATEK_MT8186_I2C_H */
check_member(mt_i2c_regs, debug_stat, 0x64)
void mtk_i2c_bus_init(uint8_t bus)
Definition: i2c.c:65
@ I2C7
Definition: i2c.h:57
@ I2C4
Definition: i2c.h:54
@ I2C5
Definition: i2c.h:55
@ I2C9
Definition: i2c.h:59
@ I2C8
Definition: i2c.h:58
@ I2C3
Definition: i2c.h:53
@ I2C0
Definition: i2c.h:50
@ I2C2
Definition: i2c.h:52
@ I2C1
Definition: i2c.h:51
@ I2C6
Definition: i2c.h:56
unsigned int uint32_t
Definition: stdint.h:14
unsigned char uint8_t
Definition: stdint.h:8
Definition: device.h:76
uint32_t hs
Definition: i2c.h:29
uint32_t time_out
Definition: i2c.h:29
uint32_t data_port
Definition: i2c.h:11
uint32_t softreset
Definition: i2c.h:31
uint32_t rollback
Definition: i2c.h:40
uint32_t slave_addr
Definition: i2c.h:12
uint32_t control
Definition: i2c.h:15
uint32_t transfer_len
Definition: i2c.h:16
uint32_t transac_len
Definition: i2c.h:17
uint32_t clock_div
Definition: i2c.h:28
uint32_t delay_len
Definition: i2c.h:18
uint32_t multi_dma
Definition: i2c.h:38
uint32_t ltiming
Definition: i2c.h:22
uint32_t start
Definition: i2c.h:20
uint32_t reserved1
Definition: i2c.h:22
uint32_t fifo_addr_clr
Definition: i2c.h:25
uint32_t reserved4[3]
Definition: i2c.h:33
uint32_t reserved3
Definition: i2c.h:30
uint32_t transfer_aux_len
Definition: i2c.h:36
uint32_t intr_mask
Definition: i2c.h:13
uint32_t debug_stat
Definition: i2c.h:34
uint32_t debug_ctrl
Definition: i2c.h:35
uint32_t reserved2
Definition: i2c.h:26
uint32_t fifo_stat
Definition: i2c.h:23
uint32_t reserved0[2]
Definition: i2c.h:26
uint32_t intr_stat
Definition: i2c.h:14
uint32_t fifo_thresh
Definition: i2c.h:24
uint32_t ext_conf
Definition: i2c.h:21
uint32_t timing
Definition: i2c.h:19
uint32_t io_config
Definition: i2c.h:27