Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / arch / mips / include / asm / yamon-dt.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (C) 2016 Imagination Technologies
4  * Author: Paul Burton <paul.burton@mips.com>
5  */
6
7 #ifndef __MIPS_ASM_YAMON_DT_H__
8 #define __MIPS_ASM_YAMON_DT_H__
9
10 #include <linux/types.h>
11
12 /**
13  * struct yamon_mem_region - Represents a contiguous range of physical RAM.
14  * @start:      Start physical address.
15  * @size:       Maximum size of region.
16  * @discard:    Length of additional memory to discard after the region.
17  */
18 struct yamon_mem_region {
19         phys_addr_t     start;
20         phys_addr_t     size;
21         phys_addr_t     discard;
22 };
23
24 /**
25  * yamon_dt_append_cmdline() - Append YAMON-provided command line to /chosen
26  * @fdt: the FDT blob
27  *
28  * Write the YAMON-provided command line to the bootargs property of the
29  * /chosen node in @fdt.
30  *
31  * Return: 0 on success, else -errno
32  */
33 extern __init int yamon_dt_append_cmdline(void *fdt);
34
35 /**
36  * yamon_dt_append_memory() - Append YAMON-provided memory info to /memory
37  * @fdt:        the FDT blob
38  * @regions:    zero size terminated array of physical memory regions
39  *
40  * Generate a /memory node in @fdt based upon memory size information provided
41  * by YAMON in its environment and the @regions array.
42  *
43  * Return: 0 on success, else -errno
44  */
45 extern __init int yamon_dt_append_memory(void *fdt,
46                                         const struct yamon_mem_region *regions);
47
48 /**
49  * yamon_dt_serial_config() - Append YAMON-provided serial config to /chosen
50  * @fdt: the FDT blob
51  *
52  * Generate a stdout-path property in the /chosen node of @fdt, based upon
53  * information provided in the YAMON environment about the UART configuration
54  * of the system.
55  *
56  * Return: 0 on success, else -errno
57  */
58 extern __init int yamon_dt_serial_config(void *fdt);
59
60 #endif /* __MIPS_ASM_YAMON_DT_H__ */