@@ -31,7 +31,7 @@ static int s_uart_fd;
3131static uint8_t s_uart_buffer [ESP_OPENTHREAD_UART_BUFFER_SIZE ];
3232static const char * uart_workflow = "uart" ;
3333
34- #if (CONFIG_OPENTHREAD_CLI || (CONFIG_OPENTHREAD_RADIO && CONFIG_OPENTHREAD_RCP_UART ))
34+ #if (CONFIG_OPENTHREAD_CLI || (CONFIG_OPENTHREAD_RADIO && ( CONFIG_OPENTHREAD_RCP_UART || CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG ) ))
3535otError otPlatUartEnable (void )
3636{
3737 return OT_ERROR_NONE ;
@@ -116,6 +116,7 @@ esp_err_t esp_openthread_host_cli_uart_init(const esp_openthread_platform_config
116116}
117117#endif
118118
119+ #if CONFIG_OPENTHREAD_RCP_UART
119120esp_err_t esp_openthread_host_rcp_uart_init (const esp_openthread_platform_config_t * config )
120121{
121122 esp_err_t ret = ESP_OK ;
@@ -135,6 +136,28 @@ esp_err_t esp_openthread_host_rcp_uart_init(const esp_openthread_platform_config
135136
136137 return ret ;
137138}
139+ #endif
140+
141+ #if CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG
142+ esp_err_t esp_openthread_host_rcp_usb_init (const esp_openthread_platform_config_t * config )
143+ {
144+ esp_err_t ret = ESP_OK ;
145+
146+ usb_serial_jtag_vfs_set_rx_line_endings (ESP_LINE_ENDINGS_LF );
147+ usb_serial_jtag_vfs_set_tx_line_endings (ESP_LINE_ENDINGS_LF );
148+
149+ ESP_ERROR_CHECK (usb_serial_jtag_driver_install ((usb_serial_jtag_driver_config_t * )& config -> host_config .host_usb_config ));
150+ ESP_ERROR_CHECK (usb_serial_jtag_vfs_register ());
151+ usb_serial_jtag_vfs_use_driver ();
152+
153+ s_uart_fd = open ("/dev/usbserjtag" , O_RDWR | O_NONBLOCK );
154+ ESP_RETURN_ON_FALSE (s_uart_fd >= 0 , ESP_FAIL , OT_PLAT_LOG_TAG , "open usbserjtag failed" );
155+ ret = esp_openthread_platform_workflow_register (& esp_openthread_uart_update , & esp_openthread_uart_process ,
156+ uart_workflow );
157+
158+ return ret ;
159+ }
160+ #endif
138161
139162void esp_openthread_uart_deinit ()
140163{
@@ -159,7 +182,7 @@ esp_err_t esp_openthread_uart_process(otInstance *instance, const esp_openthread
159182 int rval = read (s_uart_fd , s_uart_buffer , sizeof (s_uart_buffer ));
160183
161184 if (rval > 0 ) {
162- #if (CONFIG_OPENTHREAD_CLI || (CONFIG_OPENTHREAD_RADIO && CONFIG_OPENTHREAD_RCP_UART ))
185+ #if (CONFIG_OPENTHREAD_CLI || (CONFIG_OPENTHREAD_RADIO && ( CONFIG_OPENTHREAD_RCP_UART || CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG ) ))
163186 otPlatUartReceived (s_uart_buffer , (uint16_t )rval );
164187#endif
165188 } else if (rval < 0 ) {
0 commit comments