1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

4388 Commits

Author SHA1 Message Date
benpicco
5c9240970e
Merge pull request #18608 from benpicco/mtd_flashpage-aux
drivers/mtd_flashpage: allow to define AUX slot on flash
2024-02-28 12:58:18 +00:00
Benjamin Valentin
e3819ca960 drivers/mtd_flashpage: define mtd_flash_aux_slot device 2024-02-28 11:49:05 +01:00
Benjamin Valentin
e8a4defafd drivers/pcf857x: stop (ab)using gpio_t
The driver only supports addressing GPIOs by their index, (ab)using
`gpio_t` for that will break on platforms that encode GPIO values
differently.
2024-02-27 16:31:59 +01:00
Gilles DOFFE
04c8d442da drivers/pcf857x: fix missing include kernel_defines.h
If not included before, IS_USED macro from modules.h is undefined,
leading to such errors:
  error: missing binary operator before token "("

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
2024-02-24 16:55:05 +01:00
Mihai Renea
c58b71b899 drivers/at: parse +CME/+CMS responses and save error value 2024-02-22 12:21:25 +01:00
chrysn
fb2002d84a drivers/rgbled: Remove driver
The driver is largely unused, and redundant with the saul_pwm_rgb_params
functionality of SAUL.
2024-02-21 15:44:05 +01:00
chrysn
756a384442 makefiles, treewide: Remove MCU variable 2024-02-18 20:46:09 +01:00
Marian Buschsieweke
f68f977274
Merge pull request #20312 from maribu/drivers/periph_common/spi/transfer_u16
drivers/periph_spi: Add `spi_transfer_u16_be()`
2024-02-12 16:24:10 +00:00
benpicco
55b6728224
Merge pull request #19738 from benpicco/stdio_dispatch
stdio_dispatch: allow to select multiple stdio methods at the same time
2024-02-09 16:13:27 +00:00
Benjamin Valentin
8d205b496b drivers/slipdev: don't append 0-byte to stdin 2024-02-09 15:31:21 +01:00
Benjamin Valentin
6fdcc56f38 stdio_slipdev: port to new interface 2024-02-09 15:31:21 +01:00
Marian Buschsieweke
6fb369d4fc
drivers/periph/gpio_ll: Add API to switch direction
This adds two functions:

    void gpio_ll_switch_dir_output(gpio_port_t port, uword_t outputs);
    void gpio_ll_switch_dir_input(gpio_port_t port, uword_t inputs);

The first configures GPIO pins specified by a bitmask as output, the
second configures the specified pins as input.

The main use case is to allow bit-banging bidirectional protocols using
more basic GPIO peripherals that do not implement open drain mode, such
as found e.g. on MSP430, ATmega, or SAM0.

