Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

boards: arm: bl654_usb: Fix USB enablement issues #39987

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions boards/arm/bl654_usb/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Copyright (c) 2021 Laird Connectivity.
# SPDX-License-Identifier: Apache-2.0

if (CONFIG_BOARD_BL654_USB AND CONFIG_BOARD_ENABLE_USB_AUTOMATICALLY)
zephyr_library()
zephyr_library_sources(bl654_usb_enable_usb.c)
endif()
16 changes: 16 additions & 0 deletions boards/arm/bl654_usb/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,19 @@ config BOARD_ENABLE_DCDC
select SOC_DCDC_NRF52X
default y
depends on BOARD_BL654_USB

config BOARD_ENABLE_USB_AUTOMATICALLY
bool "Enable USB automatically"
default y if USB_UART_CONSOLE
depends on BOARD_BL654_USB
help
Will automatically enable the USB peripheral upon boot if USB console
mode is selected, which means manually enabling USB from user-code is
not required

config BOARD_ENABLE_USB_AUTOMATICALLY_INIT_PRIORITY
int "USB automatic init priority"
default 96
depends on BOARD_ENABLE_USB_AUTOMATICALLY
help
Automatic USB peripheral enablement initialisation priority
5 changes: 4 additions & 1 deletion boards/arm/bl654_usb/Kconfig.defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ config FLASH_LOAD_OFFSET
if USB_DEVICE_STACK

config USB_UART_CONSOLE
default y
default y if !USB_DEVICE_BLUETOOTH
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes in this file should be in own commit, which fixes #39904.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lairdjm could you please do that as suggested by @jfischer-no?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@carlescufi this is awaiting a USB fix from @jfischer-no

Copy link
Collaborator

@jfischer-no jfischer-no Nov 24, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For completeness, option USB_UART_CONSOLE is removed, see #40428. Shield approach in #40220 was not accepted. I opened #40645 to continue the discussion.

Anyway, I do not want to accept any USB device support setting at board level anymore. The boards in Zephyr tree should be in minimal configuration, https://docs.zephyrproject.org/latest/guides/porting/board_porting.html#general-recommendations, so no configuration to enable USB support or USB device classes.


config USB_CDC_ACM
default n if USB_DEVICE_BLUETOOTH

config UART_LINE_CTRL
default y
Expand Down
20 changes: 20 additions & 0 deletions boards/arm/bl654_usb/bl654_usb_enable_usb.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* Copyright (c) 2021 Laird Connectivity
*
* SPDX-License-Identifier: Apache-2.0
*/

#include <zephyr.h>
#include <init.h>
#include <usb/usb_device.h>

static int usb_enable_boot(const struct device *dev)
{
ARG_UNUSED(dev);
usb_enable(NULL);

return 0;
}

SYS_INIT(usb_enable_boot, POST_KERNEL,
CONFIG_BOARD_ENABLE_USB_AUTOMATICALLY_INIT_PRIORITY);