Commit graph

25,525 commits

Author SHA1 Message Date
Armin Brauns
e69ce5bb43 usb: stm32: clarify calculation of FIFO sizes
Magic constants throughout the code made this difficult to reason about,
especially with two different units of measurement (bytes and words) at
play.

Signed-off-by: Armin Brauns <armin.brauns@embedded-solutions.at>
2024-04-08 15:17:55 +03:00
Armin Brauns
c4815254c0 usb: stm32: fix calculation of TX FIFO sizes
The RX FIFO size is in words, so needs to be subtracted from the total
memory size *after* it's divided by 4.

Fixes #70789.

Signed-off-by: Armin Brauns <armin.brauns@embedded-solutions.at>
2024-04-08 15:17:55 +03:00
Daniel DeGrasse
8ffd1e2f53 drivers: display: add driver for ST7796s display
Add driver for ST7796s display. This is a MIPI DBI display controller,
with a frame memory of 320x480x18 pixels. Support for 4 wire SPI mode is
implemented using the MIPI DBI API.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-04-08 09:04:06 +02:00
Andriy Gelman
8372df0a48 drivers: can: mcp251xfd: Add can statistics support
Adds support for tracking CAN bus errors when CONFIG_CAN_STATS=y

Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
2024-04-06 14:23:06 +03:00
Jose Alberto Meza
b5778f1b38 drivers: gpio: mec172x: Add message to warn about pins not in GPIO mode
Warn about potential device tree errors for cases when driver's
client tries to configure a pin as GPIO but which is not
in GPIO mode.

Signed-off-by: Jose Alberto Meza <jose.a.meza.arellano@intel.com>
2024-04-05 23:47:32 +03:00
Lukas Gehreke
5f6a68a03b drivers: flash: Added buffered write for addresses in flash on rp2040
It is impossible to perform flash reads during a flash write. When the
data to write to flash lies in the flash itself, it is buffered in ram
before writing.

Signed-off-by: Lukas Gehreke <lk.gehreke@gmail.com>
2024-04-05 10:56:21 -05:00
Lucas Tamborrino
fe57a12cf2 drivers: esp32: update to hal_espressif v5.1
Modify necessary drivers to meet updated hal.

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2024-04-05 13:39:53 +02:00
Fin Maaß
3ffad11b22 drivers: net: use sys_rand8_get
use sys_rand8_get() instant of sys_rand32_get().

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-05 12:28:46 +02:00
Fin Maaß
19df6cd9b1 drivers: modem: use sys_rand_get directly
use sys_rand_get() directly.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-05 12:28:46 +02:00
Fin Maaß
792cbb9a24 drivers: ethernet: use sys_rand_get directly
use sys_rand_get() directly.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-05 12:28:46 +02:00
Fin Maaß
9e8e21b36f drivers: ieee802154: use sys_rand_get directly
use sys_rand_get() directly.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-05 12:28:46 +02:00
Krzysztof Chruściński
7bededbc29 drivers: serial: nrfx_uarte2: Fix re-enabling the receiver
Move providing of the first buffer in uart_rx_enable from that
function to the callback which is called from nrfx_uarte_rx_enable
context. By doing this nrfx_uarte_rx_buffer_set is called when
RX configuration flags are already known to the driver.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-04-05 12:21:58 +02:00
Ali Hozhabri
0252b6ff88 drivers: bluetooth: hci: Support reading long events in ST SPI v1
Provide support for reading events longer than 127 bytes in
ST SPI protocol v1 by splitting them into several SPI transactions.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2024-04-05 12:21:17 +02:00
Ali Hozhabri
7392bf284c drivers: bluetooth: hci: Support ISO packets in ST HCI SPI BT driver
Add support for ISO packets in ST HCI SPI BT driver.