It is not intended to implement this feature on modern MCUs with
sophisticated GPIO peripherals.
2024-02-05 10:56:16 +01:00
Marian Buschsieweke
8bf61336a2
Merge pull request #20290 from maribu/drivers/periph/gpio_ll/features
drivers/periph_gpio_ll: Fix GPIO_DISCONNECT handling and add compile time feature checks
2024-02-05 07:30:54 +00:00
Benjamin Valentin
fcd734e10e drivers/ethos: add STDIO_UART_RX_BUFSIZE compat define 2024-02-03 13:09:10 +01:00
Marian Buschsieweke
47280b3a9b
drivers/w5100: make use of spi_transfer_u16_be()
This also fixes a bug, as the free coded byte swap code was incorrect.
2024-02-02 13:05:02 +01:00
Marian Buschsieweke
87abafb13f
drivers/periph_spi: Add spi_transfer_u16_be()
This adds a helper function to exchange a 16 bit number that is to
be transferred in big endian order on the wire.
2024-02-02 13:05:02 +01:00
Martine Lenders
34fcffe37b
Merge pull request #20170 from miquel-b/lsm6dsxx
drivers/lsm6dsxx: refactoring Lsm6dsl into common driver Lsm6dsxx
2024-01-30 19:07:04 +00:00
chrysn
55cbb7bdfa
Merge pull request #20303 from chrysn-pull-requests/rust-updates
treewide: Rust updates
2024-01-29 19:54:32 +00:00
chrysn
3c5a540d01 drivers/lsm303agr: Use version 1.0 of driver 2024-01-27 09:41:26 +01:00
chrysn
96af920a12 drivers/lsm303agr: Use version 0.3 of driver
Note that for the very CPU this driver is used with (nRF52 on the
microbit-v2 board), this currently needs extra workarounds to copy
written data from flash to RAM so that the driver can see it. (Otherwise
it silently writes 00, and then correctly reads 00 from the bus all the
time).
2024-01-27 09:41:26 +01:00
Benjamin Valentin
a774ad935b drivers/w5100: make use of netdev_eui48_get() 2024-01-26 21:42:27 +01:00
MrKevinWeiss
bd64ed460b
drivers/lsm6dsxx: Cleanup style 2024-01-25 09:16:10 +01:00
MrKevinWeiss
ab84f2387b
drivers/saul: replace lsm6dsl->lsm6dsxx 2024-01-24 20:32:03 +01:00
MrKevinWeiss
1d05932bb9
drivers: Fix kconfig error
Even though it is removed just to get this through
2024-01-24 12:23:01 +01:00
Miquel-HAW
71169638ca drivers/lsm6dsxx: Implement common code 2024-01-24 09:57:04 +01:00
Marian Buschsieweke
bd3f54ac8f
drivers/periph_gpio_ll: Add features for compile-time-checks
This adds the features

 - periph_gpio_ll_input_pull_down:
        To indicate support for input mode with internal pull down
 - periph_gpio_ll_input_pull_keep:
        To indicate support for input mode with internal resistor
        pulling towards current level
 - periph_gpio_ll_input_pull_up:
        To indicate support for input mode with internal pull up
 - periph_gpio_ll_disconnect:
        To indicate a GPIO can be disconnected
 - periph_gpio_ll_open_drain:
        To indicate support for open drain mode
 - periph_gpio_ll_open_drain_pull_up:
        To indicate support for open drain mode with internal pull up
 - periph_gpio_ll_open_source:
        To indicate support for open source mode
 - periph_gpio_ll_open_source_pull_down:
        To indicate support for open source mode with internal pull down
2024-01-23 15:03:34 +01:00
Marian Buschsieweke
00cb9668ae
drivers/periph_gpio_ll: Improve documentation
The documentation on the state `GPIO_DISCONNECT` was a bit vague. The
API doc said it should disconnect the GPIO from all peripherals, the
test also tested them for being electrically disconnected.

The documentation in both the test and the API is extended to point out
that a GPIO indeed SHOULD be in high impedance state, but that user
MUST NOT expect that this requested is honored by every implementation
and for every GPIO pin.

In the test it is also pointed out that failing the test for a GPIO
in the `GPIO_DISCONNECT` state being electrically disconnected is for
some pins expected, and that the test should be just run again with
different GPIOs. The test intentionally tests for a feature not provided
by every GPIO pin rather than warning on a failure: The effort to just
flash and run the test again with different GPIOs is relatively low, but
it does confirm correct behavior of the API.
2024-01-22 10:28:35 +01:00
Marian Buschsieweke
922276296e
drivers/periph/gpio_ll: pass gpio_conf_t by value
Now that `gpio_conf_t` is on all implemented platforms no larger than
a register, we can more efficiently pass it by value rather than via
pointer.
2024-01-21 09:19:08 +01:00
Marian Buschsieweke
2a00ec13e5
drivers/periph/gpio_ll: shrink gpio_conf_t
This commit optimizes the `gpio_conf_t` type in the following
regards:

- The "base" `gpio_conf_t` is stripped from members that only some
  platforms support, e.g. drive strength, slew rate, and disabling of
  the Schmitt Trigger are no longer universally available but
  platform-specific extensions
- The `gpio_conf_t` is now crammed into a bit-field that is 8 bit or
  16 bit wide. This allows for storing lots of them e.g. in
  `driver_foo_params_t` or `uart_conf_t` etc.
