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
60f8468191
cpu/sam0_common: implement uart_tx_ondemand
2023-12-14 18:30:38 +01:00
Gunar Schorcht
d089c122c1
cpu/sam0_common: improve doc consistency for MTDs
2023-12-14 17:26:29 +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
c6646125f7
native/mtd: 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
2235dc2464
cpu/esp_common: flash: 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
6b86e274d9
cpu/sam0/uart: implement uart_pin_cts()/uart_pin_rts()
2023-12-12 20:26:17 +01:00
Marian Buschsieweke
3002f1efa3
cpu/stm32: fix periph_i2c for F1, F2, L1 and F4 families
...
- boot the I2C after init in low power mode
- otherwise I2C will consume more power until the first time it is
used, which is surprising
- STM32 F1 only: reconfigure SCL and SDA as GPIOs while the I2C
peripheral is powered down
- When the I2C peripheral is not clocked, it drives SCL and SDA
down. This will dissipate power across the pull up resistor.
2023-12-12 09:55:47 +01:00
Marian Buschsieweke
13f0a5062d
cpu/stm32/periph_i2c: improve DEBUG output
2023-12-12 09:55:47 +01:00
Marian Buschsieweke
bb07bb6613
Merge pull request #20160 from maribu/cpu/msp430/timer
...
cpu/msp430: improve periph_timer
2023-12-10 13:02:30 +00:00
Marian Buschsieweke
a3cd9ef387
Merge pull request #20111 from maribu/cpu/nrf5x_common/cleanup_uart
...
cpu/nrf5x_common: clean up UART implementation
2023-12-10 08:32:30 +00:00
Marian Buschsieweke
e6154a04a1
cpu/msp430: aid optimizer
...
Declare functions retrieving the clock domains frequency as pure so
that common subexpressions can be eliminated more easily.
2023-12-10 09:11:23 +01:00
Marian Buschsieweke
7044699388
cpu/msp430: improve periph_timer
...
- add support for multiple timers
- add support for selecting clock source in the board's `periph_conf.h`
- add support for the prescaler
- implement `periph_timer_query_freqs`
- add a second timer to all MSP430 boards
- the first timer is fast ticking, high-power
- the second is slow ticking, low-power
2023-12-10 09:11:23 +01:00
Marian Buschsieweke
43e62e68f7
Merge pull request #20149 from maribu/cpu/stm32/buf-wfi
...
cpu/cortexm_common: work around bug on WFI for STM32
2023-12-09 15:45:12 +00:00
Marian Buschsieweke
46571b6aec
Merge pull request #20144 from maribu/periph_timer_query_freq-kinetis
...
cpu/kinetis: implement periph_timer_query_freqs
2023-12-09 12:39:06 +00:00
Marian Buschsieweke
95be5edf5c
Merge pull request #20145 from maribu/periph_timer_query_freq-nrf5x
...
cpu/nrf5x_common: implement periph_timer_query_freqs
2023-12-09 07:42:56 +00:00
Marian Buschsieweke
b40ab8f833
cpu/nrf5x_common: implement periph_timer_query_freqs
2023-12-08 23:23:07 +01:00
Marian Buschsieweke
2a6ef9fda4
Merge pull request #20146 from maribu/periph_timer_query_freq-qn908x
...
cpu/qn908x: implement periph_timer_query_freqs
2023-12-08 14:46:01 +00:00
Marian Buschsieweke
9718e9afc0
Merge pull request #20143 from maribu/periph_timer_query_freq-cc26xx_cc13xx
...
cpu/cc26xx_cc13xx: implement periph_timer_query_freqs
2023-12-08 14:45:55 +00:00
Marian Buschsieweke
481e3a95d4
Merge pull request #20142 from maribu/periph_timer_query_freq-atmega
...
cpu/atmega_common: implement periph_timer_query_freqs
2023-12-08 11:22:56 +00:00
Marian Buschsieweke
b0261f31ab
Merge pull request #20148 from maribu/periph_timer_query_freq-stm32
...
cpu/stm32: implement periph_timer_query_freqs
2023-12-07 21:57:49 +00:00
Marian Buschsieweke
eb2e6983d1
Merge pull request #20147 from maribu/periph_timer_query_freq-sam0
...
cpu/sam0_common: implement periph_timer_query_freqs
2023-12-07 16:24:32 +00:00
Marian Buschsieweke
b6a7815b48
cpu/sam0_common: implement periph_timer_query_freqs
2023-12-07 16:18:09 +01:00
Marian Buschsieweke
35e140b540
cpu/qn908x: implement periph_timer_query_freqs
2023-12-07 16:17:57 +01:00
Marian Buschsieweke
f52e20c248
cpu/kinetis: implement periph_timer_query_freqs
2023-12-07 16:17:31 +01:00
Marian Buschsieweke
c18c47d621
cpu/cc26xx_cc13xx: implement periph_timer_query_freqs
2023-12-07 16:15:43 +01:00
Marian Buschsieweke
e78630fc40
cpu/atmega_common: implement periph_timer_query_freqs
2023-12-07 16:15:22 +01:00
Marian Buschsieweke
3868a7fa10
cpu/stm32: implement periph_timer_query_freqs
2023-12-07 16:15:06 +01:00
Gunar Schorcht
d59d48d58b
cpu/native: replace external mtd0
declaration
...
Since the `extern mtd_dev_t *` declarations were removed from board definitions, `mtd_dev_get` has to be used instead.
2023-12-07 15:32:49 +01:00
Marian Buschsieweke
dd88935f46
cpu/msp430: consistently use msp430 prefix in names
...
Previously sometimes `msp_` was used as prefix, sometimes `msp430_`.
This makes the naming consistent.
2023-12-06 17:10:11 +01:00
Marian Buschsieweke
1c281d2768
cpu/cortexm_common: work around bug on WFI for STM32
...
See [1] for details. (archive.org backup at [2]).
Fixes https://github.com/RIOT-OS/RIOT/issues/13918
Fixes https://github.com/RIOT-OS/RIOT/issues/14015
[1]: https://cliffle.com/blog/stm32-wfi-bug/
[2]: https://web.archive.org/web/20231205101603/https://cliffle.com/blog/stm32-wfi-bug/
2023-12-05 15:16:55 +01:00
benpicco
182700fef4
Merge pull request #20134 from benpicco/cpu/sam0_common-adc_continuous-fix
...
cpu/sam0_common: fix adc_continuous_sample()
2023-12-01 20:05:27 +00:00
Benjamin Valentin
1e9b1992df
cpu/sam0_common: fix adc_continuous_sample()
2023-12-01 19:45:54 +01:00
Gerson Fernando Budke
166ee62300
cpu/atxmega: Drop unnecessary test config
...
Co-authored-by: MrKevinWeiss <weiss.kevin604@gmail.com>
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2023-12-01 14:12:24 +01:00
Gerson Fernando Budke
ab70f20069
cpu/avr8_common: Fix PM and Common peripherals build
...
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2023-12-01 14:12:24 +01:00
Gerson Fernando Budke
c64a64f549
cpu/atmega_common: Increase stack a little bit
...
This is necessary to allow run the thread_duel example.
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2023-12-01 14:12:24 +01:00
Gerson Fernando Budke
9dfdedcaf7
cpu/atmega_common: Add PM on peripherals
...
Add PM blocks to adc/i2c/spi peripherals.
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2023-12-01 14:12:23 +01:00
Gerson Fernando Budke
549e2b4de1
cpu/atxmega: Fix PM states on peripherals
...
Fix the required PM state on i2c and spi peripherals.
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2023-12-01 14:12:23 +01:00
Gerson Fernando Budke
3b9368a99e
cpu/avr8: Enable PM periph to all SoC
...
This refactor the current xmega PM peripheral to avr8 common and extend
PM to cpus families.
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2023-12-01 14:12:23 +01:00
david-vankampen
b09713e058
Merge branch 'RIOT-OS:master' into stm32_adc_cal
2023-11-27 14:22:39 -05: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
659ef97730
cpu/nrf5x_common: clean up UART implementation
...
The functions `uart_poweron()`, `uart_poweroff()` and `uart_mode()`
can share code between the UART (UART without EasyDMA) and UARTE
(UART with EasyDMA) implementations, so let's do that.
2023-11-27 09:49:01 +01:00
Marian Buschsieweke
73bde97e9d
Merge pull request #20102 from maribu/cpu/nrf5x_common/clean_up_uart
...
cpu/nrf5x: clean up periph_uart
2023-11-26 20:43:29 +00:00
Marian Buschsieweke
a28003f0fa
cpu/nrf5x_common: add whitespace to please linter
...
Fixes the "comma should be followed by whitespace" warning from
`static-tests`.
2023-11-26 21:33:23 +01:00
Marian Buschsieweke
63faa5f162
cpu/nrf5x: clean up periph_uart
...
- nRF51: Use `uart_conf_t` for consistency with nRF52
- nRF52832: Use UARTE (UART with EasyDMA) over UART (without DMA), as
done for all other nRF52 family members
- use `UARTE_PRESENT` to detect whether an UARTE can be used, rather
than family names
2023-11-26 21:33:23 +01:00
Marian Buschsieweke
60676bfd5c
Merge pull request #20107 from maribu/cpu/nrf51/periph/i2c.c
...
cpu/nrf51: fix periph_i2c driver
2023-11-24 10:23:57 +00:00
Marian Buschsieweke
e407460243
cpu/nrf51: fix periph_i2c driver
...
The `i2c_read_bytes()` and `i2c_write_bytes()` function return the
number of bytes written / read, instead of `0` as the API contract
says. This fixes the issue.
2023-11-24 10:03:07 +01:00
Marian Buschsieweke
f4729c28ec
cpu/stm32/periph_spi: improve prescaler calculation
...
With only 8 possible prescalers, we can just loop over the values
and shift the clock. In addition to being much easier to read, using
shifts over divisions can be a lot faster on CPUs without hardware
division.
In addition an `assert()` is added that checks if the API contract
regarding the SPI frequency is honored. If the requested clock is too
low to be generated, we should rather have a blown assertion than
hard to trace communication errors.
Finally, the term prescaler is used instead of divider, as divider may
imply that the frequency is divided by the given value n, but
in fact is divided by 2^(n+1).
2023-11-24 08:49:25 +01:00
Marian Buschsieweke
63a2a50b5f
cpu/stm32/periph_spi: Fix /CS handling
...
Previously, the /CS signal was performed by enabling / disabling the
SPI peripheral. This had the disadvantage that clock polarity settings
where not applied starting with `spi_acquire()`, as assumed by e.g.
the SPI SD card driver, but only just before transmitting data.
Now the SPI peripheral is enabled on `spi_acquire()` and only disabled
when calling `spi_release()`, and the `SPI_CR2_SSOE` bit in the `CR2`
register is used for hardware /CS handling (as supposed to).
2023-11-24 08:49:25 +01:00
Marian Buschsieweke
7057aa674d
cpu/stm32: Provide spi_mode_t
...
This doesn't change the firmware, since for all STM32 MCUs with an
SPI driver the register setting in the mode did match the SPI mode
number by chance. But for some STM32 MCUs with no SPI driver yet
the register layout is indeed different. This will help to provide an
SPI driver for them as well.
2023-11-24 08:49:24 +01:00