1# Copyright (c) 2025 Espressif Systems (Shanghai) Co., Ltd.
2# SPDX-License-Identifier: Apache-2.0
3
4if SOC_FAMILY_ESPRESSIF_ESP32
5
6DT_CHOSEN_Z_CONSOLE := zephyr,console
7
8if !$(dt_chosen_enabled,$(DT_CHOSEN_Z_CONSOLE))
9
10config ESP_CONSOLE_UART_NUM
11	int
12	default -1
13
14config ESP_CONSOLE_UART_BAUDRATE
15	int
16	default 0
17
18endif # !$(dt_chosen_enabled,$(DT_CHOSEN_Z_CONSOLE))
19
20if $(dt_chosen_enabled,$(DT_CHOSEN_Z_CONSOLE))
21
22if $(dt_nodelabel_enabled,uart0)
23	ESP32_UART0_NODE_PATH := $(dt_nodelabel_path,uart0)
24	ESP32_UART0_CURR_SPEED := $(dt_node_int_prop_int,$(ESP32_UART0_NODE_PATH),current-speed)
25endif # $(dt_nodelabel_enabled,uart0)
26
27if $(dt_nodelabel_enabled,uart1)
28	ESP32_UART1_NODE_PATH := $(dt_nodelabel_path,uart1)
29	ESP32_UART1_CURR_SPEED := $(dt_node_int_prop_int,$(ESP32_UART1_NODE_PATH),current-speed)
30endif # $(dt_nodelabel_enabled,uart1)
31
32if $(dt_nodelabel_enabled,uart2)
33	ESP32_UART2_NODE_PATH := $(dt_nodelabel_path,uart2)
34	ESP32_UART2_CURR_SPEED := $(dt_node_int_prop_int,$(ESP32_UART2_NODE_PATH),current-speed)
35endif # $(dt_nodelabel_enabled,uart2)
36
37if $(dt_nodelabel_enabled,usb_serial)
38	ESP32_USB_SERIAL_CURR_SPEED := 1
39
40config ESP_ROM_USB_SERIAL_DEVICE_NUM
41	int
42	default 4 if SOC_SERIES_ESP32S3
43	default 3
44
45endif # $(dt_nodelabel_enabled,usb_serial)
46
47config ESP_CONSOLE_UART
48	bool
49	default y if $(dt_nodelabel_enabled,uart0) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,uart0) || \
50		     $(dt_nodelabel_enabled,uart1) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,uart1) || \
51		     $(dt_nodelabel_enabled,uart2) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,uart2)
52
53config ESP_CONSOLE_USB_SERIAL_JTAG
54	bool
55	default y if $(dt_nodelabel_enabled,usb_serial) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,usb_serial)
56
57config ESP_CONSOLE_UART_NUM
58	int
59	default 0 if $(dt_nodelabel_enabled,uart0) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,uart0)
60	default 1 if $(dt_nodelabel_enabled,uart1) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,uart1)
61	default 2 if $(dt_nodelabel_enabled,uart2) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,uart2)
62	default ESP_ROM_USB_SERIAL_DEVICE_NUM if $(dt_nodelabel_enabled,usb_serial) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,usb_serial)
63	default -1
64
65config ESP_CONSOLE_UART_BAUDRATE
66	int
67	default $(ESP32_UART0_CURR_SPEED) if $(dt_nodelabel_enabled,uart0) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,uart0)
68	default $(ESP32_UART1_CURR_SPEED) if $(dt_nodelabel_enabled,uart1) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,uart1)
69	default $(ESP32_UART2_CURR_SPEED) if $(dt_nodelabel_enabled,uart2) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,uart2)
70	default $(ESP32_USB_SERIAL_CURR_SPEED) if $(dt_nodelabel_enabled,usb_serial) && $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CONSOLE)) = $(dt_nodelabel_reg_addr_hex,usb_serial)
71	default 0
72
73config ESP_CONSOLE
74	bool
75	default y if ESP_CONSOLE_UART || ESP_CONSOLE_USB_SERIAL_JTAG
76
77endif # $(dt_chosen_enabled,$(DT_CHOSEN_Z_CONSOLE))
78
79endif # SOC_FAMILY_ESPRESSIF_ESP32
80