summaryrefslogtreecommitdiff
path: root/src/soc/mediatek/mt8183
diff options
context:
space:
mode:
authorRex-BC Chen <rex-bc.chen@mediatek.corp-partner.google.com>2021-11-03 11:28:23 +0800
committerHung-Te Lin <hungte@chromium.org>2021-11-17 10:29:55 +0000
commit9d321588d04843621af4cddff411ddcee88fe682 (patch)
treed4b35804b227b111cd73df23479e9993a2437d9f /src/soc/mediatek/mt8183
parente2cc773f71891f26330f235421602ad4bd3695e6 (diff)
soc/mediatek: move i2c function to common folder
Move mtk_i2c_max_step_cnt, mtk_i2c_check_ac_timing, mtk_i2c_speed_init and mtk_i2c_calculate_speed to common folder to share with MT8186. TEST=test on tomato ok TEST=emerge-asurada coreboot BUG=b:202871018 Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com> Change-Id: I4a702741c763bf9261cea90d0d71c08b6e28c261 Reviewed-on: https://review.coreboot.org/c/coreboot/+/59295 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Diffstat (limited to 'src/soc/mediatek/mt8183')
-rw-r--r--src/soc/mediatek/mt8183/i2c.c10
-rw-r--r--src/soc/mediatek/mt8183/include/soc/i2c.h5
2 files changed, 9 insertions, 6 deletions
diff --git a/src/soc/mediatek/mt8183/i2c.c b/src/soc/mediatek/mt8183/i2c.c
index 3e53a72c5e..193f4b912b 100644
--- a/src/soc/mediatek/mt8183/i2c.c
+++ b/src/soc/mediatek/mt8183/i2c.c
@@ -2,12 +2,9 @@
#include <assert.h>
#include <device/mmio.h>
-#include <soc/pll.h>
#include <soc/i2c.h>
#include <soc/gpio.h>
-#define I2C_CLK_HZ (UNIVPLL_HZ / 20)
-
struct mtk_i2c mtk_i2c_bus_controller[] = {
/* i2c0 setting */
{
@@ -52,7 +49,8 @@ struct mtk_i2c mtk_i2c_bus_controller[] = {
},
};
-#define I2C_BUS_NUMBER ARRAY_SIZE(mtk_i2c_bus_controller)
+_Static_assert(ARRAY_SIZE(mtk_i2c_bus_controller) == I2C_BUS_NUMBER,
+ "Wrong size of mtk_i2c_bus_controller");
struct pad_func {
gpio_t gpio;
@@ -103,7 +101,7 @@ static void mtk_i2c_set_gpio_pinmux(uint8_t bus)
}
}
-static void mtk_i2c_speed_init(uint8_t bus)
+static void mtk_i2c_speed_init_soc(uint8_t bus)
{
uint8_t step_div;
const uint8_t clock_div = 5;
@@ -132,7 +130,7 @@ static void mtk_i2c_speed_init(uint8_t bus)
void mtk_i2c_bus_init(uint8_t bus)
{
- mtk_i2c_speed_init(bus);
+ mtk_i2c_speed_init_soc(bus);
mtk_i2c_set_gpio_pinmux(bus);
}
diff --git a/src/soc/mediatek/mt8183/include/soc/i2c.h b/src/soc/mediatek/mt8183/include/soc/i2c.h
index e70cf47958..ebe75facce 100644
--- a/src/soc/mediatek/mt8183/include/soc/i2c.h
+++ b/src/soc/mediatek/mt8183/include/soc/i2c.h
@@ -4,6 +4,7 @@
#define SOC_MEDIATEK_MT8183_I2C_H
#include <soc/i2c_common.h>
+#include <soc/pll.h>
/* I2C Register */
struct mt_i2c_regs {
@@ -39,6 +40,10 @@ struct mt_i2c_regs {
uint32_t rollback;
};
+#define I2C_CLK_HZ (UNIVPLL_HZ / 20)
+#define I2C_BUS_NUMBER 7
+#define MAX_CLOCK_DIV 32
+
check_member(mt_i2c_regs, multi_dma, 0xf8c);
void mtk_i2c_bus_init(uint8_t bus);