can: dts: Convert can-primary alias to zephyr,can-primary chosen prop

Convert CAN to use a chosen node property that is similar to how we
handle zephyr,entroy or zephyr,flash-controller as the means to select a
specific peripheral instance utilized by a subsystem.

Replace references of the form:

alias {
	can-primary = &can1;
};

with:

chosen {
	zephyr,can-primary = &can1;
};

Replace various macro/define references with either
DT_CHOSEN(zephyr_can_primary) or replace DT_ALIAS_CAN_PRIMARY_LABEL
with DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
diff --git a/boards/arm/black_f407_generic/black_f407ve.dts b/boards/arm/black_f407_generic/black_f407ve.dts
index 8caca94..d767cbd 100644
--- a/boards/arm/black_f407_generic/black_f407ve.dts
+++ b/boards/arm/black_f407_generic/black_f407ve.dts
@@ -17,6 +17,7 @@
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
 		zephyr,ccm = &ccm0;
+		zephyr,can-primary = &can2;
 	};
 
 	leds {
@@ -48,7 +49,6 @@
 	};
 
 	aliases {
-		can-primary = &can2;
 		led0 = &green_led_1;
 		led1 = &green_led_2;
 		sw0 = &user_button_UP;
diff --git a/boards/arm/frdm_k64f/frdm_k64f.dts b/boards/arm/frdm_k64f/frdm_k64f.dts
index 047a7db..a77615f 100644
--- a/boards/arm/frdm_k64f/frdm_k64f.dts
+++ b/boards/arm/frdm_k64f/frdm_k64f.dts
@@ -14,7 +14,6 @@
 		led2 = &red_led;
 		sw0 = &user_button_3;
 		sw1 = &user_button_2;
-		can-primary = &flexcan0;
 	};
 
 	chosen {
@@ -24,6 +23,7 @@
 		zephyr,console = &uart0;
 		zephyr,shell-uart = &uart0;
 		zephyr,uart-pipe = &uart0;
+		zephyr,can-primary = &flexcan0;
 	};
 
 	leds {
diff --git a/boards/arm/nucleo_f746zg/nucleo_f746zg.dts b/boards/arm/nucleo_f746zg/nucleo_f746zg.dts
index 0a44738..76c84d2 100644
--- a/boards/arm/nucleo_f746zg/nucleo_f746zg.dts
+++ b/boards/arm/nucleo_f746zg/nucleo_f746zg.dts
@@ -18,6 +18,7 @@
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
 		zephyr,dtcm = &dtcm;
+		zephyr,can-primary = &can1;
 	};
 
 	leds {
@@ -49,7 +50,6 @@
 		led1 = &blue_led;
 		led2 = &red_led;
 		sw0 = &user_button;
-		can-primary = &can1;
 	};
 };
 
diff --git a/boards/arm/nucleo_f767zi/nucleo_f767zi.dts b/boards/arm/nucleo_f767zi/nucleo_f767zi.dts
index 179f5c3..144ffb3 100644
--- a/boards/arm/nucleo_f767zi/nucleo_f767zi.dts
+++ b/boards/arm/nucleo_f767zi/nucleo_f767zi.dts
@@ -18,6 +18,7 @@
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
 		zephyr,dtcm = &dtcm;
+		zephyr,can-primary = &can1;
 	};
 
 	leds {
@@ -49,7 +50,6 @@
 		led1 = &blue_led;
 		led2 = &red_led;
 		sw0 = &user_button;
-		can-primary = &can1;
 	};
 };
 
diff --git a/boards/arm/nucleo_l432kc/nucleo_l432kc.dts b/boards/arm/nucleo_l432kc/nucleo_l432kc.dts
index 71c4d40..4fbe86b 100644
--- a/boards/arm/nucleo_l432kc/nucleo_l432kc.dts
+++ b/boards/arm/nucleo_l432kc/nucleo_l432kc.dts
@@ -16,6 +16,7 @@
 		zephyr,shell-uart = &usart2;
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
+		zephyr,can-primary = &can1;
 	};
 
 	leds {
@@ -28,7 +29,6 @@
 
 	aliases {
 		led0 = &green_led;
-		can-primary = &can1;
 	};
 };
 
