Commit graph

25,525 commits

Author SHA1 Message Date
Julien Panis
29e24948f8 drivers: spi_dw: Handle multiple interrupt lines for errors
This patch handles multiple interrupt lines for errors. Each of the
4 DW SPI error interrupts (txo_err, rxo_err, rxu_err, mst_err) can
use a different line of the GIC, instead of using a single line of
the GIC for all error interrupts (err_int).

Signed-off-by: Julien Panis <jpanis@baylibre.com>
2024-02-26 11:49:10 +01:00
Julien Panis
30b6cd2647 drivers: spi_dw: Manage MMIO and 64 bit platforms
This patch manages DW SPI driver MMIO region. As a result, the driver now
runs properly on 64 bit platforms.

Signed-off-by: Julien Panis <jpanis@baylibre.com>
2024-02-26 11:49:10 +01:00
Francois Ramu
62e7b788aa drivers: timer: stm32 lptimer when sleeping for -1
When CONFIG_SYSTEM_SLOPPY_IDLE is not set, then system
can sleep for -1 means waking Up at the max possible
counter value (INT_MAX)
When CONFIG_SYSTEM_SLOPPY_IDLE is set sleeping K_TICKS_FOREVER
means never wakingUp

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2024-02-26 11:48:22 +01:00
Ali Hozhabri
88369606e2 drivers: bluetooth: hci: Multiple write transaction support for BlueNRG-MS
Provide multiple write transaction support for BlueNRG-MS, st_hci_spi_v1
protocol. Since by default, BlueNRG-MS write buffer supports up to 127
bytes; however, it is possible to have consecutive write transactions
so as to send data more than 127 bytes.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2024-02-26 11:47:32 +01:00
Yonatan Schachter
4ef0e1221d sys/util.h: Add IS_ALIGNED macro
Added IS_ALIGNED macro to check if a pointer is aligned to
a given alignment. Additionally, removed a macro with a
conflicting name in drivers/crypto_intel.

Signed-off-by: Yonatan Schachter <yonatan.schachter@gmail.com>
2024-02-26 11:46:30 +01:00
Bernt Johan Damslora
73d56dea66 drivers: mfd: npm6001: set SWREADY
Sets SWREADY in MFD initialization, so that hysteresis mode can be used.

Signed-off-by: Bernt Johan Damslora <bernt.damslora@nordicsemi.no>
2024-02-26 10:42:38 +01:00
Mateusz Michalek
517d5ce2e3 drivers: flash: rram singlethreading support
Adds conditional usage of locking mechanisms to allow building
without multithreading.

Signed-off-by: Mateusz Michalek <mateusz.michalek@nordicsemi.no>
2024-02-26 10:27:23 +01:00
Jakub Zymelka
5e313608fe drivers: flash: rram: minor driver code changes
Minor changes to standardize the driver code.

Signed-off-by: Jakub Zymelka <jakub.zymelka@nordicsemi.no>
2024-02-26 10:27:23 +01:00
Pierce Lowe
609b864537 drivers: flash: rram: Make rram flash timeout multiplier user selectable
Make flash timeout multiplier user selectable for rram flash driver

Signed-off-by: Pierce Lowe <pierce.lowe@nordicsemi.no>
2024-02-26 10:27:23 +01:00
Andrzej Puzdrowski
e40dc3879d drivers/flash/rram: set to use up to 512 B burst writes by default
Now RRAMC is set to use up to 512 B burst writes by default as most
time effective.
Requested slot time was changed to 8000 us for that case, as this is
required in order to hold the longest write operation.
Drivers differs slot duration depending on configured RRAMC buffers count
(CONFIG_NRF_RRAM_WRITE_BUFFER_SIZE).

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2024-02-26 10:27:23 +01:00
Andrzej Puzdrowski
06c68caec5 drivers/flash: fix nRF RRAM write-length issue while MPSL in use
When radio-synchronization was on
(CONFIG_SOC_FLASH_NRF_RADIO_SYNC_NONE=n) context of writing was shifted
by 4 instead of write-length (this caused redundant, self-shortening
writes to the same block.)

write-len was unset when requested write len was less than
RRAM_MAX_WRITE_BUFFER.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
Signed-off-by: Jakub Zymelka <jakub.zymelka@nordicsemi.no>
2024-02-26 10:27:23 +01:00
Andrzej Puzdrowski
fdac87738b drivers/flash: add radio synchronization to RRAM
Added synchronization with BLE radio operation to the RRAM flash
driver. The implementation is using framework which is already
provided for nrf52's flash driver.

