From cac263ec3f2aacbf2f3580c74805fcc74f57357a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=AD=20Bol=C3=ADvar?= Date: Wed, 8 Mar 2023 14:39:54 -0800 Subject: [PATCH] snippets: add cdc-acm-console MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This snippet is based on samples/subsys/usb/console. Since it's a snippet, it can be used in any application as long as its requirements are met. This makes it more general purpose. Signed-off-by: Martí Bolívar --- snippets/cdc-acm-console/README.rst | 36 +++++++++++++++++++ snippets/cdc-acm-console/cdc-acm-console.conf | 8 +++++ .../cdc-acm-console/cdc-acm-console.overlay | 17 +++++++++ snippets/cdc-acm-console/snippet.yml | 4 +++ 4 files changed, 65 insertions(+) create mode 100644 snippets/cdc-acm-console/README.rst create mode 100644 snippets/cdc-acm-console/cdc-acm-console.conf create mode 100644 snippets/cdc-acm-console/cdc-acm-console.overlay create mode 100644 snippets/cdc-acm-console/snippet.yml diff --git a/snippets/cdc-acm-console/README.rst b/snippets/cdc-acm-console/README.rst new file mode 100644 index 00000000000..c1d165b771d --- /dev/null +++ b/snippets/cdc-acm-console/README.rst @@ -0,0 +1,36 @@ +.. _snippet-cdc-acm-console: + +CDC-ACM Console Snippet (cdc-acm-console) +######################################### + +.. code-block:: console + + west build -S cdc-acm-console [...] + +Overview +******** + +This snippet redirects serial console output to a CDC ACM UART. The USB device +which should be used is configured using :ref:`devicetree`. + +Requirements +************ + +Hardware support for: + +- :kconfig:option:`CONFIG_USB_DEVICE_STACK` +- :kconfig:option:`CONFIG_SERIAL` +- :kconfig:option:`CONFIG_CONSOLE` +- :kconfig:option:`CONFIG_UART_CONSOLE` +- :kconfig:option:`CONFIG_UART_LINE_CTRL` + +A devicetree node with node label ``zephyr_udc0`` that points to an enabled USB +device node with driver support. This should look roughly like this in +:ref:`your devicetree `: + +.. code-block:: DTS + + zephyr_udc0: usbd@deadbeef { + compatible = "vnd,usb-device"; + /* ... */ + }; diff --git a/snippets/cdc-acm-console/cdc-acm-console.conf b/snippets/cdc-acm-console/cdc-acm-console.conf new file mode 100644 index 00000000000..28103411fc3 --- /dev/null +++ b/snippets/cdc-acm-console/cdc-acm-console.conf @@ -0,0 +1,8 @@ +CONFIG_USB_DEVICE_STACK=y +CONFIG_USB_DEVICE_PRODUCT="Zephyr USB console sample" +CONFIG_USB_DEVICE_PID=0x0004 + +CONFIG_SERIAL=y +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y +CONFIG_UART_LINE_CTRL=y diff --git a/snippets/cdc-acm-console/cdc-acm-console.overlay b/snippets/cdc-acm-console/cdc-acm-console.overlay new file mode 100644 index 00000000000..91e61886e52 --- /dev/null +++ b/snippets/cdc-acm-console/cdc-acm-console.overlay @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2021, 2023 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + chosen { + zephyr,console = &snippet_cdc_acm_console_uart; + }; +}; + +&zephyr_udc0 { + snippet_cdc_acm_console_uart: snippet_cdc_acm_console_uart { + compatible = "zephyr,cdc-acm-uart"; + }; +}; diff --git a/snippets/cdc-acm-console/snippet.yml b/snippets/cdc-acm-console/snippet.yml new file mode 100644 index 00000000000..eab58a30a40 --- /dev/null +++ b/snippets/cdc-acm-console/snippet.yml @@ -0,0 +1,4 @@ +name: cdc-acm-console +append: + OVERLAY_CONFIG: cdc-acm-console.conf + DTC_OVERLAY_FILE: cdc-acm-console.overlay