Add some missing clock sources and reorganize them to class the PLL outputs
together for STM32F4 and F7.
Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
The format currently expected by devices and sample display
application for BGR_565 is actually RGB_565 format with bytes
swapped (not B / R swapped). That is:
PIXEL_FORMAT_RGB_565:
* @code{.unparsed}
* 7......0 15.....8
* | gggBbbbb RrrrrGgg | ...
* @endcode
current PIXEL_FORMAT_BGR_565:
* @code{.unparsed}
* 7......0 15.....8
* | RrrrrGgg gggBbbbb | ...
* @endcode
This is explained in both st7796s display driver but also is
what is generated by the sample display application. As a video
format (ex: V4L2), such format is not mentioned as BGR (for
which R and B are swapped) but RGB_565X.
Within the whole Zephyr tree, rename the curremt BGR_565 format
into RGB_565X in order to emphasis that this is a byte swapped
format rather than a B/G component swapped format.
This also correct the description of the format in display.h
file, which wasn't correct based on what was being used by
display driver or sample display app.
Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Add documentation for the setpath flags parameter by defining a new
enum bt_obex_setpath_flags that describes the available flags:
- BT_OBEX_SETPATH_FLAG_BACKUP: backup a level before applying name
- BT_OBEX_SETPATH_FLAG_NO_CREATE: don't create folder if it doesn't exist
Update the documentation for bt_obex_setpath() and the setpath callback
in bt_obex_server_ops to reference the new enum, improving clarity for
users of the OBEX setpath operation.
Signed-off-by: Can Wang <can.wang@nxp.com>
According to OBEX Version 1.5, section 2.2.9, it is legal to send a
zero-length End-of-Body header when object body data is generated on
the fly and the end cannot be anticipated.
Update parameter validation in bt_obex_add_header_body_or_end_body()
and bt_obex_add_header_end_body() to allow NULL body pointer when
length is zero, while still rejecting NULL body with non-zero length.
This enables proper support for zero-length End-of-Body headers as
specified in the OBEX specification.
Signed-off-by: Can Wang <can.wang@nxp.com>
Add a new helper function bt_obex_has_app_param() to check whether
a specific application parameter tag exists in the OBEX buffer.
The function uses the existing bt_obex_get_header_app_param() to
retrieve the application parameters, then parses them using
bt_obex_tlv_parse() with a callback to search for the specified tag ID.
This simplifies checking for the presence of application parameters
without needing to manually parse the TLV structure.
Signed-off-by: Can Wang <can.wang@nxp.com>
Introduce bt_le_per_adv_sync_cb_unregister to allow
unregistering of the periodic sync callbacks.
Signed-off-by: Antoni Duda <antoni.duda@programmer.net>
Introduce a new OTP subsystem to be able to interact with One Time
Programmable(OTP) memory. For now, add basic read()/program() APIs.
Program() API is default disabled due to its sensitivity.
File drivers/otp.h is inspired by drivers/eeprom.h as the basic
features are similar.
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
We modified the Microchip MEC UART driver to be HAL
independent and be usuable on all MEC SoCs. The only
hardware difference is an extra register in the MEC174x/5x
family providing TX FIFO full and current byte count.
Signed-off-by: Scott Worley <scott.worley@microchip.com>
The explicit, and internal, _CONCAT_\d macros are used in a few
files instead of the public CONCAT() macro which automatically
expands to the correct _CONCAT_\d macro based on number of args
passed to it. Update files to use CONCAT().
Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
Macros __in_section_unique() and __in_section_unique_named() use
___in_section with __FILE__ argument to create a unique section name.
Since __FILE__ is a string, calling Z_STRINGIFY(__FILE__) in
___in_section() causes double quotes in __FILE__ value to be masked.
This prevents ld from matching section names output by this script.
For example, when using CONFIG_CODE_DATA_RELOCATION to relocate
a noinit section, __in_section_unique() generates the following
section name:
KEEP(*file.c.obj(.noinit."WEST_TOPDIR/path/file.c".symbol))
Besides, __FILE__ is used to create unique sections in two macros,
so why not unify this approach.
This fix adds ___in_section_unique() macro, which substitutes __FILE__
string into section name without additional stringification. Thus,
resulting section is correctly matched by ld.
Signed-off-by: Nikita Divakov <grommerin@gmail.com>
This patch adds a new Kconfig option that allows read-only data sections
without relocations to be mapped directly (remain in flash) instead of
being copied to RAM during extension loading. This helps extensions that
have large constant data, such as certificates, lookup tables etc.. to
save saving significant RAM, especially with MPU is enabled.
This feature requires the extension to place rodata sections without
relocations in LLEXT_RODATA_NO_RELOC section.
Note that we chose to disable this optimization when MMU or USERSPACE is
enabled because the NO_RELOC section may not be aligned to the MPU/MMU
requirements on some architectures. If we leave it in place, llext will
attempt to create an MPU region for it using a misaligned address, and
if we allow it to be copied to RAM, it defeats the purpose of this feature.
Signed-off-by: Ibrahim Abdalkader <i.abdalkader@gmail.com>
This commit fixes an issue reported by LLVM Clang compiler
when building with -Wunaligned-access:
```
bluetooth/hci_types.h:4044:2: error: field within
'struct bt_hci_le_cs_step_data_mode_1'
is less aligned than 'union bt_hci_le_cs_step_data_mode_1::
(include/zephyr/bluetooth/hci_types.h:4044:2)' and is usually due to
'struct bt_hci_le_cs_step_data_mode_1' being packed, which can lead
to unaligned accesses [-Werror,-Wunaligned-access]
```
and similar issues for other CS-specific types containing
unions
Signed-off-by: Ivan Iushkov <ivan.iushkov@nordicsemi.no>
Add MAX31331 RTC driver, an ultra-low-power real-time clock (RTC)
that provides timekeeping with
extremely low current consumption (65 nA).
Signed-off-by: Francis Roi Manabat <francisroi.manabat@analog.com>
Replaced display-controller.yaml with lcd-controller.yaml
Deleted pixel format property, replacing it with the
property on lcd-controller.yaml. Replace ILI9XXX RGB macro
with PANEL RGB macro. Also, added condition to verify pixel
format is RGB565, BRG565 or RGB888, otherwise it will show error
Replaced <zephyr/dt-bindings/display/ili9xxx.h> with
<zephyr/dt-bindings/display/panel.h> and
ILI9XXX_PIXEL with PANEL_PIXEL in some Devicetrees
and files that contained both elements. Fixed some
script sintax. Deleted drivers/display/display_ili9xxx.c
Signed-off-by: Nicolas Moreno <niko722795@gmail.com>
ILI9341 is not deploying correctly the display sample.
The screen looks mirrored vertically and the color
doesn't match with the sequence expected. To fix it,
change the Memory Access Control configuration data.
Signed-off-by: Nicolas Moreno <niko722795@gmail.com>
A new error code FS_MGMT_ERR_FILE_CLOSE_FAILED is returned when
closing a file fails. This is done on write or close operations - read
operations remain unchecked.
Signed-off-by: Samuel Kleiser <s.kleiser@vega.com>
Reorganize Bluetooth Classic API documentation by moving existing files
(SDP, RFCOMM, A2DP, HFP) into a new `classic/` subdirectory and adding
new documentation files for L2CAP BR/EDR, AVRCP, GOEP, and BIP.
Changes include:
- Move existing Classic API docs to subdirectory `classic/`
- Add new L2CAP BR/EDR documentation
- Add AVRCP, GOEP, and BIP API reference documentation
- Update HFP documentation to include both HFP Unit and HFP-AG sections
- Update index.rst to reflect new directory structure
- Add Doxygen group documentation to AVRCP header
- Update AVRCP Cover Art to be a subgroup of AVRCP
- Fix L2CAP BR/EDR Doxygen group name and description
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Add a new API to look up a memory region's index using its DeviceTree
node name. This allows callers to identify specific regions within the
internal regions array.
Includes unit tests for successful lookups and error handling for
non-existent names.
Signed-off-by: Firas Sammoura <fsammoura@google.com>
Add infrastructure for SoCs to define additional PMP regions
that need protection beyond the standard ROM region. This uses
iterable sections to collect region definitions at link time.
The PMP_SOC_REGION_DEFINE macro allows SoCs to register memory
regions with specific permissions. These regions become global
PMP entries shared between M-mode and U-mode.
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
add DT_ANY_INST_REG_HAS_NAME_STATUS_OKAY
and DT_ALL_INST_REG_HAS_NAME_STATUS_OKAY
to check if any instance has a register with a specific
name.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
Handle the case if driver is not implementing get_properties_copy().
Document the behaviour and add a note that the method is optional and
users need to be handle the case that not all drivers will have this
method defined.
Also add documentation on error codes. Drivers should use -ENOENT if
no properties are defined for the device. This matches behaviour of
dai_get_properties() returning NULL if there are no properties.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Although we have the three layers, SWDP driver API, DAP stack, and USB
backend, to implement a debug probe, there is no way for the user to
instantiate the DAP context, which would allow it to be used with
different backends or to change the configuration at runtime.
The Debug Access Port (DAP) is an implementation of the ARM Debug
Interface (ADI) that is typically integrated into SoC.
With all three layers, we implement a link to the DAP on the SoC.
Let's call it Zephyr DAP Link and use the dap_link prefix. There is also
a MBED DAPLink project that implements similar functionality, but using
a different name would likely cause more confusion.
Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
Although the DAP subsystem is the only user in the tree, yet, we may have
other subsystems, libraries, or simple samples that could use this API
in the future.
Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
The net_linkaddr struct used to use pointers instead of copying the
data. Thankfully this was fixed in
https://github.com/zephyrproject-rtos/zephyr/pull/87027.
Remove the old comment to reflect the current state.
Signed-off-by: Stefan Gloor <stefan.gloor@siemens.com>
Add Espressif platform and variant IDs to hci_vs.h for ESP32 family
SoCs (ESP32, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-H2).
Add Espressif Systems to vs_hw_platform() and vs_hw_variant()
functions in hci_core.c for proper vendor identification.
Use CONFIG_SOC_FAMILY guards in vs_hw_variant() to reduce flash
usage by only compiling variant strings for the active SoC family.
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
This driver is currently only supporting the polling-mode read_and_decode
APIs (both blocking and non-blocking).
The driver implements a chip_api structure which has to be used to
provide device specific callbacks. The only lsm6dsvxxx family device
currently supported is lsm6dsv320x.
More information about LSM6DSV16X:
https://www.st.com/resource/en/datasheet/lsm6dsv320x.pdf
Signed-off-by: Armando Visconti <armando.visconti@st.com>
The Device Tree property names that are common to lsm6dsv16x and
lsm6dsv32x drivers are now prefixed with LSM6DSVXXX_ (and not
LSM6DSV16X_) just for the sake of clarity.
Signed-off-by: Armando Visconti <armando.visconti@st.com>
Add Support for MAX30210, a low-power,
high-accuracy digital temperature sensor
operating from a 1.7 V to 2.0 V supply.
Signed-off-by: Francis Roi Manabat <francisroi.manabat@analog.com>
When the response has been sent completely to the client, the server
reports the new `HTTP_SERVER_TRANSACTION_COMPLETE` status. Together with
the existing `HTTP_SERVER_TRANSACTION_ABORTED` status, the application
can now also for successful completions of requests clean up any
resources allocated for handling the request.
This especially allows to dynamically allocate the response buffer
passed to the server in the request callback and free it when the
request is done.
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
Rename enum http_data_status to enum http_transaction_status
to better reflect its purpose, which is to indicate the status of the
overall HTTP transaction, not just data transfer.
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
The csr_*() macros and Smcsrind indirect CSR access helpers in csr.h
are C-only constructs using GNU C statement expressions, but csr.h is
also included from assembly sources when building with -D_ASMLANGUAGE.
Guard all C-only macros and functions so they are not seen by the
assembler, leaving only the numeric CSR definitions in the common
(ASM+C) section.
Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
Fixes this define leaking into all application source files when
the feature is not even enabled
Co-authored-by: Chris Friedt <cfriedt@tenstorrent.com>
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Rework the Intel Audio DSP host IPC service backend to use the generic
ipc_service data/len conventions and the new critical send and buffer
management APIs.
Replace the backend-specific intel_adsp_ipc_msg and related enums with a
simple two-word payload passed through the standard ipc_service_send()
and ipc_service_send_critical() interfaces, and adapt the ISR and
receive callback to operate on this representation.
Use ipc_service_get_tx_buffer_size() as a readiness check for the host
channel and provide hold_rx_buffer() / release_rx_buffer()
implementations so ipc_service_release_rx_buffer() can be used to signal
when the channel becomes available again.
Wire the emergency send path through send_critical() to route urgent
messages via the backend's emergency fast path while keeping the normal
IPC flow unchanged.
Move the synchronous IPC wait logic out of the Intel Audio DSP host IPC
backend and into the common intel_adsp_ipc helper used by tests.
Update intel_adsp_ipc_send_message_sync() to both send the IPC message
through ipc_service_send() and wait on the backend semaphore, and remove
the now redundant ipc_send_message_sync() helper from the host IPC
backend.
Document that intel_adsp_ipc_send_message_sync() is a test-only helper,
not used by SOF firmware, and that it is a candidate for future removal
or for replacement by an explicit synchronous send primitive in the
generic IPC service API or in application code.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
Add ipc_service_send_critical() as a dedicated API for sending critical
high-priority messages over an IPC endpoint.
Introduce an optional send_critical() callback in struct
ipc_service_backend so backends can implement a special fast path that
bypasses normal state and busy checks for critical notifications such as
crash reports or fatal errors.
The ipc_service_send_critical() wrapper mirrors ipc_service_send() on
the service side and delegates the actual behavior to the
backend-specific send_critical() implementation.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>