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
{
16
uint32_t
data_port
;
17
uint32_t
slave_addr
;
18
uint32_t
intr_mask
;
19
uint32_t
intr_stat
;
20
uint32_t
control
;
21
uint32_t
transfer_len
;
22
uint32_t
transac_len
;
23
uint32_t
delay_len
;
24
uint32_t
timing
;
25
uint32_t
start
;
26
uint32_t
ext_conf
;
27
uint32_t
ltiming
;
28
uint32_t
hs
;
29
uint32_t
io_config
;
30
uint32_t
fifo_addr_clr
;
31
uint32_t
reserved0
[2];
32
uint32_t
transfer_aux_len
;
33
uint32_t
clock_div
;
34
uint32_t
time_out
;
35
uint32_t
softreset
;
36
uint32_t
reserved1
[36];
37
uint32_t
debug_stat
;
38
uint32_t
debug_ctrl
;
39
uint32_t
reserved2
[2];
40
uint32_t
fifo_stat
;
41
uint32_t
fifo_thresh
;
42
uint32_t
reserved3
[932];
43
uint32_t
multi_dma
;
44
uint32_t
reserved4
[2];
45
uint32_t
rollback
;
46
};
47
48
/* I2C ID Number*/
49
enum
{
50
I2C0
,
51
I2C1
,
52
I2C2
,
53
I2C3
,
54
I2C4
,
55
I2C5
,
56
I2C6
,
57
I2C7
,
58
I2C8
,
59
I2C9
,
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
68
void
mtk_i2c_bus_init
(
uint8_t
bus
,
uint32_t
speed);
69
70
#endif
/* SOC_MEDIATEK_MT8186_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
I2C9
@ I2C9
Definition:
i2c.h:59
I2C8
@ I2C8
Definition:
i2c.h:58
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::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
mt8186
include
soc
i2c.h
Generated by
1.9.1