Commit graph

23353 commits

Author SHA1 Message Date
Gerard Marull-Paretas
a1f6163a58 drivers: i2c: nrfx_twim: create common init function
The device definition macro defined per-device init function, resulting
in a cluttered and hard to extend init function. Create a per-instance
IRQ connect function instead, which is called at init time by a common
function.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-07-19 12:25:13 +00:00
Gerard Marull-Paretas
00ecc66677 drivers: i2c: nrfx_twim: enable/disable when resuming/suspending
The driver already implemented some sort of runtime PM by
unconditionally calling nrfx_twim_disable/enable. Perform the same
operations in the PM callback instead of doing a full init/deinit every
time.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-07-19 12:25:13 +00:00
Gerard Marull-Paretas
d3251c28aa drivers: i2c: nrfx_twim: remove redundant deinit_twim shim
The shim had no value, just call nrfx_twim_uninit directly.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-07-19 12:25:13 +00:00
Gerard Marull-Paretas
9d649a5a74 drivers: i2c: nrfx_twim: drop twim_initialized usage
The driver re-initialized itself on the twim_transfer call if it wasn't.
This condition was likely added because of some manual/custom PM
schemes. Drop it in preparation for runtime PM.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-07-19 12:25:13 +00:00
Gerard Marull-Paretas
7fad89f020 drivers: i2c: nrfx_twim: avoid init/deinit to update frequency
nrfx HAL does not support updating frequency at runtime, which means we
need to do a full init/deinit to update it when it is a matter of a
simple register write. Fix this by using the lower level HAL.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-07-19 12:25:13 +00:00
Kumar Gala
e99652b67d drivers: ieee802154: cc2520: Convert to DEVICE_DT_INST_DEFINE
Move driver to use {NET_}DEVICE_DT_INST_DEFINE.  This lets us
remove the IEEE802154_CC2520_DRV_NAME Kconfig symobl.

We also update the ieee802154 build_all test to actually enable
the CC2520 driver.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-07-19 10:32:21 +02:00
Kumar Gala
5cca6ed087 drivers: ieee802154: b91: Convert to DEVICE_DT_INST_DEFINE
Move driver to use {NET_}DEVICE_DT_INST_DEFINE.  This lets us
remove the IEEE802154_B91_DRV_NAME Kconfig symobl.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-07-19 10:32:09 +02:00
Freddie Yang
eca27824f3 drivers: fix race condition in SPI-based HCI driver
Give the semaphore after transceiving the message.

Signed-off-by: Freddie Yang <freddie.yang325@outlook.com>
2022-07-19 10:31:36 +02:00
Henrik Brix Andersen
b407b5697f drivers: can: loopback: add CAN-FD loopback support
Add support for CAN-FD frames in the CAN loopback driver.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-07-18 18:43:36 +02:00
Benjamin Björnsson
4b30008f5b drivers: gpio: gpio_cy8c95xx.c: move driver to use i2c_dt_spec
Simplify driver by using i2c_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-18 18:43:17 +02:00
Benjamin Björnsson
ff327c419d drivers: gpio: gpio_pca953x: move driver to use i2c_dt_spec
Simplify driver by using i2c_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-18 18:43:03 +02:00
Benjamin Björnsson
21cf889c87 drivers: led: tlc59108: Update driver to use i2c_dt_spec
Simplify driver by using i2c_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-18 18:42:52 +02:00
Tomislav Milkovic
0fe2c1fe90 everywhere: Fix legacy include paths
Any project with Kconfig option CONFIG_LEGACY_INCLUDE_PATH set to n
couldn't be built because some files were missing zephyr/ prefix in
includes
Re-run the migrate_includes.py script to fix all legacy include paths

Signed-off-by: Tomislav Milkovic <milkovic@byte-lab.com>
2022-07-18 16:16:47 +00:00
Benjamin Björnsson
0649679b98 drivers: sensor: bmp388: Rename spi variable
Rename variable for consistency across drivers.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-18 10:24:35 -05:00
Benjamin Björnsson
b6c8148e7e drivers: sensor: bmp389: Update driver to use i2c_dt_spec
Simplify driver by using i2c_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-18 10:24:35 -05:00
Henrik Brix Andersen
657f34d073 drivers: can: mcan: increase maximum supported bitrate
According to the Bosch M_CAN datasheet, the M_CAN IP supports up to
8Mbit/s.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-07-18 14:30:47 +00:00
Sylvio Alves
f0623f88be drivers: serial: esp32c3: fix duplicated definition
Removes redefinition when uart interrupt is enabled.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2022-07-18 09:13:49 -05:00
Andrew McRae
008859a6ba drivers: sensor: npcx_tach: Remove underflow LOG_INF
A LOG_DBG already exists for the underflow check,
and given that reading 0 edges is a valid case, remove
the noisy underflow log.

Signed-off-by: Andrew McRae <amcrae@google.com>
2022-07-18 09:11:04 -05:00
Henrik Brix Andersen
588f06d511 drivers: can: loopback: check frame ID type and RTR bit in filters
Check the frame ID type and RTR bit when comparing loopback CAN frames
against installed RX filters.

