blob: 33e1eb9d51e6896627d744c1bad4fc0a7ad28fea [file] [log] [blame]
Tristan Shieh0eb92df2018-06-08 18:21:45 +08001/*
2 * This file is part of the coreboot project.
3 *
Tristan Shieh0eb92df2018-06-08 18:21:45 +08004 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#include <device/device.h>
Tristan Shieh9315a042018-08-06 13:57:50 +080016#include <soc/emi.h>
Yanjie Jiang64dea2e2019-05-07 10:31:07 +080017#include <soc/md_ctrl.h>
Tristan Shieh0eb92df2018-06-08 18:21:45 +080018#include <soc/mmu_operations.h>
Weiyi Lue78d1402019-08-05 17:45:24 +080019#include <soc/rtc.h>
Erin Lobbeed7a2019-07-16 10:08:33 +080020#include <soc/sspm.h>
Tristan Shieh9315a042018-08-06 13:57:50 +080021#include <symbols.h>
22
Tristan Shieh9315a042018-08-06 13:57:50 +080023static void soc_read_resources(struct device *dev)
24{
25 ram_resource(dev, 0, (uintptr_t)_dram / KiB, sdram_size() / KiB);
26}
Tristan Shieh0eb92df2018-06-08 18:21:45 +080027
28static void soc_init(struct device *dev)
29{
30 mtk_mmu_disable_l2c_sram();
Yanjie Jiang64dea2e2019-05-07 10:31:07 +080031 mtk_md_early_init();
Weiyi Lue78d1402019-08-05 17:45:24 +080032 mt6358_dcxo_disable_unused();
Erin Lobbeed7a2019-07-16 10:08:33 +080033 sspm_init();
Tristan Shieh0eb92df2018-06-08 18:21:45 +080034}
35
36static struct device_operations soc_ops = {
Tristan Shieh9315a042018-08-06 13:57:50 +080037 .read_resources = soc_read_resources,
Tristan Shieh0eb92df2018-06-08 18:21:45 +080038 .init = soc_init,
39};
40
41static void enable_soc_dev(struct device *dev)
42{
43 dev->ops = &soc_ops;
44}
45
46struct chip_operations soc_mediatek_mt8183_ops = {
47 CHIP_NAME("SOC Mediatek MT8183")
48 .enable_dev = enable_soc_dev,
49};