Signed-off-by: Ali Hozhabri <ali.hozhabri@st.com>
2024-04-05 12:21:01 +02:00
Daniel DeGrasse
2206085cd8 drivers: mipi_dbi: introduce NXP LCDIC driver
Introduce NXP LCDIC driver using MIPI DBI class. This peripheral
supports 8080 and SPI 3/4 wire mode, although only SPI 4 wire support is
currently implemented. The driver supports DMA and interrupt driven
transfers.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-04-04 23:59:37 +03:00
Daniel DeGrasse
e6a1337726 drivers: clock_control: clock_control_mcux_syscon: add LCDIC clock
Add LCDIC clock support to MCUX SYSCON clock driver

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-04-04 23:59:37 +03:00
Emilio Benavente
dbd1da973b dts: arm: nxp: nxp_mcxn94x: Added watchdog node
Added the dts node for the
wdt watchdog and updated the
clock frequency.

Signed-off-by: Emilio Benavente <emilio.benavente@nxp.com>
2024-04-04 23:58:01 +03:00
Jamie McCrae
554ed2235c drivers: sensor: mpu6050: Add support for MPU6500
Adds basic support for using this driver with a MPU6500 device

Signed-off-by: Jamie McCrae <spam@helper3000.net>
2024-04-04 15:22:08 -05:00
Georgios Vasilakis
7a8d454e22 soc: nordic: Refactor soc_secure.h
The soc_secure_* function are used by the non-secure application
to access hardware resources which are mapped as secure.
Using these functions for hardware resources mapped as non-secure
is missleading.

We have some soc_secure_* functions which read FICR values.
In nRF91 and nRF53 platforms this made sense since FICR
has hardware fixed mapping as secure.
For nRF54 though the FICR has hardware fixed mapping as non-secure.

This change refactors the soc_secure.h to exclude the functions
which read FICR values from being included when FICR is mapped as
non-secure.

Also updates the hwinfo and ieee802154 drivers to adjust to this change.

Signed-off-by: Georgios Vasilakis <georgios.vasilakis@nordicsemi.no>
2024-04-04 13:17:13 -05:00
Jamie McCrae
d3edd34df3 drivers: sensor: dht: Add lock IRQ option
Adds an option that allows for locking all interrupts when reading
the data from this sensor, this can be used alongside systems like
Bluetooth to vastly increase chances of getting a reading from the
sensor successfully, at the risk of losing Bluetooth packets.

Signed-off-by: Jamie McCrae <spam@helper3000.net>
2024-04-04 13:16:18 -05:00
Jukka Rissanen
7fdebb5a91 drivers: net: ppp: Add packet capture support
User is able to enable packet capture for low level HDLC data
frames received from and sent to network. This data can sent to
remote system for analysis. The captured data is encapsulated
into Linux cooked mode SLL packets.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-04-04 17:02:11 +02:00
Marcin Niestroj
226f247006 drivers: net: nsos: fix compatibility with CONFIG_POSIX_API=n
Improve code consistency and fix CONFIG_POSIX_API=n compatibility with use
of ZSOCK_* and DNS_* macros.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2024-04-04 17:01:38 +02:00
Ilia Kharin
828a0c04a1 drivers: input: pinnacle: add driver for trackpad
The initial version of an input driver for Cirque Pinnacle ASIC supports:
 * Setting sensitivity
 * Choosing between relative and absolute modes
  * Relative mode
   * Primary tap
   * Swapping X and Y
  * Absolute mode
   * Setting number of idle packets
   * Clipping coordinates outside of active range
   * Scaling coordinates
   * Inverting X and Y coordinates

Signed-off-by: Ilia Kharin <akscram@gmail.com>
2024-04-04 09:46:06 +01:00
Kyle Dunn
a846b81d58 drivers: sensor: lis2dux12: Add lis2dux12 driver
Adds support for the STMicroelectronics LIS2DUX12 3-axis accelerometer.

