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
#ifndef SOC_MEDIATEK_MT8195_I2C_H
4
#define SOC_MEDIATEK_MT8195_I2C_H
5
6
#include <
soc/i2c_common.h
>
7
#include <soc/pll.h>
8
9
/* I2C Register */
10
struct
mt_i2c_regs
{
11
uint32_t
data_port
;
12
uint32_t
slave_addr
;
13
uint32_t
intr_mask
;
14
uint32_t
intr_stat
;
15
uint32_t
control
;
16
uint32_t
transfer_len
;
17
uint32_t
transac_len
;
18
uint32_t
delay_len
;
19
uint32_t
timing
;
20
uint32_t
start
;
21
uint32_t
ext_conf
;
22
uint32_t
ltiming
;
23
uint32_t
hs
;
24
uint32_t
io_config
;
25
uint32_t
fifo_addr_clr
;
26
uint32_t
data_timing
;
27
uint32_t
reserved0
;
28
uint32_t
transfer_aux_len
;
29
uint32_t
clock_div
;
30
uint32_t
time_out
;
31
uint32_t
softreset
;
32
uint32_t
reserved1
[36];
33
uint32_t
debug_stat
;
34
uint32_t
debug_ctrl
;
35
uint32_t
reserved2
[2];
36
uint32_t
fifo_stat
;
37
uint32_t
fifo_thresh
;
38
uint32_t
reserved3
[932];
39
uint32_t
multi_dma
;
40
uint32_t
reserved4
[2];
41
uint32_t
rollback
;
42
};
43
44
/* I2C ID Number*/
45
enum
{
46
I2C0
,
47
I2C1
,
48
I2C2
,
49
I2C3
,
50
I2C4
,
51
I2C5
,
52
I2C6
,
53
I2C7
,
54
};
55
56
#define I2C_BUS_NUMBER 8
57
#define MAX_CLOCK_DIV 32
58
#define I2C_CLK_HZ (UNIVPLL_HZ / 20)
59
60
check_member
(
mt_i2c_regs
, multi_dma, 0xf8c);
61
62
void
mtk_i2c_bus_init
(
uint8_t
bus
,
uint32_t
speed);
63
64
#endif
/* SOC_MEDIATEK_MT8195_I2C_H */
i2c_common.h
check_member
check_member(mt_i2c_regs, debug_stat, 0x64)
mtk_i2c_bus_init
void mtk_i2c_bus_init(uint8_t bus)
Definition:
i2c.c:65
I2C7
@ I2C7
Definition:
i2c.h:57
I2C4
@ I2C4
Definition:
i2c.h:54
I2C5
@ I2C5
Definition:
i2c.h:55
I2C3
@ I2C3
Definition:
i2c.h:53
I2C0
@ I2C0
Definition:
i2c.h:50
I2C2
@ I2C2
Definition:
i2c.h:52
I2C1
@ I2C1
Definition:
i2c.h:51
I2C6
@ I2C6
Definition:
i2c.h:56
uint32_t
unsigned int uint32_t
Definition:
stdint.h:14
uint8_t
unsigned char uint8_t
Definition:
stdint.h:8
bus
Definition:
device.h:76
mt_i2c_regs
Definition:
i2c.h:10
mt_i2c_regs::hs
uint32_t hs
Definition:
i2c.h:29
mt_i2c_regs::time_out
uint32_t time_out
Definition:
i2c.h:29
mt_i2c_regs::data_port
uint32_t data_port
Definition:
i2c.h:11
mt_i2c_regs::softreset
uint32_t softreset
Definition:
i2c.h:31
mt_i2c_regs::rollback
uint32_t rollback
Definition:
i2c.h:40
mt_i2c_regs::slave_addr
uint32_t slave_addr
Definition:
i2c.h:12
mt_i2c_regs::control
uint32_t control
Definition:
i2c.h:15
mt_i2c_regs::transfer_len
uint32_t transfer_len
Definition:
i2c.h:16
mt_i2c_regs::transac_len
uint32_t transac_len
Definition:
i2c.h:17
mt_i2c_regs::clock_div
uint32_t clock_div
Definition:
i2c.h:28
mt_i2c_regs::delay_len
uint32_t delay_len
Definition:
i2c.h:18
mt_i2c_regs::multi_dma
uint32_t multi_dma
Definition:
i2c.h:38
mt_i2c_regs::ltiming
uint32_t ltiming
Definition:
i2c.h:22
mt_i2c_regs::start
uint32_t start
Definition:
i2c.h:20
mt_i2c_regs::data_timing
uint32_t data_timing
Definition:
i2c.h:26
mt_i2c_regs::reserved1
uint32_t reserved1
Definition:
i2c.h:22
mt_i2c_regs::fifo_addr_clr
uint32_t fifo_addr_clr
Definition:
i2c.h:25
mt_i2c_regs::reserved4
uint32_t reserved4[3]
Definition:
i2c.h:33
mt_i2c_regs::reserved3
uint32_t reserved3
Definition:
i2c.h:30
mt_i2c_regs::transfer_aux_len
uint32_t transfer_aux_len
Definition:
i2c.h:36
mt_i2c_regs::intr_mask
uint32_t intr_mask
Definition:
i2c.h:13
mt_i2c_regs::debug_stat
uint32_t debug_stat
Definition:
i2c.h:34
mt_i2c_regs::debug_ctrl
uint32_t debug_ctrl
Definition:
i2c.h:35
mt_i2c_regs::reserved2
uint32_t reserved2
Definition:
i2c.h:26
mt_i2c_regs::fifo_stat
uint32_t fifo_stat
Definition:
i2c.h:23
mt_i2c_regs::reserved0
uint32_t reserved0[2]
Definition:
i2c.h:26
mt_i2c_regs::intr_stat
uint32_t intr_stat
Definition:
i2c.h:14
mt_i2c_regs::fifo_thresh
uint32_t fifo_thresh
Definition:
i2c.h:24
mt_i2c_regs::ext_conf
uint32_t ext_conf
Definition:
i2c.h:21
mt_i2c_regs::timing
uint32_t timing
Definition:
i2c.h:19
mt_i2c_regs::io_config
uint32_t io_config
Definition:
i2c.h:27
src
soc
mediatek
mt8195
include
soc
i2c.h
Generated by
1.9.1