1 | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | /* |
3 | * Realtek RTD1195 |
4 | * |
5 | * Copyright (c) 2017-2019 Andreas Färber |
6 | */ |
7 | |
8 | #include <linux/memblock.h> |
9 | #include <asm/mach/arch.h> |
10 | |
11 | static void __init rtd1195_memblock_remove(phys_addr_t base, phys_addr_t size) |
12 | { |
13 | int ret; |
14 | |
15 | ret = memblock_remove(base, size); |
16 | if (ret) |
17 | pr_err("Failed to remove memblock %pa (%d)\n" , &base, ret); |
18 | } |
19 | |
20 | static void __init rtd1195_reserve(void) |
21 | { |
22 | /* Exclude boot ROM from RAM */ |
23 | rtd1195_memblock_remove(base: 0x00000000, size: 0x0000a800); |
24 | |
25 | /* Exclude peripheral register spaces from RAM */ |
26 | rtd1195_memblock_remove(base: 0x18000000, size: 0x00070000); |
27 | rtd1195_memblock_remove(base: 0x18100000, size: 0x01000000); |
28 | } |
29 | |
30 | static const char *const rtd1195_dt_compat[] __initconst = { |
31 | "realtek,rtd1195" , |
32 | NULL |
33 | }; |
34 | |
35 | DT_MACHINE_START(rtd1195, "Realtek RTD1195" ) |
36 | .dt_compat = rtd1195_dt_compat, |
37 | .reserve = rtd1195_reserve, |
38 | .l2c_aux_val = 0x0, |
39 | .l2c_aux_mask = ~0x0, |
40 | MACHINE_END |
41 | |