Signed-off-by: Kyle Dunn <kdunn926@gmail.com>
2024-04-04 09:45:49 +01:00
Declan Snyder
fd1a129a3e drivers: eth_nxp_enet_qos: Fixed unused variable
Fix warning caused by unused variable when
CONFIG_NET_STATISTICS_ETHERNET is disabled.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-04-04 10:14:30 +02:00
Luis Ubieda
f643f3a6cf drivers: serial: bt: Make TX flush non-deferrable
To prevent postponing data flush until filling fifo. Now the flush will
occur at the scheduled time, regardless of subsequent poll_out reqs.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2024-04-03 20:42:01 -04:00
David Brown
f7e64c8703 drivers: serial: rpi_pico: Enable uart FIFO
A few lines above this change explicitly enable the UART FIFO.  Then this
line, goes and disables it.  This seems to be from a workaround where the
parity and stop bits are not coming in correctly in the config.  Fixing
that will be another patch.  But, the FIFO should always be enabled.  This
is visible when trying to use bit rates that are reasonably fast.  Even in
IRQ mode, with a sufficient bit rate, bytes are readily dropped.

Tested on a Sparkfun Promicro rp2040 board.

Signed-off-by: David Brown <david.brown@linaro.org>
2024-04-03 15:38:29 -05:00
Henrik Brix Andersen
36f4ef70a9 drivers: can: transceiver: gpio: automatically select GPIO
Automatically select CONFIG_GPIO when the GPIO-controlled CAN transceiver
driver is enabled. Update board configurations to benefit from this.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-04-03 21:12:32 +01:00
Steven Chang
e44c0987b9 driver: watchdog: prevent floating point usage
Prevent the use of floating point operations

Signed-off-by: Steven Chang <steven@ene.com.tw>
2024-04-03 21:12:17 +01:00
Laurentiu Mihalcea
bd9b3c67b2 drivers: dai: add driver for NXP's ESAI
This commit introduces a new DAI driver used for NXP's ESAI IP.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-03 16:18:50 +01:00
Erwan Gouriou
fa4ab81f40 drivers: clocks_control: stm32wba: Fix erratum 2.2.4
Cf Errata sheet, 2.2.4: With HSE active, switching the system clock source
from any other source to HSI, spuriously deactivates HSE.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2024-04-03 15:38:55 +01:00
Erwan Gouriou
930e03fdfd drivers: clock_control: stm32wba: Fix chain loaded applications case
In case of chain loaded application with PLL set as the sysclk source,
directly exit the init function.
This also applies to exit from stop mode and was tested successfully.

Signed-off-by: Erwan Gouriou <erwan.gouriou@st.com>
2024-04-03 15:38:55 +01:00
Pieter De Gendt
fcc729f240 drivers: spi: Support NXP i.MX ECSPI
Add a driver implementation for NXP's Enhanced Configurable SPI.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-04-02 21:03:47 -04:00
Erik Andersson
72503ab386 drivers: display: add driver for frida,nt35510
For now DSI settings are hard-coded for the specific
LCD module used on the STM32H747I Discovery board

Signed-off-by: Erik Andersson <erian747@gmail.com>
2024-04-02 21:03:10 -04:00
Erik Andersson
36e2b40e38 drivers: dsi: stm32: add additional dt options
To support the NT35510 display, some additional
options needs to be configurable in the STM32
DSI peripheral

