Dylan Laduranty
b4b41bc899
sam0/usbdev: partial revert of #17086
...
Reverting theses changes from #17086 because it breaks SAM0 usbdev in master
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2023-03-13 13:49:42 +01:00
10578c7895
cpu/sam0_common: Add stall functions to usbdev
2023-02-28 11:00:06 +01:00
Benjamin Valentin
470bee59a7
cpu/sam0_common: implement 16 bit mode by oversampling
2023-02-23 22:17:48 +01:00
Benjamin Valentin
9dcb3991d2
cpu/sam0_common: move adc_res_t to common code
2023-01-17 17:18:07 +01:00
Marian Buschsieweke
86fdbd7054
core/lib: Add macros/utils.h header
...
The macros CONCAT(), MIN(), and MAX() are defined over and over again in
RIOT's code base. This de-duplicates the code by moving the macros to a
common place.
2023-01-07 09:47:44 +01:00
Teufelchen1
2629e81b3b
cpu/sam0_common/periph: Fix compilation with LLVM
2022-12-19 15:19:51 +01:00
Antonio Galea
ee76e21c33
sam0_common: use size_t len for I2C transfers, as declared ( fixes #19008 )
2022-12-04 16:57:00 +01:00
Juergen Fitschen
268bdfec29
sam0/rtc_rtt: don't block until set_alarm has been propagated to periph
...
rtc_set_alarm() / rtt_set_alarm() are heavily used by ztimer during ISR. This will reduce time spent during ISR drastically. We trust that the peripheral is able to propagate the alarm asynchronously.
2022-11-16 17:02:19 +01:00
Juergen Fitschen
9c6f07f80a
sam0/rtc_rtt: optimize pm_unblock/pm_block ping-pong during set alarm
2022-11-16 16:54:29 +01:00
Jue
24461b43f8
cpu/sam0/spi: generalize pm_layered interaction
...
In DMA mode SPI transfers are carried out by HW. We need to block certain pm modes during transfer.
2022-11-03 14:53:44 +01:00
Jue
db9263eeca
cpu/sam0/rtc_rtt: integrate pm_layered
2022-11-03 14:53:43 +01:00
Jue
cc4e880aa8
cpu/sam0/rtc: remove overflow IRQ
...
Due to the RIOT_EPOCH of 2020 this overflow will happen in year 2084. It would be scary if IoT devices are still around then.
We can save RAM and ROM. Furthermore, this overflow handling should block BACKUP power mode in order to keep track of the reference year.
2022-11-03 14:52:38 +01:00
Jue
5866262122
cpu/sam0/usbdev: generalize pm_layered interaction
...
periph_cpu.h should define the required pm modes.
Additionally, some CPUs require a certain pm mode in USB IDLE mode.
2022-11-03 14:27:47 +01:00
Jue
220be1da7e
cpu/sam0/gpio: integrate pm_layered
2022-11-03 14:27:47 +01:00
Jue
ae9190da30
cpu/sam0/uart: integrate pm_layered
2022-11-03 14:27:47 +01:00
Jue
aa5ad12f37
cpu/sam0/uart: skip uart_write() if uart isn't active
...
Otherwise we get stuck in an endless loop ...
2022-11-03 14:27:47 +01:00
Jue
cf5e207d62
cpu/sam0/uart: enable peripheral clock before accessing regs
2022-11-03 14:27:47 +01:00
Jue
4f25c1017d
cpu/sam0/timer: integrate pm_layered
2022-11-03 14:27:47 +01:00
Benjamin Valentin
a7c0bf5341
cpu/sam0_common: adc: drop pin from adc_conf_chan_t
2022-09-27 19:36:10 +02:00
benpicco
baf1687951
Merge pull request #18146 from benpicco/cpu/sam0_common/adc-diffmode
...
cpu/sam0_common: adc: add support for differential mode
2022-09-27 17:34:07 +02:00
Kevin "Tristate Tom" Weiss
8a340fec11
Merge pull request #18223 from benpicco/cpu/sam0_common-spi_clk
...
cpu/sam0_common: spi: limit clock to source clock
2022-08-30 19:30:49 +02:00
Dylan Laduranty
950a7d51e9
cpu/sam0/timer: supply all clocks before accessing any regs
...
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2022-08-30 09:25:46 +02:00
Benjamin Valentin
2583239867
cpu/sam0_eth: generate RX event for queued packets
2022-06-17 10:50:31 +02:00
Benjamin Valentin
8a30474f30
cpu/sam0_common: spi: limit clock to source clock
2022-06-16 19:15:37 +02:00
Benjamin Valentin
d77724bf04
cpu/sam0_common: RTC: wait for syncbusy in rtc_get_time()
...
`rtt_get_counter()` already waits for syncbusy before reading the time,
but we also have to do this in RTC mode (`rtc_get_time()`) to avoid
reading old values.
Thus, always wait for syncbusy to clear when accessing the COUNT register.
2022-05-31 15:26:22 +02:00
Benjamin Valentin
24e918ca19
cpu/sam0_common: adc: default to 0 for ADC_NEG_INPUT
2022-05-30 20:41:18 +02:00
Benjamin Valentin
d6d5d935a6
cpu/sam0_common: adc: derive GPIO pin from AIN number
...
ADC pins are fixed on sam0
2022-05-30 20:41:18 +02:00
Benjamin Valentin
8075b69275
cpu/sam0_common: adc: handle differential mode
...
- store result in int16_t to ensure proper sign extension
- double differential result to account for bit lost for sign
2022-05-30 20:41:18 +02:00
Dylan Laduranty
5681cc0a95
Merge pull request #18042 from benpicco/cpu/sam0-adc-extref
...
cpu/sam0_common: adc: Automatically configure external reference pin
2022-05-18 13:37:07 +02:00
Marian Buschsieweke
bae91c1660
Merge pull request #17723 from benpicco/periph_timer_periodic-set_stopped
...
drivers/periph/timer: add TIM_FLAG_SET_STOPPED flag
2022-05-03 12:06:37 +02:00
Benjamin Valentin
35588d46bd
cpu/sam0_common: adc: Automatically configure extref pin
2022-05-02 16:23:49 +02:00
Benjamin Valentin
1f96e95fde
cpu/sam0_eth: implement SLEEP state
...
This saves ~3 mA when the device is in SLEEP mode.
2022-03-31 23:54:33 +02:00
9feb1ffa68
cpu/sam0_common: allow for setting the ADC device for each line
2022-03-17 11:44:40 +01:00
Benjamin Valentin
79698d674b
cpu/sam0_common: timer: implement TIM_FLAG_SET_STOPPED flag
2022-03-01 14:22:40 +01:00
Benjamin Valentin
7c1c2407b0
cpu/sam0_common: implement EXTWAKE for SAM L21
...
On SAM L21 only 8 EXTWAKE pins can wake the CPU from Backup sleep.
Handle this analogous to the RTC tamper pins on SAM D5x/E5x where
configuring them as an interrupt will also cause them to wake the
device from Deep Sleep.
2022-02-21 19:03:06 +01:00
Francisco Molina
067fa7502d
cpu/sam0_common: add periph_spi_init_gpio
2022-02-08 09:21:44 +01:00
benpicco
e8cbf1ea90
Merge pull request #16681 from benpicco/drivers/dose-collision
...
drivers/dose: make use of UART collision detection feature
2021-12-08 20:48:28 +01:00
Benjamin Valentin
a51fb298dc
cpu/sam0_common: implement periph_uart_collision feature
2021-12-08 17:35:00 +01:00
benpicco
228ba83dc6
Merge pull request #17184 from benpicco/drivers/dose-standby_fix
...
drivers/dose: fix standby mode
2021-12-07 11:09:43 +01:00
benpicco
05b9c84369
Merge pull request #17255 from MrKevinWeiss/pr/kconfig/sam54
...
.murdock: Add same54-xpro to kconfig tests
2021-11-29 23:22:23 +01:00
MrKevinWeiss
fba9cad987
periph/gpio: Model TAMPER_WAKE for kconfig
2021-11-29 09:12:28 +01:00
Gunar Schorcht
007e29ebb5
cpu/periph/i2c: update implementations to new I2C API
...
Make all `spi_acquire` implementations return `void` and add assertions to check for valid device identifier where missing.
2021-11-29 06:35:25 +01:00
Benjamin Valentin
669104d841
cpu/sam0_common: SPI: don't perform DMA transfer for small buffers
...
Setting up a DMA transfer can take longer than sending out a buffer
byte by byte if the buffer is small.
DMA only shows advantages for large buffers, using it for every transfer
will cause a net slowdown.
Since we did not come up with a good way to determine the treshold based
on the SPI frequency, just use a fixed buffer for now so that DMA can be
used without slowing things down overall.
2021-11-19 17:22:51 +01:00
a6b6f43ce2
sam0_common/usbdev: Adapt to xmit API
2021-11-16 20:17:04 +01:00
Benjamin Valentin
18cdd100a9
cpu/sam0_common: uart: set oversampling based on baud rate
...
In Asynchronous Fractional baud rate mode, the baud rate can not be
greater than the source frequency divided by the oversampling (8, 16).
Currently we are always using 16x oversampling.
This makes it impossible to e.g. set a 2 MHz UART baud rate on the 16 MHz
`saml10-xpro`.
With this change, the oversampling is automatically reduced to 8x which
allows us to set 16 MHz / 8 -> 2 MHz baud rate.
2021-11-11 17:03:05 +01:00
Benjamin Valentin
1ef458a701
cpu/sam0_common: uart: wait for synchronisation done after powerup
...
Otherwise we lose settings if we write to it right after uart_poweron()
2021-11-11 14:32:42 +01:00
dylad
8842377e93
cpu/sam0: prevent disabled irq from being called
...
Reported-by: biboc <bapclenet@gmail.com>
Signed-off-by: dylad <dylan.laduranty@mesotic.com>
2021-11-05 18:21:21 +01:00
d9dd0cc3b1
cpu/sam0_common: Uncrustified and fixed static-check issues
2021-11-04 13:49:34 +01:00
Benjamin Valentin
3fbf473a07
cpu/sam0_common: implement periph_rtc_mem
2021-09-03 11:43:43 +02:00
Francisco
a1cbcc9ede
Merge pull request #15902 from maribu/spi-api-change-1
...
drivers/periph_spi: let spi_acquire return void
2021-09-02 08:50:56 +02:00