Angel Pons | e67ab18 | 2020-04-04 18:51:11 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
Erin Lo | b1a2b22 | 2019-03-11 14:54:21 +0800 | [diff] [blame] | 2 | |
Julius Werner | 55009af | 2019-12-02 22:03:27 -0800 | [diff] [blame] | 3 | #include <device/mmio.h> |
Yidi Lin | eb69dd6 | 2020-12-07 20:43:50 +0800 | [diff] [blame] | 4 | #include <soc/mcu_common.h> |
Erin Lo | b1a2b22 | 2019-03-11 14:54:21 +0800 | [diff] [blame] | 5 | #include <soc/sspm.h> |
Yidi Lin | eb69dd6 | 2020-12-07 20:43:50 +0800 | [diff] [blame] | 6 | #include <soc/symbols.h> |
Erin Lo | b1a2b22 | 2019-03-11 14:54:21 +0800 | [diff] [blame] | 7 | |
Yidi Lin | eb69dd6 | 2020-12-07 20:43:50 +0800 | [diff] [blame] | 8 | static void reset_sspm(struct mtk_mcu *mcu) |
9 | { | ||||
Rex-BC Chen | e235f9a | 2021-05-27 21:10:17 +0800 | [diff] [blame] | 10 | write32(&sspm_reg->sw_rstn, 0x1); |
Yidi Lin | eb69dd6 | 2020-12-07 20:43:50 +0800 | [diff] [blame] | 11 | } |
12 | |||||
13 | static struct mtk_mcu sspm = { | ||||
14 | .firmware_name = CONFIG_SSPM_FIRMWARE, | ||||
15 | .run_address = (void *)SSPM_SRAM_BASE, | ||||
16 | .reset = reset_sspm, | ||||
17 | }; | ||||
Erin Lo | b1a2b22 | 2019-03-11 14:54:21 +0800 | [diff] [blame] | 18 | |
19 | void sspm_init(void) | ||||
20 | { | ||||
Yidi Lin | eb69dd6 | 2020-12-07 20:43:50 +0800 | [diff] [blame] | 21 | sspm.load_buffer = _dram_dma; |
22 | sspm.buffer_size = REGION_SIZE(dram_dma); | ||||
Erin Lo | b1a2b22 | 2019-03-11 14:54:21 +0800 | [diff] [blame] | 23 | |
Yidi Lin | eb69dd6 | 2020-12-07 20:43:50 +0800 | [diff] [blame] | 24 | mtk_init_mcu(&sspm); |
Erin Lo | b1a2b22 | 2019-03-11 14:54:21 +0800 | [diff] [blame] | 25 | } |