Fixes: #47904

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-07-18 13:24:54 +00:00
Henrik Brix Andersen
3e5aaf837e drivers: can: mcux: flexcan: fix handling of RTR frames
When installing a RX filter, the driver uses "filter->rtr &
filter->rtr_mask" for setting the filter mask. It should just be using
filter->rtr_mask, otherwise filters for non-RTR frames will match RTR
frames as well.

When transmitting a RTR frame, the hardware automatically switches the
mailbox used for TX to RX in order to receive the reply. This, however,
does not match the Zephyr CAN driver model, where mailboxes are dedicated
to either RX or TX. Attempting to reuse the TX mailbox (which was
automatically switched to an RX mailbox by the hardware) fails on the first
call, after which the mailbox is reset and can be reused for TX. To
overcome this, the driver must abort the RX mailbox operation when the
hardware performs the TX to RX switch.

Fixes: #47902

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-07-18 13:24:54 +00:00
Henrik Brix Andersen
5e74f72220 drivers: can: mcan: acknowledge all received frames
The Bosch M_CAN IP does not support RX filtering of the RTR bit, so the
driver handles this bit in software.

If a recevied frame matches a filter with RTR enabled, the RTR bit of the
frame must match that of the filter in order to be passed to the RX
callback function. If the RTR bits do not match the frame must be dropped.

Improve the readability of the the logic for determining if a frame should
be dropped and add a missing FIFO acknowledge write for dropped frames.

Fixes: #47204

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-07-18 13:24:54 +00:00
TOKITA Hiroshi
189c8a82d4 drivers: sensor: adxl345: Add support SPI connection
Support SPI connection for ADXL345.
It works as well as an I2C connection.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
2022-07-18 10:37:14 +00:00
Attie Grande
7ded40de84 soc: atmel_sam0: The ADC reference is locked while enabled for SAML21
For SAML21-based parts, the REFCTRL register is locked while the ADC is
enabled. Permit some parts to declare that they need the ADC to be
disabled before modifying REFCTRL.

Signed-off-by: Attie Grande <attie.grande@argentum-systems.co.uk>
2022-07-18 10:35:46 +00:00
Martin Jäger
e448561f95 drivers: serial: esp32_usb: improve Kconfig documentation
Clarify that this driver does not use the Zephyr USB stack, but the
one built into the Espressif MCU.

Signed-off-by: Martin Jäger <martin@libre.solar>
2022-07-16 16:17:11 +00:00
Martin Jäger
802f749697 drivers: serial: esp32_usb: remove UART config
The built-in USB serial peripheral is a virtual serial and does not
allow to be configured like a normal UART.

Removing the unused UART config parameters.

Also reducing initialization to single-instance only.

Signed-off-by: Martin Jäger <martin@libre.solar>
2022-07-16 16:17:11 +00:00
Martin Jäger
e8250ea17b drivers: serial: esp32_usb: clean-up
The struct serial_esp32_usb_pin, the uart_reg.h header and the
two defines are not used or required.

Signed-off-by: Martin Jäger <martin@libre.solar>
2022-07-16 16:17:11 +00:00
Martin Jäger
014f878e88 drivers: serial: esp32_usb: remove peripheral number
This peripheral is single-instance only, so there is no peripheral
number required.

Signed-off-by: Martin Jäger <martin@libre.solar>
2022-07-16 16:17:11 +00:00
Martin Jäger
0088641994 drivers: serial: esp32: remove unused stubs.h include
This include is only required if typeof() macro is used, which
is not the case for the serial / uart driver.

Signed-off-by: Martin Jäger <martin@libre.solar>
2022-07-16 16:17:11 +00:00
Tomasz Duda
5f84be56ae gpio_shell: support for input pull down/up
Add pull up/down in gpio shell.

Signed-off-by: Tomasz Duda <tomaszduda23@gmail.com>
2022-07-15 17:43:54 -05:00
Benjamin Björnsson
704e366fcf drivers: sensor: iis2mdc: Move bus union inside device config
Simplify driver by moving auxiliary bus union inside device config.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-15 15:35:54 +02:00
Benjamin Björnsson
bbff6eb592 drivers: sensor: iis2mdc: move driver to use i2c_dt_spec and spi_dt_spec
Simplify driver by using i2c_dt_spec and spi_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-15 15:35:54 +02:00
Benjamin Björnsson
e304695d2f drivers: led: ht16k33: move driver to use i2c_dt_spec
Simplify driver by using i2c_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-15 15:35:33 +02:00
Jimmy Ou
78f876ef03 drivers: display: max7219: add driver
This commit implements the display interface for the MAX7219 LED Display
drivers.

