1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2021 Marvell International Ltd.
4 */
5
6/* Common definitions used by Armada 7K/8K DTs */
7#define PASTER(x, y)		x ## _ ## y
8#define EVALUATOR(x, y)		PASTER(x, y)
9
10/* This define used to create die label:
11 * For example:
12 * CP110 master:
13 *     CP110_LABEL(spi0) -> cp0_spi0
14 * CP110 slave:
15 *     CP110_LABEL(usb0) -> cp1_usb0
16 */
17#define CP110_LABEL(name)	EVALUATOR(CP110_NAME, name)
18
19#define APPEND_NX(A, B)		A ##-## B
20#define APPEND(A, B)		APPEND_NX(A, B)
21
22#define STRINGIZE_NX(x)		#x
23#define STRINGIZE(x)		STRINGIZE_NX(x)
24
25/* Same idea here, but this define convert the name to string:
26 * For example:
27 * master: CP110_STRING_LABEL(ppv2) -> "cp0-ppv2"
28 * slave: CP110_STRING_LABEL(ppv2) -> "cp1-ppv2"
29 */
30#define CP110_STRING_LABEL(name)	STRINGIZE(APPEND(CP110_NAME, name))
31