Additional added resource locking mechanism while driver does writing
which solves mutual exclusion write access problem.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
Signed-off-by: Jakub Zymelka <jakub.zymelka@nordicsemi.no>
2024-02-26 10:27:23 +01:00
Jakub Zymelka
3a8ee7df91 drivers: Add flash driver for RRAM
Added a simple driver for RRAM. It is implemented as a flash driver,
because the "RRAM eFlash" macro obeys flash-like constraints.
Although users are not required to erase before write.

Signed-off-by: Jakub Zymelka <jakub.zymelka@nordicsemi.no>
2024-02-26 10:27:23 +01:00
Gustavo Silva
3850f4ca64 drivers: sensor: add ScioSense ENS160 driver
Add driver for ScioSense ENS160 multi-gas sensor. The driver includes
support for I2C and SPI, attributes for setting temperature and
humidity compensation and data ready trigger.
Also add ScioSense to the list of vendor prefixes.

Signed-off-by: Gustavo Silva <gustavograzs@gmail.com>
2024-02-25 22:27:22 -05:00
Mahesh Mahadevan
94540a9dee drivers: gpio: Update NXP LPC GPIO driver to enable wakeup
Process the GPIO_INT_WAKEUP flag and set appropraite bits
in the SoC to wakeup the system from deep sleep mode.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-02-25 22:26:00 -05:00
Mahesh Mahadevan
e17045a02d drivers: gpio: Add default for switch statement
This causes a warning when making changes to add
support for GPIO_INT_WAKEUP flag.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-02-25 22:26:00 -05:00
Jukka Rissanen
bf31b0985e drivers: ethernet: Disable drivers if tests are enabled
The network tests at tests/net use simulated network interfaces
and set CONFIG_NET_TEST to indicate that. If the config option
is set, then we do not want any extra Ethernet driver to
complicate the testing scenario so all external Ethernet
network interfaces should be disabled.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-02-25 20:50:42 -05:00
Sylvio Alves
a79c54dc43 drivers: dac: esp32: fix clock control subsys argument
Current cfg->clock_subsys is passed as address and is
causing driver assertion.

Fixes #69198

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2024-02-25 20:49:01 -05:00
Renato Soma
5bec53b73a drivers: sensor: tmag5273: cast value to int64_t
Cast val1 from sensor_value before multiplication in order to avoid
integer overflow, as indicated by Coverity CID 347136.

Signed-off-by: Renato Soma <renatoys08@gmail.com>
2024-02-25 20:47:31 -05:00
Mathieu Choplain
6ff47b15db drivers: can: add missing argument to LOG_ERR call
PR #64399 introduced checks for out-of-bounds filter IDs
in CAN drivers, along with logging of said IDs; however,
the call to LOG_ERR in the native POSIX/Linux driver is
missing the 'filter_id' argument.

This commit adds the missing argument to ensure proper
data is printed when the LOG_ERR call is performed.

Signed-off-by: Mathieu Choplain <mathieu.choplain@st.com>
2024-02-25 20:45:29 -05:00
Tim Lin
77244aae1d ITE: drivers/gpio: Fix untrusted loop bound
The pin in the loop start counting from 0, so the condition of the
for loop should not be equal to num_pins.

Fixes #69118

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2024-02-19 19:59:27 +01:00
Venkataramana Kotakonda
ca371d6890 drivers: espi: Clear virtual wire interrupt before calling handler
Clearing virtual wire interrupt after calling handler may cause next
interrupt miss if the same virtual wire changes due to action in handler.
As the interrupt source is read from register, it can be cleared before
calling handler to avoid next interrupt miss due to action/delay in the
callback handler.

Signed-off-by: Venkataramana Kotakonda <venkataramana.kotakonda@intel.com>
2024-02-19 19:58:28 +01:00
Henrik Brix Andersen
79d5857e9f drivers: adc: max1125x: use K_KERNEL_STACK_SIZEOF()
Use K_KERNEL_STACK_SIZEOF() for calculating thread stack size, as this
takes K_KERNEL_STACK_RESERVED into account.

Fixes: #69129

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-02-19 12:52:52 -06:00
Henrik Brix Andersen
ad85283906 drivers: adc: ad5592: use K_KERNEL_STACK_SIZEOF()
Use K_KERNEL_STACK_SIZEOF() for calculating thread stack size, as this
takes K_KERNEL_STACK_RESERVED into account.