Signed-off-by: Jimmy Ou <yanagiis@gmail.com>
2022-07-15 10:10:48 +02:00
Benjamin Björnsson
e1c0a494b3 drivers: i2c: i2c_tca954x: Update driver to use i2c_dt_spec
Simplify driver by using i2c_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-15 10:05:40 +02:00
Benjamin Björnsson
59ecc97b82 drivers: counter: rtc_mcp7940n: Update driver to use i2c_dt_spec
Simplify driver by using i2c_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-15 10:05:28 +02:00
Kumar Gala
dad7c3a240 drivers: misc: ft8xx: Convert to DEVICE_DT_INST_DEFINE
Move driver to use DEVICE_DT_INST_DEFINE.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-07-15 10:02:43 +02:00
Benjamin Björnsson
a372be6eda drivers: gpio: stmpe1600: move driver to use i2c_dt_spec
Simplify driver by using i2c_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-15 10:00:44 +02:00
Benjamin Björnsson
ed84e45526 drivers: dac: dac_mcp4725: Update driver to use i2c_dt_spec
Simplify driver by using i2c_dt_spec for bus access.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-15 10:00:36 +02:00
Bartosz Bilas
9da5538f92 drivers: dac: mcp4728: set explicitly init priority
Since this DAC is connected via I2C bus the init priority
value must be higher than the default 50 so it can be initialized
later than the bus itself so add a dedicated init config
symbol for that.

Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
2022-07-15 09:59:51 +02:00
Bartosz Bilas
5cf7adeb5b drivers: dac: mcp4725: set explicitly init priority
Since this DAC is connected via I2C bus the init priority
value must be higher than the default 50 so it can be initialized
later than the bus itself so add a dedicated init config
symbol for that.

Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
2022-07-15 09:59:51 +02:00
Bartosz Bilas
035c75200e drivers: dac: dacx3608: set explicitly init priority
Since this DAC is connected via I2C bus the init priority
value must be higher than the default 50 so it can be initialized
later than the bus itself so add a dedicated init config
symbol for that.

Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
2022-07-15 09:59:51 +02:00
Bartosz Bilas
43b38b348b drivers: dac: dacx0508: set explicitly init priority
Since this DAC is connected via SPI bus the init priority
value must be higher than the default 50 so it can be initialized
later than the bus itself so add a dedicated init config
symbol for that.

Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
2022-07-15 09:59:51 +02:00
Adrian Bonislawski
0f90e8ed58 drivers: dmic: add gain ramping and unmute delay
This will add dmic gain ramping and unmute delay using
DAI's pre_copy trigger

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
2022-07-14 16:25:39 -04:00
Marcin Szkudlinski
ae8b17d2bb Drivers: dmic-dai: Driver for Intel DMIC
This is a driver for Intel Digital Microphone

TODO:
 - volume rampup
 - TPLG config

Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
2022-07-14 16:25:39 -04:00
Johann Fischer
5e5ea9a21d drivers: use unsigned int for irq_lock()
irq_lock() returns an unsigned integer key.
Generated by spatch using semantic patch
scripts/coccinelle/irq_lock.cocci

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2022-07-14 14:37:13 -05:00
Tom Burdick
c225cf3b8a dma: HDA rename prefix from cAVS to ADSP
HDA is a common IP used across the entire ADSP line and deserves
a name respecting that alongside similiar IP drivers such as the
ADSP GPDMA driver.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2022-07-14 17:53:46 +00:00
Yannis Damigos
f845d9ac02 drivers: spi_esp32_spim: Support more CS pins per SPI instance
Support more CS pins per SPI instance

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2022-07-14 15:51:00 +00:00
Bjarki Arge Andreasen
52dd2bb3a3 drivers/modem: Patch fix for sock id and fd
There is is an error in the way that the sock id is
determined. A unique fd is reserved and assigned appropriatly, but
the id, which should correspond to a socket number within the modem,
is set to an invalid, and identical for all sockets, value, and then
not used appropriatly in the drivers, instead, the sock_fd is used,
which can be any value really, it is not related to the socket number
in any way.

This results in the drivers only working if the reserved fd happens
to be between base_socket_num and (socket_len - 1)

This patch assignes the id to the index of the socket + the
base_socket_num, the socket at index 0 will get the id 1 if the
base_socket_num is 1, and the modem_socket_from_id should then
be used to get a pointer to the socket, since the id is not
neccesarily equal to the index.

The FIXME has been solved by adding a note both at the start
of the modem_socket_get function and inside the Kconfig file
for the MODEM_SOCKET option description. It is not an error,
but the user must be aware that it uses the POSIX file
descriptors, for which only 4 are allocated by default.

This patch fixes the bug, without breaking the brittle modem
drivers which currently are built around this bug.

The modem drivers should be updated to use the id as the
socket num instead of the sock_fd after this fix has been merged.

The "socket # needs assigning" has been removed, as that is what
this patch is doing

I also added comments to the id and sock_fd in the modem_socket
structure to help developers use the id and fd appropriately.

Signed-off-by: Bjarki Arge Andreasen <bjarkix123@gmail.com>
2022-07-14 16:23:33 +02:00
Kumar Gala
861b14bd2e drivers: eeprom_emulator: Remove dead code
Remove unused PART_DEV_NAME macro.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-07-14 10:40:07 +02:00
Benjamin Björnsson
2259c6771f drivers: sensor: fxas21002: Add multi-instance support
Move driver to use DT_INST_FOREACH_STATUS_OKAY to add
multi-instance support.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2022-07-14 10:39:40 +02:00