Commit Graph

479 Commits

Author SHA1 Message Date
Benjamin Cabé
776c0cab9a doc: boards: nordic: Adopt zephyr:board directives
Migrate all Nordic boards to leverage the full extent of zephyr:board
directives.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-03-31 22:00:02 +02:00
Benedek Kupper
f5b3362c79 samples: usb: hid-keyboard: enable and use remote wakeup on button press
USB remote wakeup capability is a common feature of keyboards,
allowing them to wake up a suspended host. Currently there is no USB sample
that demonstrates remote wakeup, which makes basic evaluation of the
functionality non-trivial.

Modify the hid-keyboard sample with a minimalistic solution
of demonstrating remote wakeup capability. While it is not required to have
been configured prior to suspend to issue a wakeup request, from usability
perspective I'd say it makes sense.

Signed-off-by: Benedek Kupper <kupper.benedek@gmail.com>
2025-03-27 21:32:42 +01:00
Tomasz Moń
75109707e3 usb: device_next: Do not add serial number without HWINFO
For many devices iSerialNumber is not required. The only device class
currently supported in Zephyr that requires iSerialNumber is MSC. If the
serial number is not available then iSerialNumber must be 0. Failure to
read the string descriptor for non-zero iSerialNumber fails USB Command
Verifier Chapter 9 tests.

When USBD_DESC_SERIAL_NUMBER_DEFINE() was used without CONFIG_HWINFO
then it did lead to runtime failure when requesting the string (thus
failing certification).

Fail USBD_DESC_SERIAL_NUMBER_DEFINE() at build-time if CONFIG_HWINFO is
not set to prevent the surprise at runtime. Only define serial number
descriptors if CONFIG_HWINFO is enabled.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2025-03-26 16:18:56 +01:00
Mahesh Mahadevan
f48344364c sample: usb_dfu: Exclude NXP RT700 board
This board does not have Flash support enabled yet.
Re-enable this sample once Flash and MCUboot support is
added.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2025-03-07 19:48:38 +01:00
Alberto Escolar Piedras
6c38bc8ec4 boards native_posix: Remove twister support
native_posix is being removed as it has reached its end of life in 4.2,
after being deprecated since 4.0.

