Commit graph

23353 commits

Author SHA1 Message Date
Perry Hung
9b5bc03f86 drivers: can: sam: select CACHE_MANAGEMENT for SAM M_CAN
A regression was introduced in ef804d8408
when the M_CAN driver was swapped to use the generic dcache API, but
cache management was not enabled on SAM devices.

Enable cache management on SAM devices when CAN_SAM is selected.

Signed-off-by: Perry Hung <perry@genrad.com>
2022-11-08 15:41:10 -05:00
Michał Barnaś
bcd4230d04 espi: auto enable the ESPI SAF XEC based on the device tree
The SAF XEC driver for eSPI was not enabled by default so sample
code for espi was failing. This commit changes the behavior to match
current scheme of enabling the drivers based on the status of required
device tree nodes.

Signed-off-by: Michał Barnaś <mb@semihalf.com>
2022-11-08 20:13:22 +00:00
Ryan McClelland
9b7d71e044 drivers: adc: fix ref_internal for ads1x1x
The ADS1x13 does not have a PGA, and will have a fixed
internal reference voltage of 2048mV. This sets the internal
referece voltage for the ads1x1x to 2048 and adjust the gain
configuration to scale.

Signed-off-by: Ryan McClelland <ryanmcclelland@fb.com>
2022-11-08 11:33:25 -06:00
Nikodem Kastelik
56cab3b268 drivers: mbox: nrfx: align implementation to nrfx 2.10 API
New API version changes the signature of user callback
in the nrfx_ipc driver.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2022-11-08 10:48:38 +01:00
Nikodem Kastelik
54941e055c drivers: ipm: nrfx: align implementation to nrfx 2.10 API
New API version changes the signature of user callback
in the nrfx_ipc driver.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2022-11-08 10:48:38 +01:00
Armando Visconti
2217608c1c drivers/sensor: Call the correct stmemc API to set drdy_pulsed
Call lis2dw12_data_ready_mode_set() API in order to properly
set CLTR7.drdy_pulsed bit.
(Fix #51488)

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2022-11-08 10:45:32 +01:00
Milind Paranjpe
21da8c27bf drivers: usb: mcux: Deinit then Init endpoint HAL during config
The USB device subsystem driver's set_interface() function calls
usb_dc_ep_configure() followed by usb_dc_ep_enable(). When
switching between alternate settings of a configuration's
interface, set_endpoint() can be followed by reset_endpoint() on
an endpoint. Some time later, set_endpoint() can be called again
on the same endpoint. This results in the HAL's
kUSB_DeviceControlEndpointInit function being called twice in a
row, which causes a memory allocation error. A simple solution is
to call the HAL's kUSB_DeviceControlEndpointDeinit function
before calling kUSB_DeviceControlEndpointInit. This overcomes the
memory allocation error.

Signed-off-by: Milind Paranjpe <mparanjpe@yahoo.com>
2022-11-08 09:43:44 +00:00
Tom Burdick
74b9699213 spi: SAM support SPI transfers with DMA
For larger transfers DMA can be used enabling other tasks
to continue running. A threshold of 32 byte transfers
is about right and is defined threshold value for using DMA.

This does not currently support multiple SPI transactions changing
chip select with DMA (though the hardware supports this) currently.
Instead opting for the simpler first change of enabling one shot
DMA SPI transfers for those where the size warrants it.

Adds the loopback binding option to enable the spi_loopback test.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2022-11-08 09:37:59 +00:00
Guy Morand
2419505e35 drivers: pwm: pwm_mcux_sctimer: Fix stopping PWM
By Starting the timer when period was set to 0, the SCTimer was giving
control of the pin back to the timer and over-riding the value written
to base->OUTPUT register. Consequently, the PWM timer was never
stopped and still using the previously configured period.

The PWM now correctly stops when setting the period to 0.

Signed-off-by: Guy Morand <guy.morand@bytesatwork.ch>
2022-11-07 10:10:37 -06:00
Jakub Dabek
b052143077 memory manager: Add runtime memory discovery
Add runtime physical memory discovery. This allows platforms with
different physical memory sizes to use the same driver for memory
management.

Signed-off-by: Jakub Dabek <jakub.dabek@intel.com>
2022-11-07 06:44:05 -05:00
Dino Li
8665db1dab espi: it8xxx2: reset PLTRST# virtual wire signal during eSPI reset
The PLTRST# virtual wire signal's reset signal is eSPI Reset#.
But it8xxx2 didn't enable the feature by default. This change
will enable the feature at default.

Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
2022-11-07 09:50:27 +01:00
Dat Nguyen Duy
da04197fdf drivers: gpio_s32: expose gpio_utils.h
Expose gpio_utils.h to follow updates in #51526

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2022-11-04 17:44:08 -04:00
Dat Nguyen Duy
6664953f12 drivers: gpio: support GPIO input with interrupt for NXP S32Z27
Add support input interrupts for GPIO pins on NXP S32Z27
SoC. The driver will convert GPIO pin to respective
interrupt line that will be processed by External
Interrupt Controller.

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2022-11-04 17:44:08 -04:00
Dat Nguyen Duy
607358b084 drivers: interrupt_controller: initial support for NXP S32Z27 EIRQ
Add initial support for the NXP S32Z27 SIUL2 External
Interrupt Controller. Each SIUL2 node has a child node
will act as an interrupt-controller that processes external
interrupt signals.

This driver is required to manage GPIO interrupts.

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2022-11-04 17:44:08 -04:00
Stancu Florin
42915e498e drivers: ti: cc13xx/cc26xx: implement ADC driver
New ADC driver for the TI CC13xx/CC26xx family.

ADC channel configurations are translated from Zephyr constants to
simplelink driverlib ones (e.g., sample times use a lookup table).

Async mode was also implemented & tested.

Signed-off-by: Stancu Florin <niflostancu@gmail.com>
2022-11-04 17:31:59 -04:00
Kamil Serwus
cad62fae61 soc: atmel: add base support for C2x SOC
Adds Atmel SAMC20 and SAMC21 soc. C series is based on Cortex-M0+.
C21 contains CAN interface.

The init routines are same for SAMC20 and SAMC21. They use one
clock OSC48M without configuration.

The code is inspirated from atmel_sam0/samd21.

Signed-off-by: Kamil Serwus <kserwus@gmail.com>
2022-11-04 16:03:01 +01:00
Francois Ramu
d4889366ba drivers: dma: stm32 dma driver supporting the stm32mp1 serie
Add the support of the stm32MP1 family for DMA peripheral.
This dma driver is similar to the stm32H7.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2022-11-04 10:16:56 +01:00
Henrik Brix Andersen
ace688b075 drivers: eeprom: mchp_xec: add missing kernel.h include
Add missing kernel.h include.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-11-04 08:59:24 +00:00
Kai Vehmanen
2dc9257ae1 drivers: dmic: remove invalid assert on dmic->created
struct dai_intel_dmic never had a "created" member, so this assert seems
to be accidentally left in the code. Remove it to allow building builds
with dmic driver with asserts enabled.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2022-11-04 08:59:11 +00:00
Ryan Erickson
35df759e20 modem: hl7800: ensure net_if_down is triggered and not ignored
Trigger network dropped based on socket error notifications.
This debounces the network state and only triggers
the network interface to go down if the network
really drops or causes socket problems.
This will ensure upper networking stack layers can
cleanup broken sockets properly.

Debounce DNS resolver refresh.
Only trigger DNS resolver refresh if the DNS address changes.

Signed-off-by: Ryan Erickson <ryan.erickson@lairdconnect.com>
2022-11-04 08:54:50 +00:00
Henrik Brix Andersen
39bb5cd06a drivers: eeprom: emulator: fix size_t format specifier
Fix the format specifier for logging size_t values.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-11-03 16:38:48 -05:00
Andrei Emeltchenko
1f0a425622 drivers: e1000: Use lookup() instead of probe()
For PCI Ethernet driver it makes sense to use lookup(id) instead of
probe(bdf, id). Even when using different Qemu parameters we may get
different BDF for e1000 device.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2022-11-03 09:54:56 -05:00
Andrei Emeltchenko
1763ce7486 drivers: e1000: Add BUILD_ASSERT() for IRQ allocation
Add BUILD_ASSERT() to indicate that dynamic IRQ allocation is not
supported.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2022-11-03 09:54:56 -05:00
Andrei Emeltchenko
b5fd1b22c0 drivers: e1000: Change PCIE BDF for Q35 qemu
Since moving to Qemu Q35 machine the drivers with hardcoded BDF stop
working. Correct e1000 BDF.

Fixes #51829

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2022-11-03 09:54:56 -05:00
Sylvio Alves
f5dc229bc5 drivers: wifi: esp32: add softap config
In order to allow proper softAP mode, wifi
libraries and wpa supplicant requires this kconfig
to be enable.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2022-11-03 10:24:14 +01:00
Tim Lin
cffcc1901e ITE: drivers/i2c: Fix mutex bug
When an error occurs, the driver will miss unlocking a mutex.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2022-11-03 09:01:07 +00:00
Declan Snyder
0acfefed77 drivers: Add NXP CSS entropy driver
Add entropy driver using NXP CSS
Add Kconfig and DTS binding for the NXP CSSv2

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2022-11-02 16:54:10 -05:00
Pieter De Gendt
1ccd609376 drivers: flash: spi_flash_at45: Add device_is_ready for GPIO outputs
Verify that the GPIO port is ready before configuring.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2022-11-02 16:12:14 -05:00
Pieter De Gendt
850e6bd23e drivers: flash: spi_flash_at45: Use gpio_pin_set_dt helper
Replace occurrences of gpio_pin_set with the _dt helper.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2022-11-02 16:12:14 -05:00
Jaska Uimonen
1f6d6deaef sparse: fix sparse warnings found in sof compilation
Add proper sparse_force cast to assigments into sparse_cache pointers.

Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
2022-11-02 14:34:20 -04:00
Henrik Brix Andersen
f30a5969d0 drivers: can: make the fake CAN driver generally available
Make the fake CAN controller driver available for use in tests outside of
the CAN shell test.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-11-02 08:19:33 -07:00
Théo Battrel
c9d68a5a4f Bluetooth: Move out string related function of common/log.h
Functions related to string manipulation that were defined in
`common/log.h` has been moved to the `common/bt_str.h` file and their
implementation in `common/bt_str.c`.

Files that were using those functions has been updated consequently.

Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
2022-11-02 13:28:57 +01:00
Guy Morand
a124203929 drivers: gpio: gpio_mcux_lpc: Use arbitrary amount of IRQ
Zephyr implementation is limited to 4 IRQ per GPIO bank when up to 8 is
theoritically possible.

It is now possible to use until 8 IRQ per GPIO bank. This can be
achieved with minimal effort in a device tree overlay:

&gpio0 {
	interrupts = <4 2>,<5 2>,<6 2>,<7 2>,<32 2>,<33 2>;
};

&gpio1 {
	interrupts = <34 2>,<35 2>;
};

Signed-off-by: Guy Morand <guy.morand@bytesatwork.ch>
2022-11-02 10:34:00 +01:00
Pieter De Gendt
8254be215b drivers: pwm: pwm_sam: Add inverted polarity support
Set CPOL bit in Channel Mode Register if the PWM polarity is inverted.

Fixes #51544

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2022-11-02 10:33:01 +01:00
Pieter De Gendt
469b76c17f drivers: pwm: pwm_sam: Add alias definition for different SoCs
The PWM definitions for Atmel SAM SoCs can differ slightly.

This commit adds support for the PWM defines used by SAM4S.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2022-11-02 10:33:01 +01:00
Tomasz Moń
3a71d88b82 drivers: flashdisk: make disk access thread-safe
Protect runtime flashdisk data with mutex to avoid race conditions.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2022-11-02 10:31:58 +01:00
Tomasz Moń
a4c59a335e drivers: flashdisk: implement basic write caching
Cache written data to avoid rewriting same flash page multiple times
when writing subsequent flash pages. The cache is used for reads to
account for reading not yet committed (i.e. dirty) page data. Speeding
up reads is not intention of this patch and therefore the read path
does not modify cache state.

Fixes: #30212

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2022-11-02 10:31:58 +01:00
Henrik Brix Andersen
566c64f0c0 drivers: can: loopback: guard against out-of-bounds filter IDs
Guard against out-of-bounds filter IDs when removing RX filters.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-11-02 10:31:48 +01:00
Henrik Brix Andersen
efd0d3ba96 drivers: can: loopback: add log message for full TX msgq
Emit a debug log message if the TX message queue is full.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-11-02 10:31:48 +01:00
Henrik Brix Andersen
728138023b drivers: can: loopback: rename receive function
Rename the CAN loopback driver receive function to make the code easier to
understand. Add proper check against NULL for RX callback function
pointers.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-11-02 10:31:48 +01:00
Henrik Brix Andersen
a5e534a283 drivers: can: loopback: process TX callbacks in non-loopback mode
The TX callbacks must be processed regardless of the device being in
loopback mode or not.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-11-02 10:31:48 +01:00
Declan Snyder
3b2456dd6e drivers: disk: Default SDMMC Kconfig based on DT
Set default of DISK_DRIVER_SDMMC Kconfig based on the devicetree.
This should avoid having to set the kconfig at the board level
in order to use sdmmc.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2022-11-02 15:43:49 +09:00
Kumar Gala
d2326fe187 drivers: power_domain: Update drivers to use devicetree Kconfig symbol
Update power_domain drivers to use DT_HAS_<compat>_ENABLED Kconfig
symbol to expose the driver and enable it by default based on
devicetree.

We remove one reference in prj.conf that is no longer needed.

Signed-off-by: Kumar Gala <kumar.gala@intel.com>
2022-11-02 15:41:17 +09:00
Kumar Gala
e11074d2a7 drivers: timers: riscv: don't leak Kconfig symbols
Add if check around RISC-V machine specific kconfig symbols so they
aren't exposed to everyone.

Signed-off-by: Kumar Gala <kumar.gala@intel.com>
2022-11-02 15:40:59 +09:00
Maureen Helm
0ddc2a9b65 drivers: sensor: Remove brackets from sensor info shell command output
Brackets were originally used in the sensor info shell command output to
make it obvious when a field is a null string, however they incorrectly
suggest that a field is an array. Remove the brackets and conditionally
print "(null)" instead.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2022-11-02 15:40:24 +09:00
Henrik Brix Andersen
abf82013ac drivers: can: add support for configuring CAN emulation in QEMU
Add support for configuring CAN emulation support in QEMU. For now, the
only supported CAN controller is the single-channel Kvaser PCIcan PCI card.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2022-11-01 15:22:31 -04:00
Henrik Brix Andersen
58e12726bf drivers: can: add driver for the Kvaser PCIcan CAN controller PCI card
Add driver for the Kvaser PCIcan CAN controller PCI card for use with QEMU.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2022-11-01 15:22:31 -04:00
Henrik Brix Andersen
3c99a1e015 drivers: pcie: reintroduce support for I/O BARs
Reintroduce support for accessing I/O BARs which was removed in
43d84147d9.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2022-11-01 15:22:31 -04:00
Tom Burdick
c548c1be1e timer: Revert "timer: HPET is also a lock free readable timer"
This seems to have caused CI failures and its unclear why just yet
so revert instead.

This reverts commit cbee9e9fdd8060d0ca4e91037b3f99f631e4b1a5.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2022-11-01 23:15:23 +09:00
Erdem Efe
0e05686d52 sensor: freefall added to lis2dw12 sensor driver.
lis2dw12 supports freefall detection and set related parameters

Signed-off-by: Erdem Efe <erdemefe1@gmail.com>
2022-11-01 08:25:24 -05:00