@@ -56,38 +56,50 @@ static int backend_init(const struct device *instance)
5656
5757#define  UNBOUND_MODE (i ) CONCAT(ICMSG_UNBOUND_MODE_, DT_INST_STRING_UPPER_TOKEN(i, unbound))
5858
59- #define  DEFINE_BACKEND_DEVICE (i )					\
60- 	static const struct icmsg_config_t backend_config_##i = {	\
61- 		.mbox_tx = MBOX_DT_SPEC_INST_GET(i, tx),		\
62- 		.mbox_rx = MBOX_DT_SPEC_INST_GET(i, rx),		\
63- 		.unbound_mode = UNBOUND_MODE(i),			\
64- 	};								\
65- 									\
66- 	PBUF_DEFINE(tx_pb_##i,						\
67- 			DT_REG_ADDR(DT_INST_PHANDLE(i, tx_region)),	\
68- 			DT_REG_SIZE(DT_INST_PHANDLE(i, tx_region)),	\
69- 			DT_INST_PROP_OR(i, dcache_alignment, 0),	\
70- 			UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE,	\
71- 			UNBOUND_MODE(i) == ICMSG_UNBOUND_MODE_DETECT);	\
72- 	PBUF_DEFINE(rx_pb_##i,						\
73- 			DT_REG_ADDR(DT_INST_PHANDLE(i, rx_region)),	\
74- 			DT_REG_SIZE(DT_INST_PHANDLE(i, rx_region)),	\
75- 			DT_INST_PROP_OR(i, dcache_alignment, 0),	\
76- 			UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE,	\
77- 			UNBOUND_MODE(i) == ICMSG_UNBOUND_MODE_DETECT);	\
78- 									\
79- 	static struct icmsg_data_t backend_data_##i = {			\
80- 		.tx_pb = &tx_pb_##i,					\
81- 		.rx_pb = &rx_pb_##i,					\
82- 	};								\
83- 									\
84- 	DEVICE_DT_INST_DEFINE(i,					\
85- 			 &backend_init,					\
86- 			 NULL,						\
87- 			 &backend_data_##i,				\
88- 			 &backend_config_##i,				\
89- 			 POST_KERNEL,					\
90- 			 CONFIG_IPC_SERVICE_REG_BACKEND_PRIORITY,	\
59+ #define  DEFINE_BACKEND_DEVICE (i )						\
60+ 	static const struct icmsg_config_t backend_config_##i = {		\
61+ 		.mbox_tx = MBOX_DT_SPEC_INST_GET(i, tx),			\
62+ 		.mbox_rx = MBOX_DT_SPEC_INST_GET(i, rx),			\
63+ 		.unbound_mode = UNBOUND_MODE(i),				\
64+ 	};									\
65+ 										\
66+ 	PBUF_DEFINE(tx_pb_##i,							\
67+ 			DT_REG_ADDR(DT_INST_PHANDLE(i, tx_region)),		\
68+ 			DT_REG_SIZE(DT_INST_PHANDLE(i, tx_region)),		\
69+ 			DT_INST_PROP_OR(i, dcache_alignment, 0),		\
70+ 			UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE,		\
71+ 			UNBOUND_MODE(i) == ICMSG_UNBOUND_MODE_DETECT);		\
72+ 	PBUF_DEFINE(rx_pb_##i,							\
73+ 			DT_REG_ADDR(DT_INST_PHANDLE(i, rx_region)),		\
74+ 			DT_REG_SIZE(DT_INST_PHANDLE(i, rx_region)),		\
75+ 			DT_INST_PROP_OR(i, dcache_alignment, 0),		\
76+ 			UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE,		\
77+ 			UNBOUND_MODE(i) == ICMSG_UNBOUND_MODE_DETECT);		\
78+ 										\
79+ 	BUILD_ASSERT(UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DISABLE ||		\
80+ 		IS_ENABLED(CONFIG_IPC_SERVICE_ICMSG_UNBOUND_DISABLED_ALLOWED),	\
81+ 		"Unbound mode \"disabled\" is was forbidden in Kconfig.");	\
82+ 										\
83+ 	BUILD_ASSERT(UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_ENABLE ||		\
84+ 		IS_ENABLED(CONFIG_IPC_SERVICE_ICMSG_UNBOUND_ENABLED_ALLOWED),	\
85+ 		"Unbound mode \"enabled\" is was forbidden in Kconfig.");	\
86+ 										\
87+ 	BUILD_ASSERT(UNBOUND_MODE(i) != ICMSG_UNBOUND_MODE_DETECT ||		\
88+ 		IS_ENABLED(CONFIG_IPC_SERVICE_ICMSG_UNBOUND_DETECT_ALLOWED),	\
89+ 		"Unbound mode \"detect\" is was forbidden in Kconfig.");	\
90+ 										\
91+ 	static struct icmsg_data_t backend_data_##i = {				\
92+ 		.tx_pb = &tx_pb_##i,						\
93+ 		.rx_pb = &rx_pb_##i,						\
94+ 	};									\
95+ 										\
96+ 	DEVICE_DT_INST_DEFINE(i,						\
97+ 			 &backend_init,						\
98+ 			 NULL,							\
99+ 			 &backend_data_##i,					\
100+ 			 &backend_config_##i,					\
101+ 			 POST_KERNEL,						\
102+ 			 CONFIG_IPC_SERVICE_REG_BACKEND_PRIORITY,		\
91103			 &backend_ops);
92104
93105DT_INST_FOREACH_STATUS_OKAY (DEFINE_BACKEND_DEVICE )
0 commit comments