Remove the twister support for native_posix[//64] and therefore all
references to them from the testcases and samples yamls, so twister
does not error out.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-03-07 19:16:14 +01:00
Tomasz Moń
5595de3f68 samples: usb: uac2: Warn about Windows driver issues
The UAC2 samples do not work with Windows UAC2 driver because:
  * driver does not support implicit feedback
  * driver expects wMaxPacketSize equal 4 on Full-Speed device

The only correct place to solve these issues is the Windows UAC2 driver.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2025-03-05 21:52:00 +00:00
IBEN EL HADJ MESSAOUD Marwa
1a12889561 samples: usb: dfu-next: make the sample testable
Add a console harness to check that the example has
started successfully.

Signed-off-by: IBEN EL HADJ MESSAOUD Marwa <marwa.ibenelhadjmessaoud-ext@st.com>
2025-03-04 12:17:34 +00:00
Johann Fischer
9cb0fbf80d usb: device_next: fix Get Status request response
We need to track the self-powered status of the device independently of
the D6 bit in the bmAttributes value of the configuration descriptor
because the Get Status request about the self-powered status is valid in
address state and we support multiple configurations.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-02-28 14:51:53 +01:00
Benjamin Cabé
af28c00679 samples: doc: drop obsolete modemanager notice
As part of cleaning up usage of non-inclusive language in-tree,
I spotted an obsolete mention to a udev rule that ModemManager doesn't
use anymore. Drop it.
See commit 9639e52726854782508e35a75c6abf874bd9e608 in ModemManager
repo.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-02-19 18:48:15 +01:00
Johann Fischer
5914131852 samples: usb: clean up legacy USB CDC ACM console sample
Remove the configuration for the new USB device stack, as there is now a
separate sample that demonstrates how to use it with Kconfig option
CONFIG_CDC_ACM_SERIAL_INITIALIZE_AT_BOOT.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-02-12 02:22:18 +01:00
Johann Fischer
be5e666eb3 samples: usb: add console sample for the new USB device stack
Add sample to shows how to use the CDC ACM UART provided by the new
experimental USB device stack as a serial backend for the console.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-02-12 02:22:18 +01:00
Johann Fischer
4a3ce3334e samples: usb: midi: use correct Class Code triple
USB MIDI2 implementation has IAD and should use an appropriate triple to
indicate it.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-02-06 17:49:12 +01:00
Johann Fischer
2914174d27 doc: usb: minor fixes to improve consistency
Follow-up on newly introduced USB MIDI2 support.
Prefix with usbd_, use midi2 consistently.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-02-06 17:49:12 +01:00
Johann Fischer
694c342885 samples: usb: add sample for the new USB DFU implementation
The sample defines an image that uses RAMdisk and also provides an
option to enable USB DFU flash backend for the "slot-1" flash partition.
Assuming the user runs this sample from the slot-0 partition, uploading
to flash should work fine for evaluation purposes.

If the sample is built with CONFIG_BOOTLOADER_MCUBOOT=y, the sample will
mark the image in slot 1 as pending after an image download.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-02-04 11:55:25 +01:00
Johann Fischer
3bfe163811 usb: device_next: implement blocklist for classes
In the usbd_register_all_classes(), we may need to skip some instances
as they may have very specific function like USB DFU "DFU mode" which
should not be available by default.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-02-04 11:55:25 +01:00
Titouan Christophe
9be79bc145 samples: subsys: usb: midi: add new sample
Add a sample application that demonstrates how to use the new USB-MIDI 2.0
device class. This shows how to set up the device tree, how to exchange
MIDI data with the host, and how to use the data accessors provided by
the new API.

Signed-off-by: Titouan Christophe <moiandme@gmail.com>
2025-01-31 19:50:26 +01:00
Mahesh Mahadevan
85bdab00de soc: mimxrt1180: Add USB support
This was tested on the MIMXRT1180 EVK board

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2025-01-30 18:29:33 +01:00
Johann Fischer
81dc390115 usb: device_next: add bulk transfers to loopback function
This allows us to use the testusb Linux kernel tool again. All tests
involving control and bulk transfers should pass. Additionally, add a
shell command that allows the user to manually enqueue bulk transfers.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-01-29 04:16:42 +01:00
Gerson Fernando Budke
9e08560f08 samples: usb: dfu: Exclude Atmel SAM
The dfu sample filter seems not to work. It should select only boards
when slot0_partition and slot1_partition are define.

filter:
    dt_label_with_parent_compat_enabled("slot0_partition",
					"fixed-partitions")
and dt_label_with_parent_compat_enabled("slot1_partition",
					"fixed-partitions")
and dt_chosen_enabled("zephyr,flash-controller")
and CONFIG_FLASH_HAS_DRIVER_ENABLED

This means that sam4l_ek, same54_xpro and samr21_xpro should never be
selected because the final devicetree is defined without those
partitions. See below fragment from same54_xpro:

nvmctrl: nvmctrl@41004000 {
	compatible = "atmel,sam0-nvmctrl";
	reg = < 0x41004000 0x22 >;
	interrupts = < 0x1d 0x0 >, < 0x1e 0x0 >;
	#address-cells = < 0x1 >;
	#size-cells = < 0x1 >;
	lock-regions = < 0x20 >;
	flash0: flash@0 {
		compatible = "soc-nv-flash";
		write-block-size = < 0x8 >;
		reg = < 0x0 0x100000 >;
		partitions {
			compatible = "fixed-partitions";
			#address-cells = < 0x1 >;
			#size-cells = < 0x1 >;
			storage_partition: partition@fc000 {
				label = "storage";
				reg = < 0xfc000 0x4000 >;
			};
		};
	};
};

This excludes same54_xpro and samr21_xpro to avoid ci issues until ci
filter is fixed.

Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2025-01-24 13:15:57 +01:00
Fabio Baltieri
b0791400f6 usb: device_next: cdc_acm: allow setting the interface description
Add a interface-name string for the CDC-ACM node, this allow setting a
string that is then set as iInterface, which can then be used downstream
in an udev rule such as:

SUBSYSTEM=="tty", ACTION=="add",
ATTRS{interface}=="my interface descriptor",
SYMLINK+="tty-my-device"

To create known aliases for these ports.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-01-24 01:14:28 +01:00
David Leach
d29e2f342d boards: nxp: add RT1060 EVKC support
MIMXRT1060 EVK rev C initial support files.

Signed-off-by: David Leach <david.leach@nxp.com>
2025-01-21 19:27:39 +01:00
Declan Snyder
8ed80ddb37 boards: mimxrt1060_evk: Convert to variants
Convert qspi and hyperflash to variants instead of revisions by popular
demand.

And convert evkb into a revision instead of a different board.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-12-20 22:59:59 +01:00
Declan Snyder
0cdb35d978 boards: mimxrt1050_evk: Switch to variants
Switch from using revisions for hyperflash/qspi to using variants, by
popular demand.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-12-20 22:59:59 +01:00
Johann Fischer
65a603f12e samples: webusb-next: fix USB function buffer alignment
Use proper macro for buffer definition.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-12-17 11:38:22 +00:00
Johann Fischer
704b36f78f usb: device_next: remove redundant memset() after net_buf_alloc.*()
With changes introduced in commit 6a3602a306
("net: buf: Clear `user_data` on allocation")
our memset() calls are redundant.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-12-17 11:38:22 +00:00
Neil Chen
d031444b73 samples: usb: Exclude frdm_mcxa156 platform from dfu sample
Exclude the platform frdm_mcxa156 from dfu sample.

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2024-12-16 10:52:51 +01:00
Neil Chen
ef4e2b2463 samples: usb: Exclude frdm_mcxc444 platform from dfu sample
frdm_mcxc444 does not support MCUboot. Exclude the platform from dfu
sample.

Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
2024-12-12 11:09:03 +01:00
Gerard Marull-Paretas
d4a67e321b samples, tests: remove usage of space-separated lists
Convert them to native YAML lists. Support for space-separated
lists was deprecated in Twister a long time ago.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2024-12-04 14:14:53 -05:00
ZhongYao Luo
188a42b117 usb: device: fix unaligned memory access in Audio class
Use UNALIGNED_*, sys_get_* to fix unaligned memory
access issues

Signed-off-by: ZhongYao Luo <LuoZhongYao@gmail.com>
2024-11-26 15:44:45 -05:00
Johann Fischer
1687e192b5 samples: usb: add new WebUSB sample
Add a WebUSB sample that uses the new USB device support.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-11-19 09:53:29 -05:00
Johann Fischer
2d90df407f samples: usb: add samples function to setup USB device only
Add a function similar to sample_usbd_init_device(), but one that does
not initialize the device. It allows the application to set additional
features, such as additional descriptors.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-11-19 09:53:29 -05:00
Michal Smola
c76b984aae samples: usb: Exclude frdm_mcxc242 platform from dfu sample
frdm_mcxc242 does not support MCUboot. Exclude the platform from dfu
sample.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2024-10-25 05:11:44 +01:00
Jukka Rissanen
cc7d932cce samples: usb: common: Add NCM when setting code triple
Add NCM class to sample usbd initialization and the code
triple is set properly.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-17 15:38:00 -04:00
Andrej Butok
e53eec0851 yaml: use EXTRA_CONF_FILE in .yaml files
Use EXTRA_CONF_FILE in sample yaml files,
that replaced deprecated OVERLAY_CONFIG
since the Zephyr v3.4 release.

Signed-off-by: Andrej Butok <andrey.butok@nxp.com>
2024-10-17 09:45:25 +02:00
Benjamin Cabé
1db9b009a7 doc: samples: Adopt code-sample-category across tree
This commit uses the new .. zephyr:code-sample-category directive to
categorize code samples across the tree.
Updates existing legacy references to manually defined targets to now
use :zephyr:code-sample-category: role instead.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-09-23 12:00:00 +02:00
Benjamin Cabé
9a16b93868 samples: hello_world: use zephyr:code-sample directive
Adds missing code-sample directive to the Hello World sample in
preparation for upcoming changes to the Zephyr documentation that will
be leveraging the provided description and metadata.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-09-16 10:05:18 +02:00
Benjamin Cabé
df294e34e1 doc: sphinx-lint: fix bad usage of "default role"
Fixes bad usage of single backticks in lieu of double backticks for
rendering inline literals, or simple '*' for italics.

When appropriate, a better construct than double backticks has been
selected (ex. :file:, :kconfig:option:, :c:func:, ...), or proper :ref:
have been used if the original intention was to have a link.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-09-13 11:42:51 -05:00
Fabio Baltieri
e2bfd83522 samples: usb/mass: fix board name for adafruit_feather_nrf52840_sense
The Adafruit feather boards have been converted to variants, use the
correct board name.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-09-10 12:36:16 -04:00
Tomasz Moń
67cd569216 samples: usb: uac2: Add full-speed instance property
The samples were written when UAC2 class supported only full-speed and
it was not clear how the high-speed would be supported.

Add the full-speed property so the samples can work with updated UAC2
implementation.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-09-10 14:41:32 +01:00
Tomasz Moń
aa6319dcfd usb: device_next: msc: Allow user to sort LUNs
Modify USBD_DEFINE_MSC_LUN() to take in separate id by which the LUNs
are sorted. Previously the disk name itself was implicitly used as a
sorting key. This is a breaking change to Experimental API.

Another advantage of splitting the sorting id from disk name is the
ability to use KConfig symbols as disk name. Currently the MMC disk
driver uses KConfig symbol CONFIG_MMC_VOLUME_NAME.

Mark LUN definitions as static const because the LUNs are ending up in
ITERABLE_SECTION_ROM().

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-09-04 07:03:06 -04:00
Tomasz Moń
d3e1bc8b59 samples: usb: add UAC2 implicit feedback sample
The sample illustates how to achieve bidirectional asynchronous audio.
Implicit feedback is the only way to achieve asynchronous USB headset
on devices that have only one isochronous IN and one isochronous OUT
endpoint.

The sample implements stereo playback and mono recording. While it would
be possible to have stereo recording, the commonly available headsets
are mono only. The number of channels can differ between audio sink and
source because the only requirement is that the two run on same clock.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-08-26 11:27:30 -04:00
Johann Fischer
f851cad162 usb: device_next: add device configuration change notification
Notify only if the device configuration has changed. Pass only the
configuration value as the message status, the actual device speed can
be obtained with usbd_bus_speed().

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-08-16 08:50:25 -04:00
Johann Fischer
4dd1681fab samples: usb: remove hid sample
Clean up before deprecating legacy device support. This sample does not
contain anything special that is not present in the hid-mouse or
hid-keyboard samples. It also makes no sense to port it to a new stack.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-08-05 16:28:09 +02:00
Johann Fischer
cd9dff7d8c samples: usb: remove cdc_acm_composite sample
Clean up before deprecating legacy device support. Remove
cdc_acm_composite sample, which is not much different than cdc_acm, but
uses two virtual UART interfaces.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-08-05 16:28:09 +02:00
Johann Fischer
b50646b338 sample: usb: cdc_acm: remove configuration overlays
Clean up before deprecating legacy device support. Remove configuration
overlay for DFU and MSC, which does not add much value since we have
dedicated samples anyway.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-08-05 16:28:09 +02:00
Fabio Baltieri
bb4af13da0 samples: fix adafruit_feather board name
This has been renamed in b6ed4ba761, the current entry is causing a CI
breakage for unrecognized platform.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-08-01 14:56:25 +02:00
Jordan Yates
6bbb2079f2 samples: usb: mass: filter by supported disk types
Some boards claim `sdhc` support but use the `zephyr,mmc-disk`
instead of `zephyr,sdmmc-disk` compatible, with the former not being
compatible with this sample.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-08-01 09:15:31 +01:00
Jordan Yates
8dd90f52f3 samples: usb: mass: move check to compile time
Move the check for valid disk drivers to compile time to enable twister
to run the configure step without errors.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-08-01 09:15:31 +01:00
Henrik Brix Andersen
196c9635d8 usb: device_next: rename usbd_device_set_bcd()
Rename usbd_device_set_bcd() to usbd_device_set_bcd_usb() to make room for
other BCD encoded values being set.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2024-08-01 09:11:44 +01:00
Fabio Baltieri
716fa268f4 input: add a user_data pointer to the callback
Add a void *user_data pointer to the input callback structure. This is
useful for driver to get back the driver data structure and avoid
defining wrapper functions.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-07-31 12:55:11 +02:00