- A `union` of the `struct` with bit-field members and a `bits` is used
  to allow accessing all bits in a simple C statement and to ensure
  alignment for efficient handling of the type

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2024-01-21 08:38:40 +01:00
Miquel-HAW
c79631c6a5 drivers/lsm6dsxx: Replace all lsm6dsl with lsm6dsxx in the files 2024-01-18 14:20:56 +01:00
Miquel-HAW
ce987ccddd drivers/lsm6dsxx: dir and file renaming 2024-01-18 14:20:56 +01:00
benpicco
d5f1fda70d
Merge pull request #20230 from benpicco/CONFIG_UART_DMA_THRESHOLD_BYTES
cpu/stm32: uart: don't do DMA for small transfers
2024-01-18 12:26:30 +00:00
Marian Buschsieweke
0cffb7f365
Merge pull request #20257 from fzi-haxel/native64-part1
core, sys, drivers: 64-bit support preparations
2024-01-17 15:40:34 +00:00
Frederik Haxel
3feb1a369b drivers: 64 bit compatibility
Fixed compilation errors for pointer casting.
2024-01-17 16:05:12 +01:00
Benjamin Valentin
1e1244042e drivers/mtd_spi_nor: make use of busy_wait() 2024-01-15 14:56:35 +01:00
Frederik Haxel
381cae6eb1 drivers: Added PRIuSIZE print format specifier 2024-01-12 17:17:33 +01:00
Gunar Schorcht
caa31ecbdc drivers/mtd: fix mtd_write_sector
Parameter `num` of `mtd_write_page_raw` is the number of bytes to be written, which is the number of sectors to be written`count` multiplied by the pages per sector `mtd->pages_per_sector` and the page size `mtd->page_size`.
2024-01-07 16:47:11 +01:00
Kevin "Tristate Tom" Weiss
7fef2e4b6f
Merge pull request #20214 from benpicco/CONFIG_SPI_DMA_THRESHOLD_BYTES
cpu/stm32/periph_spi: only perform DMA transfer above threshold
2024-01-04 17:32:02 +00:00
Benjamin Valentin
9710d4a23c drivers/periph: introduce CONFIG_UART_DMA_THRESHOLD_BYTES 2024-01-04 17:33:51 +01:00
benpicco
9b3c39ac76
Merge pull request #18066 from benpicco/slipdev-chunked_rb
drivers/slipdev: make use of chunked ringbuffer
2024-01-04 08:44:43 +00:00
Marian Buschsieweke
f860d96a25
Merge pull request #19891 from chrysn-pull-requests/ws2181x_timer
drivers/ws281x: Add gpio_ll and timer based driver
2024-01-03 09:22:26 +00:00
Benjamin Valentin
1a888fe556 drivers/slipdev: make use of chunked ringbuffer 2024-01-02 14:41:11 +01:00
benpicco
ece8a12f81
Merge pull request #20173 from fabian18/pr/mtd_flashpage_improve_write_page
drivers/mtd_flashpage: improve _write_page
2024-01-02 13:21:51 +00:00
Fabian Hüßler
37c39d0ee0 drivers/mtd_flashpage: improve _write_page 2023-12-31 00:26:40 +01:00
Benjamin Valentin
fbeb1f9a26 drivers/periph/spi: move DMA threshold to common code 2023-12-23 17:35:29 +01:00
Frederik Haxel
ec7fe8d598 drivers: Use size_t print format specifier
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
2023-12-21 12:02:28 +01:00
MrKevinWeiss
7b80348f31
drivers/ws281x: Fix Kconfig
Patch from https://github.com/RIOT-OS/RIOT/pull/19891#pullrequestreview-1753651538
2023-12-19 11:13:43 +01:00
chrysn
d86405cef4
drivers/ws281x: Add timer and gpio_ll based driver 2023-12-19 11:13:43 +01:00
chrysn
02285fd63a
drivers/periph: Add timer_poll feature and timer_poll_channel function 2023-12-19 11:13:41 +01:00
benpicco
208790a5f1
Merge pull request #20108 from benpicco/drivers/dose-uart_ondemand_tx
drivers/periph/uart: add periph_uart_tx_ondemand feature
2023-12-14 20:42:55 +00:00
Benjamin Valentin
9cde80ef36 drivers_dose: enable TX UART on-demand 2023-12-14 18:30:38 +01:00
Benjamin Valentin
fc9669bcfd drivers/periph/uart: add periph_uart_tx_ondemand feature 2023-12-14 18:30:38 +01:00
Gunar Schorcht
aabc331494 drivers/mtd: improve doc consistency for MTDs 2023-12-14 17:27:13 +01:00
Gunar Schorcht
c872f0e18e drivers/sdcard_spi: small changes in doc for consistency 2023-12-14 17:26:29 +01:00
benpicco
d13e6c4e83
Merge pull request #20180 from benpicco/mtd_sdmmc-erase
drivers/mtd_sdmmc: always enable the erase function
2023-12-14 13:42:33 +00:00
Benjamin Valentin
bfe26c68d3 drivers/mtd: introduce mtd_write_sector() 2023-12-14 14:27:19 +01:00
Benjamin Valentin
f57f2a125f drivers/mtd_sdmmc: set MTD_DRIVER_FLAG_DIRECT_WRITE flag 2023-12-14 14:27:08 +01:00
Benjamin Valentin
f34abe88a0 drivers/mtd_sdmmc: always enable the erase function 2023-12-14 14:27:08 +01:00
benpicco
6eac1e1761
Merge pull request #15380 from benpicco/mtd_drop_write
mtd/*: drop .write() if .write_page() is implemented
2023-12-13 20:35:53 +00:00
Benjamin Valentin
9855b02b07 mtd: drop .write() function
All MTD drivers should now implement the .write_page() function instead.
2023-12-13 17:46:43 +01:00
Benjamin Valentin
431afeaa51 drivers/mtd_sdmmc: drop .write() function 2023-12-13 16:58:31 +01:00
Benjamin Valentin
cf123f98d5 drivers/mtd_emulated: drop .write() function 2023-12-13 16:56:51 +01:00
Benjamin Valentin
6c28a7d62c drivers/mtd_mapper: drop .write() function 2023-12-13 16:56:51 +01:00
Benjamin Valentin
ba17c14aef drivers/mtd_sdcard: drop .write()
The old .write() function is only used as a fall-back if .write_page()
is not implemented.
We can drop it.
2023-12-13 16:50:41 +01:00
Benjamin Valentin
ea105d34ec drivers/mtd_spi_nor: drop .write()
The old .write() function is only used as a fall-back if .write_page()
is not implemented.
We can drop it.
2023-12-13 16:50:41 +01:00
Benjamin Valentin
26aba7b8c7 drivers/at25xxx: drop .write()
The old .write() function is only used as a fall-back if .write_page()
is not implemented.
We can drop it.
2023-12-13 16:50:41 +01:00
Benjamin Valentin
5acfb20d02 drivers/periph/uart: add functions to query RTS/CTS pins 2023-12-12 20:25:39 +01:00
Gunar Schorcht
9410ec705e drivers/mtd: replace checks by assert in mtd_dev_get
Assertions are used instead of returning a NULL pointer to detect errors in the MTD definition and access in the case that the return value is not evaluated.
2023-12-07 15:32:49 +01:00
Gunar Schorcht
4b6e13ce29 drivers/mtd_default: remove extern mtd_dev_t * declarations 2023-12-07 15:32:49 +01:00
Marian Buschsieweke
b917807444
drivers/periph_timer: add periph_timer_query_freqs
Allow accessing supported timer frequencies with a dedicated API.
This API needs to be implemented per platform and is available with
the feature periph_timer_query_freqs.
2023-12-05 16:07:24 +01:00
Benjamin Valentin
97ab5ef12e drivers/sdmmc: fix placement of #endif 2023-12-05 08:55:08 +01:00
benpicco
ad7bf85712
Merge pull request #20113 from gschorcht/drivers/mtd/fix_xfa
drivers/mtd: fix the order of entries in the MTD pointer XFA `mtd_dev_xfa`
2023-11-27 19:00:04 +00:00
benpicco
31224b4d2d
Merge pull request #20112 from maribu/drivers/lpsxxx
drivers/lpsxxx: add missing sign extension
2023-11-27 16:14:39 +00:00
Gunar Schorcht
ff79f39fd5 drivers/mtd: fix the order in the MTD pointer XFA
The commit fixes the order of entries in the MTD pointer XFA `mtd_dev_xfa` according to their index by using the index as the priority in the XFA.
2023-11-27 17:14:23 +01:00
benpicco
c93a5b84a3
Merge pull request #20020 from gompper/periph/freqm
drivers/include/periph: add FREQM peripheral driver
2023-11-27 16:06:52 +00:00
Marian Buschsieweke
bf6807c85a
drivers/lpsxxx: add missing sign extension
Fixes https://github.com/RIOT-OS/RIOT/issues/20093
2023-11-27 10:17:47 +01:00
Urs Gompper
97bde07e0d drivers/periph_common: add peripheral freqm to Kconfig 2023-11-23 20:53:15 +01:00
Urs Gompper
afcd4801bd drivers/include: add header definition for freqm 2023-11-23 20:37:52 +01:00
Benjamin Valentin
138cbb83d6 drivers/soft_uart: include board.h 2023-11-23 13:45:00 +01:00
Marian Buschsieweke
e7c9451b55
drivers/pcf857x: use errno code for error reporting
This makes it easier to use common error reporting such as `strerror()`
or `tiny_strerror()` to give more insight on why something failed.

The custom error codes via `enum` have been updated to be synonymous
with the `errno` codes for backward compatibility.

In addition, `pcf857x_init()` has been updated to no longer or
together the return code, but rather abort on the first fail transaction
and return the error code as is. Otherwise (when both fail due to
different error codes) the returned error code may be garbage.
2023-11-22 10:29:33 +01:00
Marian Buschsieweke
6380d81119
Merge pull request #20091 from benpicco/at24cs0x
drivers/at24cxxx: add defines for AT24CS04 & AT24CS08
2023-11-16 17:41:29 +00:00
Benjamin Valentin
1a19005c22 drivers/at24cxxx: add defines for AT24CS04 & AT24CS08 2023-11-16 14:28:20 +01:00
Karl Fessel
8a9fdf4661
Merge pull request #20062 from derMihai/at_fix_pr
drivers/at: fix URC collision with command response
2023-11-16 12:04:48 +00:00
Benjamin Valentin
63cd55cc7b drivers/mtd_default: deprecate mtd_default_get_dev() 2023-11-10 19:53:48 +01:00
Benjamin Valentin
396d3bbe2b drivers/mtd: introduce mtd_dev_get() 2023-11-10 19:53:48 +01:00
Mihai Renea
e99cafba33 drivers/at: fix URC collision with command response 2023-11-10 15:26:47 +01:00
benpicco
04617ee0a9
Merge pull request #20045 from benpicco/periph_adc_continous
periph/adc: introduce periph_adc_continuous
2023-11-10 12:13:54 +00:00
Benjamin Valentin
2421919295 periph/adc: introduce periph_adc_continous 2023-11-10 12:10:49 +01:00
Marian Buschsieweke
4b88a420ad
drivers/pcf857x: minor cleanup
- make sure format specifiers match variable arguments in debug
  statements
- drop unused headers
2023-11-10 09:57:58 +01:00
Benjamin Valentin
3889592db5 drivers/mtd_sdmmc: support mounting ext2/3/4 filesystems 2023-11-09 20:15:52 +01:00
Karl Fessel
a36802f9c7 driver/mtd: mtd_init add documentation for return value 2023-11-01 10:56:13 +01:00
Benjamin Valentin
6ec3f54b3c drivers/slipdev: improve default UART selection 2023-10-26 16:10:05 +02:00
bors[bot]
03d3874e51
Merge #19465 #19981 #19995
19465: drivers/mtd: use XFA for pointers to defined MTDs r=benpicco a=gschorcht

### Contribution description

This PR provides the support to hold pointers to defined MTDs within a XFA. The XFA allows
- to access MTDs of different types (`mtd_flashpage`, `mtd_sdcard`, `mtd_emulated`, ...) by an index
- to determine the number of MTDs defined in the system.

### Testing procedure

To be defined once PR #19443 is merged because emulated MTDs will allow to test this PR on arbitrary boards.

### Porting Guide

For external boards:
 - remove the `MTD_NUMOF` definition from `board.h`
 - add `MTD_XFA_ADD(<mtd_dev>, <idx>);` to the definition of `<mtd_dev>`.
 - `MTD_0`, `MTD_1`, … defines are no longer needed.

### Issues/PRs references

 Related to PR #19443

19981: Fletcher32: Add incremental API r=benpicco a=bergzand

### Contribution description

This PR extends the current fletcher32 checksum with an incremental API mode. This way the bytes to be checksummed can be supplied via multiple successive calls and do not have to be provided in a single consecutive buffer.

I've also rephrased the warning with the original function a bit as that function uses an `unaligned_get_u16` to access the data. The data thus does not require alignment, but the length does need to be supplied as number of 16 bit words.

### Testing procedure

The test has been extended


### Issues/PRs references

None

19995: sys/psa_crypto: Fix macro for public key max size and SE example r=benpicco a=Einhornhool

### Contribution description
#### 1. Wrong public key size when using secure elements, introduced by  #19954
Fixed conditions for key size macros in `crypto_sizes.h`.

#### 2. EdDSA and ECDSA examples fail when using a secure element because of unsopported changes introduced by #19954
Updated `example/psa_crypto` to use only supported functions for secure elements.

### Testing procedure
Build `example/psa_crypto` for secure elements and run application

Output on master:
```
2023-10-19 14:33:24,372 # main(): This is RIOT! (Version: 2019.07-devel-22378-gb6772)
2023-10-19 14:33:24,372 # HMAC SHA256 took 56393 us
2023-10-19 14:33:24,372 # Cipher AES 128 took 68826 us
2023-10-19 14:33:24,372 # *** RIOT kernel panic:
2023-10-19 14:33:24,373 # HARD FAULT HANDLER
2023-10-19 14:33:24,373 # 
2023-10-19 14:33:24,373 # *** rebooting...

```
Output with fixes:
```
2023-10-19 13:35:24,715 # main(): This is RIOT! (Version: 2019.07-devel-22384-g8ef66-dev/psa-crypto-fixes)
2023-10-19 13:35:24,715 # HMAC SHA256 took 56374 us
2023-10-19 13:35:24,715 # Cipher AES 128 took 68805 us
2023-10-19 13:35:24,715 # ECDSA took 281164 us
2023-10-19 13:35:24,715 # All Done
```


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Co-authored-by: Koen Zandberg <koen@bergzand.net>
Co-authored-by: Lena Boeckmann <lena.boeckmann@haw-hamburg.de>
2023-10-19 19:01:12 +00:00
Marian Buschsieweke
edc43201db
tree-wide: fix typos in doc and comments
This should not change any generated binary
2023-10-16 12:17:48 +02:00
bors[bot]
dd62f419d7
Merge #19941
19941: drivers/lcd: add MCU-driven low-level parallel interface r=benpicco a=gschorcht

### Contribution description

The PR extends the LCD driver by a low-level interface for MCU-driven implementations of the MCU 8080 16-/8-bit parallel interface, allowing the MCU to use special peripherals for the interface, such as the FMC for STM32 MCUs, which is significantly faster than the integrated GPIO-driven parallel interface implementation of the LCD driver.

### Testing procedure

~Once PR #19938 and PR #19939 are merged, a PRs for these board can be pushed that allow to test this PR.~

Use either PR #19943 or PR #19944 on top of this PR to test, e.g. with PR #19943:
```
BOARD=stm32f723e-disco make -j8 -C tests/drivers/st77xx flash
```

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-10-05 09:29:41 +00:00
Gunar Schorcht
9da0cc5bfd drivers/mtd_sdmmc: use XFA with MTD pointers 2023-10-02 12:28:08 +02:00
Gunar Schorcht
e70e6d7db2 drivers/mtd_emulated: use XFA with MTD pointers 2023-10-02 12:28:08 +02:00
Gunar Schorcht
e5c541b77c drivers/mtd_sdcard: use XFA with MTD pointers 2023-10-02 12:28:07 +02:00
Gunar Schorcht
739cb53ca9 drivers/mtd_default: use XFA with MTD pointers 2023-10-02 12:28:07 +02:00
Gunar Schorcht
bd67236788 drivers/mtd: store MTD pointers as XFA 2023-10-02 12:27:35 +02:00