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