Fixes: #69133

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-02-19 12:52:52 -06:00
Henrik Brix Andersen
4274d1b365 drivers: adc: ads7052: use K_KERNEL_STACK_SIZEOF()
Use K_KERNEL_STACK_SIZEOF() for calculating thread stack size, as this
takes K_KERNEL_STACK_RESERVED into account.

Fixes: #69132

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-02-19 12:52:52 -06:00
Henrik Brix Andersen
0e321ecc90 drivers: adc: lmp90xxx: use K_KERNEL_STACK_SIZEOF()
Use K_KERNEL_STACK_SIZEOF() for calculating thread stack size, as this
takes K_KERNEL_STACK_RESERVED into account.

Fixes: #69131

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-02-19 12:52:52 -06:00
Henrik Brix Andersen
ae81429a81 drivers: adc: mcp320x: use K_KERNEL_STACK_SIZEOF()
Use K_KERNEL_STACK_SIZEOF() for calculating thread stack size, as this
takes K_KERNEL_STACK_RESERVED into account.

Fixes: #69130

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-02-19 12:52:52 -06:00
Gustavo Silva
b2b4016963 drivers: charger: bq25180: fix return value check
Fix missing check of the return value of `bq25180_set_charge_current`
function, resulting in logically dead code, as indicated by Coverity
CID 347197.

Signed-off-by: Gustavo Silva <gustavograzs@gmail.com>
2024-02-19 09:38:50 -06:00
Ayush Singh
7c9dbde659 ieee802154: ieee802154_cc13xx_cc26xx_subg: Fix 6lowpan for cc1352p7
- Fix using custom setup function
- Enable pRegOverrideTxStd and pRegOverrideTx20 in
  ieee802154_cc13xx_subg_radio_div_setup struct

Signed-off-by: Ayush Singh <ayushdevel1325@gmail.com>
2024-02-17 21:14:30 +01:00
Thomas Stranger
ade3c72a35 drivers: wifi: esp_at: fix ssid_len calucation for AP query.
The driver seems to be designed to use the very last byte of the
buffer(scan, connect), so null terminating the status query
might have unintended consequences.
However we should not use strlen to determine the ssid_len,
to avoid depending on the following buffer(bssid) to be zeroed.
Related to CID 316354

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2024-02-16 10:15:37 -06:00
Jose Alberto Meza
f3d591815f drivers: ecia: microchip: Prevent lost eSPI interrupts
Clearing virtual wire interrupt after calling callback may cause
interrupt miss if the same virtual wire changes due to action
in handler.

e.g. HOST_RST_WRN pulse within 50 us

Signed-off-by: Jose Alberto Meza <jose.a.meza.arellano@intel.com>
2024-02-16 07:26:36 +01:00
Declan Snyder
9ce374b24a drivers: eth_mcux: Fix PM_DEVICE build failure
device power management is not yet supported with eth_mcux
except on the kinetis series, but this should not break
the build for other platforms when PM_DEVICE is set

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-02-16 07:26:18 +01:00
Ryan Erickson
034fc93db7 modem: hl7800: Fix null reference in hl7800_net_addr6_pton
Ensure a potential null pointer is not incremented.

Signed-off-by: Ryan Erickson <ryan.erickson@lairdconnect.com>
2024-02-15 22:17:43 +01:00
Guennadi Liakhovetski
2f04a8c91e dma: intel-adsp: hda: avoid division by 0
A division by 0 has once been observed inside
intel_adsp_hda_dma_host_reload(). It is apparently caused by a
preceding logic or hardware error, but in any case values, read from
the hardware should be checked for 0 before being used as a divisor.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2024-02-15 16:23:49 +01:00
Ian Morris
d3a0830ea5 drivers: clock_control: ra: sub-clock oscillator select fix
Due to a typo it is not possible to select the sub-clock oscillator
(SOSC) as a clock source for an RA Microcontroller. This patch resolves
the issue.

Signed-off-by: Ian Morris <ian.d.morris@outlook.com>
2024-02-15 09:20:30 +01:00
Mateusz Sierszulski
09a43661c3 drivers: serial: liteuart: Enable interrupt driven mode
This commit enables interrupt driven liteuart.

Signed-off-by: Mateusz Sierszulski <msierszulski@antmicro.com>
2024-02-15 09:19:57 +01:00
Ryan Erickson
63d6ea958e modem: hl7800: fix parsing APN username
Ensure a null reference cannot happen if there is an issue
parsing the APN username.