diff --git a/boards/arm/nucleo_l452re/nucleo_l452re.dts b/boards/arm/nucleo_l452re/nucleo_l452re.dts
index 543ad83..cf29469 100644
--- a/boards/arm/nucleo_l452re/nucleo_l452re.dts
+++ b/boards/arm/nucleo_l452re/nucleo_l452re.dts
@@ -17,6 +17,7 @@
 		zephyr,shell-uart = &usart2;
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
+		zephyr,can-primary = &can1;
 	};
 
 	leds {
@@ -38,7 +39,6 @@
 	aliases {
 		led0 = &green_led;
 		sw0 = &user_button;
-		can-primary = &can1;
 	};
 };
 
diff --git a/boards/arm/olimex_stm32_p405/olimex_stm32_p405.dts b/boards/arm/olimex_stm32_p405/olimex_stm32_p405.dts
index b28eb6a..7d6fca1 100644
--- a/boards/arm/olimex_stm32_p405/olimex_stm32_p405.dts
+++ b/boards/arm/olimex_stm32_p405/olimex_stm32_p405.dts
@@ -17,6 +17,7 @@
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
 		zephyr,ccm = &ccm0;
+		zephyr,can-primary = &can1;
 	};
 
 	leds {
@@ -38,7 +39,6 @@
 	aliases {
 		led0 = &green_led_1;
 		sw0 = &user_button;
-		can-primary = &can1;
 	};
 };
 
diff --git a/boards/arm/olimexino_stm32/olimexino_stm32.dts b/boards/arm/olimexino_stm32/olimexino_stm32.dts
index e6cb55d..b7bc940 100644
--- a/boards/arm/olimexino_stm32/olimexino_stm32.dts
+++ b/boards/arm/olimexino_stm32/olimexino_stm32.dts
@@ -16,6 +16,7 @@
 		zephyr,shell-uart = &usart1;
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
+		zephyr,can-primary = &can1;
 	};
 
 	leds {
@@ -42,7 +43,6 @@
 		led0 = &green_led_1;
 		led1 = &yellow_led_2;
 		sw0 = &user_button;
-		can-primary = &can1;
 	};
 };
 
diff --git a/boards/arm/stm32f072b_disco/stm32f072b_disco.dts b/boards/arm/stm32f072b_disco/stm32f072b_disco.dts
index 8ea4098..82939de 100644
--- a/boards/arm/stm32f072b_disco/stm32f072b_disco.dts
+++ b/boards/arm/stm32f072b_disco/stm32f072b_disco.dts
@@ -16,6 +16,7 @@
 		zephyr,shell-uart = &usart1;
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
+		zephyr,can-primary = &can1;
 	};
 
 	leds {
@@ -52,7 +53,6 @@
 		led2 = &green_right_led_5;
 		led3 = &blue_low_led_6;
 		sw0 = &user_button;
-		can-primary = &can1;
 	};
 };
 
diff --git a/boards/arm/stm32f3_disco/stm32f3_disco.dts b/boards/arm/stm32f3_disco/stm32f3_disco.dts
index 7b163f1..6fde431 100644
--- a/boards/arm/stm32f3_disco/stm32f3_disco.dts
+++ b/boards/arm/stm32f3_disco/stm32f3_disco.dts
@@ -16,6 +16,7 @@
 		zephyr,shell-uart = &usart1;
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
+		zephyr,can-primary = &can1;
 	};
 
 	leds {
@@ -66,7 +67,6 @@
 		led0 = &green_led_6;
 		led1 = &green_led_7;
 		sw0 = &user_button;
-		can-primary = &can1;
 	};
 };
 
diff --git a/boards/arm/stm32f4_disco/stm32f4_disco.dts b/boards/arm/stm32f4_disco/stm32f4_disco.dts
index d22bf4e..266996a 100644
--- a/boards/arm/stm32f4_disco/stm32f4_disco.dts
+++ b/boards/arm/stm32f4_disco/stm32f4_disco.dts
@@ -17,6 +17,7 @@
 		zephyr,sram = &sram0;
 		zephyr,flash = &flash0;
 		zephyr,ccm = &ccm0;
