Angel Pons | e67ab18 | 2020-04-04 18:51:11 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 2 | |
Ting Shen | dff29e0 | 2019-01-28 18:15:00 +0800 | [diff] [blame] | 3 | #include <bootmem.h> |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 4 | #include <device/device.h> |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 5 | #include <symbols.h> |
Yidi Lin | c6d7dcc | 2016-02-04 17:26:48 +0800 | [diff] [blame] | 6 | #include <soc/emi.h> |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 7 | |
Ting Shen | dff29e0 | 2019-01-28 18:15:00 +0800 | [diff] [blame] | 8 | void bootmem_platform_add_ranges(void) |
9 | { | ||||
10 | bootmem_add_range(0x101000, 124 * KiB, BM_MEM_BL31); | ||||
11 | } | ||||
12 | |||||
Elyes HAOUAS | b442669 | 2018-05-25 10:09:55 +0200 | [diff] [blame] | 13 | static void soc_read_resources(struct device *dev) |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 14 | { |
Yidi Lin | c6d7dcc | 2016-02-04 17:26:48 +0800 | [diff] [blame] | 15 | ram_resource(dev, 0, (uintptr_t)_dram / KiB, sdram_size() / KiB); |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 16 | } |
17 | |||||
Elyes HAOUAS | b442669 | 2018-05-25 10:09:55 +0200 | [diff] [blame] | 18 | static void soc_init(struct device *dev) |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 19 | { |
20 | } | ||||
21 | |||||
22 | static struct device_operations soc_ops = { | ||||
23 | .read_resources = soc_read_resources, | ||||
Yu-Ping Wu | 39e6f85 | 2022-03-14 16:53:59 +0800 | [diff] [blame] | 24 | .set_resources = noop_set_resources, |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 25 | .init = soc_init, |
26 | }; | ||||
27 | |||||
Elyes HAOUAS | b442669 | 2018-05-25 10:09:55 +0200 | [diff] [blame] | 28 | static void enable_soc_dev(struct device *dev) |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 29 | { |
30 | dev->ops = &soc_ops; | ||||
31 | } | ||||
32 | |||||
33 | struct chip_operations soc_mediatek_mt8173_ops = { | ||||
Paul Menzel | 3727776 | 2016-07-03 09:45:26 +0200 | [diff] [blame] | 34 | CHIP_NAME("SOC Mediatek MT8173") |
Yidi Lin | 47a9af4 | 2016-03-28 15:16:45 +0800 | [diff] [blame] | 35 | .enable_dev = enable_soc_dev, |
Yidi Lin | 3d7b606 | 2015-07-31 17:10:40 +0800 | [diff] [blame] | 36 | }; |