Signed-off-by: Erik Andersson <erian747@gmail.com>
2024-04-02 21:03:10 -04:00
Declan Snyder
62b56bb313 drivers: ethernet: Add NXP ENET QOS Driver
Add driver for NXP ENET QOS Ethernet

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-04-02 21:02:25 -04:00
Declan Snyder
e90fa0399b drivers: mdio: Add NXP ENET QOS MDIO Driver
Add driver for NXP ENET QOS MDIO

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-04-02 21:02:25 -04:00
Declan Snyder
8fdacb5e45 drivers: clock_control_mcux_syscon: Add ENET QOS
Add code for ENET QOS clocking in clock control driver

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-04-02 21:02:25 -04:00
Mahesh Mahadevan
cbbe33996e drivers: i2c: Use the NXP Flexcomm driver for interrupt handling
The Low Power Flexcomm driver manages the interrupt handling
and provides an API to register interrupt callbacks.
Register the NXP LPI2C interrupt handler.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-04-02 21:00:24 -04:00
Mahesh Mahadevan
678e65093b dts: nxp_lpi2c: Interrupts is no longer a required property
Some NXP SoC's have a FlexComm interface that manages the
interrupts.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-04-02 21:00:24 -04:00
Mahesh Mahadevan
6199bd9c61 drivers: i2c: MCUX SDK LPI2C driver sometimes uses instance number
Update the driver to account for variations in the SDK driver
when it uses the instance number instead of the base address.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-04-02 21:00:24 -04:00
Mahesh Mahadevan
a9fea59281 soc: nxp: Select the MFD Kconfig when LPFlexcomm is enabled
LPFlexcomm is a MFD device hence select this Kconfig whenever
it is enabled.
Remove the selection from the individual driver Kconfig files.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-04-02 21:00:24 -04:00
Jason Yu
d5b1a7d929 driver: input: gt911: Support case that no dedicated reset pin
On some boards, there is not dedicated reset pin for GT911, it might
be the same pin with display IC, or might be tighted to a high level
voltage.
This patch makes the rst_gpio can be empty.

Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
2024-04-02 15:35:50 +01:00
Laurentiu Mihalcea
f4c73105e5 drivers: dai: sai: add pinctrl support
Add support for performing pinctrl operations. For now,
the only supported operation is applying the pinctrl default
state. Pinctrl is left optional to allow for scenarios in which
this is not required (e.g: AMP system in which another
OS configures the pinctrl).

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-02 14:31:15 +01:00
cyliang tw
820a70242f drivers: spi: support for Nuvoton numaker m2l31x
Update m2l31x.dtsi for spi support and update spi_numaker.c
for dummy TX data.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2024-04-02 14:30:57 +01:00
Tim Lin
0967f13c3f ITE: drivers/i2c: Add a property selecting to drive I2C recovery mode
Add a property to select the push-pull GPIO output type to drive the
I2C recovery. The default is open-drain.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2024-04-02 14:30:48 +01:00
Laurentiu Mihalcea
139fcfa5f7 drivers: clock: clock_control_mcux_pcc: add support for 8ULP
This patch add supports for performing clock-related operations
on i.MX8ULP. This consists of:
	1) Adding a LUT.
	2) Adding an initialization function meant to tell the
	HAL which rate the XTALs on the boards (EVK and EVK9)
	run at. This is used by the functions that compute the
	rate of an IP clock.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-02 14:30:27 +01:00
Laurentiu Mihalcea
9afd8c9054 drivers: clock: clock_control_mcux_pcc: rework clock ID computation
In the case of some SOCs simply using the PCC base and clock
offset to build the clock ID passed to the HAL is not sufficient
since the clock ID may also contain some flags (e.g: see the case of
i.MX8ULP). For such SOCs, we change the semantic of the value passed
from the DTS (which is simply called "name", thus allowing us to
interpret it differently from SOC to SOC) to an index in a LUT
used to fetch the clock ID that can be safely passed to the HAL.

For compatibility reasons, we also keep the old way and use it
for SOCs which don't define such a LUT. The driver will decide
which method to use based on the LUT size (i.e: if 0, use the
old way, if != 0 use the new way).

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-02 14:30:27 +01:00
Renato Soma
da7b65735e drivers: sensors: Add driver for LM35
Add a driver implementation for the LM35 ADC temperature sensor

Signed-off-by: Renato Soma <renatoys08@gmail.com>
2024-04-02 14:29:42 +01:00
Iuliana Prodan
1f55be8b42 nxp: imx8: change CONFIG_SOC_<name> to match the value
Change, for audio DSP and M7 cores, SOC_<name> to match
the exact soc name.
Update the board files accordingly.

These configs are used in SOF and NXP_HAL, so change
sha for these modules.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-04-02 10:41:07 +03:00