Signed-off-by: Ryan Erickson <ryan.erickson@lairdconnect.com>
2024-02-14 19:08:13 +01:00
Henrik Brix Andersen
6e5c1ba3c1 drivers: can: mcan: fix handling of bus-off status events
Fix handling bus-off events in the Bosch M_CAN driver backend:
- Cancel all pending TX buffers when entering bus-off state
- Call all pending TX buffer callbacks with -ENETUNREACH when entering
  bus-off
- Automatically initiate bus-off recovery if
  CONFIG_CAN_AUTO_BUS_OFF_RECOVERY=y

Fixes: #68953

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-02-14 19:07:18 +01:00
Ryan Erickson
d8afcfb501 modem: hl7800: validate IPv4 DNS addr len for IPv6
If the IPv6 DNS address is not a valid address, DNS will fallback
to the IPv4 DNS address.
Fix copying the IPv4 address to the IPv6 address by using
the IPv6 address destination length.

Signed-off-by: Ryan Erickson <ryan.erickson@lairdconnect.com>
2024-02-14 19:03:02 +01:00
Bjarki Arge Andreasen
080d51bb36 modem: modem_cellular: CID 338067
incorrect size passed to strncpy()

Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
2024-02-14 17:48:11 +01:00
Bjarki Arge Andreasen
b668296a50 modem: modem_cellular: CID 338073
incorrect size passed to strncpy()

Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
2024-02-14 17:48:11 +01:00
Bjarki Arge Andreasen
08a51bae89 modem: modem_cellular: CID 338115
incorrect size passed to strncpy()

Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
2024-02-14 17:48:11 +01:00
Bjarki Arge Andreasen
ae951f5f02 modem: modem_cellular: CID 338140
incorrect size passed to strncpy

Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
2024-02-14 17:48:11 +01:00
Bjarki Arge Andreasen
adcdf64a0f modem: modem_cellular: CID 338164
strncpy() passed incorrect size

Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
2024-02-14 17:48:11 +01:00
Mikkel Jakobsen
ef8e32561d drivers: led_strip: tlc5971: fix brightness control bit shifting
The lower bits of the brightness control registers were erroneously
shifted even though FIELD_PREP already does the shifting. In practice,
the effect is negliglible but of course should be fixed.

Also add missing parenthesis around shifting operations to satisy static
analysis.

Signed-off-by: Mikkel Jakobsen <mikkel.aunsbjerg@escolifesciences.com>
2024-02-14 13:09:54 +01:00
Rajavardhan Gundi
57f1976ea8 drivers: i2c_mchp: Replace slave by target
Replace slave_register with target_register and slave_unregister
with target_unregister.

Signed-off-by: Rajavardhan Gundi <rajavardhan.gundi@intel.com>
Signed-off-by: Jose Alberto Meza <jose.a.meza.arellano@intel.com>
2024-02-14 12:06:20 +01:00
Guillaume Gautier
b0e1e9f5fb drivers: bbram: stm32: add include to fix compilation error
Driver BBRAM for STM32 had a compilation error: "unknown type name
'RTC_TypeDef'" due to missing include file.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2024-02-14 10:40:00 +01:00
Thomas Stranger
61f065230a drivers: sensor: ltrf216a: fix overflow in conversion
The conversion of the raw sensor value overflows because
only a 32 bit multiplication is executed.
Fix the issue by promoting the raw sensor value to uint64_t before
executing the multiplication.

Analysis:
The current implementation overflows for all raw values grater
than 9544(14-bit).
But according to the datasheet the sensor has a maximum resolution of
20-bit. So Multiplying that value with 450.000 would need at least 39
bit to avoid an overflow, hence do it using 64-bit arithmetic.

Fixes CID 330657

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2024-02-13 21:14:21 +01:00
Henrik Brix Andersen
ded0d48779 drivers: entropy: neorv32: add missing soc.h include
Add missing soc.h include for NEORV32_SYSINFO_FEATURES.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-02-13 10:42:04 +01:00
Tahsin Mutlugun
dde9e48394 drivers: counter: maxim_ds3231: Fix coverity errors
Casting 64-bit time_t values into 32-bit unsigned integers causes
CWE-197 violations. Explicitly truncate these values by masking
time_t to avoid these warnings.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2024-02-13 10:25:53 +01:00