coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
pmif_spmi.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
device/mmio.h
>
4
#include <soc/iocfg.h>
5
#include <soc/pll.h>
6
#include <
soc/pmif_spmi.h
>
7
8
/* IOCFG_BM, DRV_CFG2 */
9
DEFINE_BITFIELD
(SPMI_SCL, 5, 3)
10
DEFINE_BITFIELD
(SPMI_SDA, 8, 6)
11
12
/* TOPRGU, WDT_SWSYSRST2 */
13
DEFINE_BIT
(SPMI_MST_RST, 4)
14
DEFINE_BITFIELD
(UNLOCK_KEY, 31, 24)
15
16
/* TOPCKGEN, CLK_CFG_15 */
17
DEFINE_BITFIELD
(CLK_SPMI_MST_SEL, 10, 8)
18
DEFINE_BIT
(CLK_SPMI_MST_INT, 12)
19
DEFINE_BIT
(PDN_SPMI_MST, 15)
20
21
/* TOPCKGEN, CLK_CFG_UPDATE2 */
22
DEFINE_BIT
(SPMI_MST_CK_UPDATE, 30)
23
24
int
spmi_config_master
(
void
)
25
{
26
/* Software reset */
27
SET32_BITFIELDS
(&
mtk_rug
->wdt_swsysrst2, SPMI_MST_RST, 1, UNLOCK_KEY, 0x85);
28
29
SET32_BITFIELDS
(&
mtk_topckgen
->clk_cfg_15_clr,
30
CLK_SPMI_MST_SEL, 0x7,
31
CLK_SPMI_MST_INT, 1,
32
PDN_SPMI_MST, 1);
33
SET32_BITFIELDS
(&
mtk_topckgen
->clk_cfg_update2, SPMI_MST_CK_UPDATE, 1);
34
35
/* Software reset */
36
SET32_BITFIELDS
(&
mtk_rug
->wdt_swsysrst2, SPMI_MST_RST, 0, UNLOCK_KEY, 0x85);
37
38
/* Enable SPMI */
39
write32
(&
mtk_spmi_mst
->mst_req_en, 1);
40
41
return
0;
42
}
43
44
void
pmif_spmi_iocfg
(
void
)
45
{
46
SET32_BITFIELDS
(&
mtk_iocfg_bm
->drv_cfg2, SPMI_SCL, 0x2, SPMI_SDA, 0x2);
47
}
write32
static void write32(void *addr, uint32_t val)
Definition:
mmio.h:40
mmio.h
DEFINE_BITFIELD
#define DEFINE_BITFIELD(name, high_bit, low_bit)
Definition:
mmio.h:124
DEFINE_BIT
#define DEFINE_BIT(name, bit)
Definition:
mmio.h:131
SET32_BITFIELDS
#define SET32_BITFIELDS(addr,...)
Definition:
mmio.h:201
mtk_iocfg_bm
#define mtk_iocfg_bm
Definition:
iocfg.h:27
pmif_spmi_iocfg
void pmif_spmi_iocfg(void)
Definition:
pmif_spmi.c:44
spmi_config_master
int spmi_config_master(void)
Definition:
pmif_spmi.c:24
mtk_topckgen
#define mtk_topckgen
Definition:
pll_common.h:11
pmif_spmi.h
mtk_spmi_mst
#define mtk_spmi_mst
Definition:
pmif_spmi.h:44
mtk_rug
#define mtk_rug
Definition:
pmif_spmi.h:43
src
soc
mediatek
mt8192
pmif_spmi.c
Generated by
1.9.1