1 /*
2  * Copyright (c) 2023 Carlo Caione <ccaione@baylibre.com>
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_XTENSA_H_
7 #define ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_XTENSA_H_
8 
9 #include <zephyr/sys/util_macro.h>
10 #include <zephyr/dt-bindings/memory-attr/memory-attr.h>
11 
12 /*
13  * Architecture specific Xtensa related attributes.
14  */
15 #define DT_MEM_XTENSA_MASK		DT_MEM_ARCH_ATTR_MASK
16 #define DT_MEM_XTENSA_GET(x)		((x) & DT_MEM_XTENSA_MASK)
17 #define DT_MEM_XTENSA(x)		((x) << DT_MEM_ARCH_ATTR_SHIFT)
18 
19 #define  ATTR_XTENSA_INSTR_ROM		BIT(0)
20 #define  ATTR_XTENSA_INSTR_RAM		BIT(1)
21 #define  ATTR_XTENSA_DATA_ROM		BIT(2)
22 #define  ATTR_XTENSA_DATA_RAM		BIT(3)
23 #define  ATTR_XTENSA_XLMI		BIT(4)
24 
25 #define DT_MEM_XTENSA_INSTR_ROM		DT_MEM_XTENSA(ATTR_XTENSA_INSTR_ROM)
26 #define DT_MEM_XTENSA_INSTR_RAM		DT_MEM_XTENSA(ATTR_XTENSA_INSTR_RAM)
27 #define DT_MEM_XTENSA_DATA_ROM		DT_MEM_XTENSA(ATTR_XTENSA_DATA_ROM)
28 #define DT_MEM_XTENSA_DATA_RAM		DT_MEM_XTENSA(ATTR_XTENSA_DATA_RAM)
29 #define DT_MEM_XTENSA_XLMI		DT_MEM_XTENSA(ATTR_XTENSA_XLMI)
30 #define DT_MEM_XTENSA_UNKNOWN		DT_MEM_ARCH_ATTR_UNKNOWN
31 
32 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_XTENSA_H_ */
33