+		zephyr,can-primary = &can2;
 	};
 
 	leds {
@@ -48,7 +49,6 @@
 	};
 
 	aliases {
-		can-primary = &can2;
 		led0 = &green_led_4;
 		led1 = &orange_led_3;
 		led2 = &red_led_5;
diff --git a/boards/arm/twr_ke18f/twr_ke18f.dts b/boards/arm/twr_ke18f/twr_ke18f.dts
index 1c0917c..3120634 100644
--- a/boards/arm/twr_ke18f/twr_ke18f.dts
+++ b/boards/arm/twr_ke18f/twr_ke18f.dts
@@ -31,7 +31,6 @@
 		blue-pwm-led = &tri_blue_pwm_led;
 		sw0 = &user_button_3;
 		sw1 = &user_button_2;
-		can-primary = &flexcan0;
 	};
 
 	chosen {
@@ -41,6 +40,7 @@
 		zephyr,console = &lpuart0;
 		zephyr,shell-uart = &lpuart0;
 		zephyr,uart-pipe = &lpuart0;
+		zephyr,can-primary = &flexcan0;
 	};
 
 	leds {
diff --git a/boards/shields/dfrobot_can_bus_v2_0/dfrobot_can_bus_v2_0.overlay b/boards/shields/dfrobot_can_bus_v2_0/dfrobot_can_bus_v2_0.overlay
index de951f2..27a7621 100644
--- a/boards/shields/dfrobot_can_bus_v2_0/dfrobot_can_bus_v2_0.overlay
+++ b/boards/shields/dfrobot_can_bus_v2_0/dfrobot_can_bus_v2_0.overlay
@@ -27,7 +27,7 @@
 };
 
 / {
-	aliases {
-		can-primary = &can1;
+	chosen {
+		zephyr,can-primary = &can1;
 	};
 };
diff --git a/drivers/can/can_net.c b/drivers/can/can_net.c
index a031715..4d9fbde 100644
--- a/drivers/can/can_net.c
+++ b/drivers/can/can_net.c
@@ -372,9 +372,11 @@
 
 static int net_can_init(struct device *dev)
 {
-	struct device *can_dev = device_get_binding(DT_ALIAS_CAN_PRIMARY_LABEL);
+	struct device *can_dev;
 	struct net_can_context *ctx = dev->driver_data;
 
+	can_dev = device_get_binding(DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL);
+
 	ctx->recv_filter_id = CAN_NET_FILTER_NOT_SET;
 #ifdef CONFIG_NET_L2_CANBUS_ETH_TRANSLATOR
 	ctx->eth_bridge_filter_id = CAN_NET_FILTER_NOT_SET;
@@ -383,7 +385,7 @@
 
 	if (!can_dev) {
 		NET_ERR("Can't get binding to CAN device %s",
-			DT_ALIAS_CAN_PRIMARY_LABEL);
+			DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL);
 		return -EIO;
 	}
 
diff --git a/include/devicetree/zephyr.h b/include/devicetree/zephyr.h
index 00402b0..5a58b10 100644
--- a/include/devicetree/zephyr.h
+++ b/include/devicetree/zephyr.h
@@ -44,6 +44,15 @@
  *        a label property, that property's value. Undefined otherwise.
  */
 #define DT_CHOSEN_ZEPHYR_FLASH_CONTROLLER_LABEL ""
+
+/**
+ * @def DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL
+ *
+ * @brief If there is a chosen node zephyr,can-primary property which has
+ *        a label property, that property's value. Undefined otherwise.
+ */
+#define DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL ""
+
 #endif /* DT_DOXYGEN */
 
 #if DT_NODE_HAS_PROP(DT_CHOSEN(zephyr_entropy), label)
@@ -55,6 +64,10 @@
 	DT_LABEL(DT_CHOSEN(zephyr_flash_controller))
 #endif
 
+#if DT_NODE_HAS_PROP(DT_CHOSEN(zephyr_can_primary), label)
+#define DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL \
+	DT_LABEL(DT_CHOSEN(zephyr_can_primary))
+#endif
 /**
  * @}
  */
diff --git a/samples/drivers/CAN/src/main.c b/samples/drivers/CAN/src/main.c
index 4e3a4be..cdb9309 100644
--- a/samples/drivers/CAN/src/main.c
+++ b/samples/drivers/CAN/src/main.c
@@ -195,7 +195,7 @@
 	k_tid_t rx_tid, get_state_tid;
 	int ret;
 
-	can_dev = device_get_binding(DT_ALIAS_CAN_PRIMARY_LABEL);
+	can_dev = device_get_binding(DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL);
 
 	if (!can_dev) {
 		printk("CAN: Device driver not found.\n");
diff --git a/samples/subsys/canbus/canopen/src/main.c b/samples/subsys/canbus/canopen/src/main.c
index ce8f0d2..63bc22f 100644
--- a/samples/subsys/canbus/canopen/src/main.c
+++ b/samples/subsys/canbus/canopen/src/main.c
@@ -15,9 +15,9 @@
 LOG_MODULE_REGISTER(app);
 
 
-#define CAN_INTERFACE DT_ALIAS_CAN_PRIMARY_LABEL
-#define CAN_BITRATE (DT_ALIAS_CAN_PRIMARY_BUS_SPEED / 1000)
-#if !defined(DT_ALIAS_CAN_PRIMARY_LABEL)
+#define CAN_INTERFACE DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL
+#define CAN_BITRATE (DT_PROP(DT_CHOSEN(zephyr_can_primary), bus_speed) / 1000)
+#if !defined(DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL)
 #error CANopen CAN interface not set
 #endif
 
diff --git a/samples/subsys/canbus/isotp/src/main.c b/samples/subsys/canbus/isotp/src/main.c
index 28eda69..f62c9ba 100644
--- a/samples/subsys/canbus/isotp/src/main.c
+++ b/samples/subsys/canbus/isotp/src/main.c
@@ -148,7 +148,7 @@
 	static struct isotp_send_ctx send_ctx_0_5;
 	int ret = 0;
 
-	can_dev = device_get_binding(DT_ALIAS_CAN_PRIMARY_LABEL);
+	can_dev = device_get_binding(DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL);
 	if (!can_dev) {
 		printk("CAN: Device driver not found.\n");
 		return;
diff --git a/tests/drivers/can/api/src/main.c b/tests/drivers/can/api/src/main.c
index 10b8625..f80abb4 100644
--- a/tests/drivers/can/api/src/main.c
+++ b/tests/drivers/can/api/src/main.c
@@ -44,7 +44,7 @@
 #if defined(CONFIG_CAN_LOOPBACK_DEV_NAME)
 #define CAN_DEVICE_NAME CONFIG_CAN_LOOPBACK_DEV_NAME
 #else
-#define CAN_DEVICE_NAME DT_ALIAS_CAN_PRIMARY_LABEL
+#define CAN_DEVICE_NAME DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL
 #endif
 
 CAN_DEFINE_MSGQ(can_msgq, 5);
diff --git a/tests/drivers/can/stm32/src/main.c b/tests/drivers/can/stm32/src/main.c
index e7b56b7..f5086a5 100644
--- a/tests/drivers/can/stm32/src/main.c
+++ b/tests/drivers/can/stm32/src/main.c
@@ -130,7 +130,7 @@
 	int ret, filter_id_1, filter_id_2;
 	struct zcan_frame msg_buffer;
 
-	can_dev = device_get_binding(DT_ALIAS_CAN_PRIMARY_LABEL);
+	can_dev = device_get_binding(DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL);
 
 	ret = can_configure(can_dev, CAN_LOOPBACK_MODE, 0);
 
diff --git a/tests/subsys/canbus/isotp/conformance/src/main.c b/tests/subsys/canbus/isotp/conformance/src/main.c
index 1b461c7..c7fc673 100644
--- a/tests/subsys/canbus/isotp/conformance/src/main.c
+++ b/tests/subsys/canbus/isotp/conformance/src/main.c
@@ -46,7 +46,7 @@
 #if defined(CONFIG_CAN_LOOPBACK_DEV_NAME)
 #define CAN_DEVICE_NAME CONFIG_CAN_LOOPBACK_DEV_NAME
 #else
-#define CAN_DEVICE_NAME DT_ALIAS_CAN_PRIMARY_LABEL
+#define CAN_DEVICE_NAME DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL
 #endif
 
 /*
diff --git a/tests/subsys/canbus/isotp/implementation/src/main.c b/tests/subsys/canbus/isotp/implementation/src/main.c
index 487ef33..931d4be 100644
--- a/tests/subsys/canbus/isotp/implementation/src/main.c
+++ b/tests/subsys/canbus/isotp/implementation/src/main.c
@@ -15,7 +15,7 @@
 #if defined(CONFIG_CAN_LOOPBACK_DEV_NAME)
 #define CAN_DEVICE_NAME CONFIG_CAN_LOOPBACK_DEV_NAME
 #else
-#define CAN_DEVICE_NAME DT_ALIAS_CAN_PRIMARY_LABEL
+#define CAN_DEVICE_NAME DT_CHOSEN_ZEPHYR_CAN_PRIMARY_LABEL
 #endif
 
 /*