Marian Buschsieweke
33195d7965
cpu/sam{d21,d5x,l21}: Claim support for BlackMagic Probe
...
Using `PROGRAMMER=bmp` has been proven to work reliably at least on
SAMD21, SAMD5x and SAML21.
Since using unsupported programmers is treated as a warning, this change
only reduces the noise in the shell a bit and is not a functional
change.
[1]: https://black-magic.org/supported-targets.html
2024-11-21 17:20:48 +01:00
Dylan Laduranty
16f6a4bb93
cpu/samd21: avoid the use of bitfield
...
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-05-30 12:01:24 +02:00
MrKevinWeiss
e0fdc3c16c
*Kconfig*: Modify Kconfig to remove dep model
2024-03-27 10:28:12 +01:00
MrKevinWeiss
7a68fb0d5e
*Kconfig*: Remove dep-only Kconfig files
2024-03-26 14:54:22 +01:00
Benjamin Valentin
9dcb3991d2
cpu/sam0_common: move adc_res_t to common code
2023-01-17 17:18:07 +01:00
Benjamin Valentin
124b849503
cpu: call early_init()
2023-01-08 22:26:12 +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
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
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
Benjamin Valentin
361a94460a
cpu/sam0_common: add ADC pin aliases
2022-08-31 18:23:44 +02:00
Benjamin Valentin
2c04d6cefe
cpu/samd21: handle silicon errata
...
- The `periph_flashpage` driver expects the manual write bit to be set
This should be set by default, but the SAM D20/SAM D21 errata sheets
correct that this is indeed *not* set by default, which may cause
spurious writes.
- SAM D20 may not wake up from any sleep mode if sleep power reduction
is enabled for the NVM block.
2022-06-09 18:27:30 +02:00
Benjamin Valentin
84add70772
cpu/samd21: define ADC pins
2022-05-30 20:41:18 +02:00
Benjamin Valentin
11acdd0526
cpu/samd*: adjust PM_BLOCKER_INITIAL to the new API
...
For saml1x and samd5x this becomes now obsolete as the default provides
this behavior.
2022-04-06 12:29:25 +02:00
Benjamin Valentin
0340ac6129
cpu: include IDLE in PM_NUM_MODES
2022-04-06 12:29:25 +02:00
Francisco
114e61c111
Merge pull request #17786 from fjmolinas/pr_ztimer_rtt_sam3
...
sys/ztimer: auto-select ztimer_no_periph_rtt only for samd21
2022-03-17 12:32:29 +01:00
Francisco Molina
53c3e38cb9
sys/ztimer: select ztimer_periph_no_rtt only for samd21
2022-03-15 08:15:22 +01:00
ee175fb583
cpu/samx21: allow to override #ifndef PM_BLOCKER_INITIAL
2022-03-11 10:48:12 +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
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
Jean-Pierre De Jesus DIAZ
480e22be66
cpu/sam*: fix doxygen grouping warnings
...
Signed-off-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
2021-09-11 12:45:15 +02:00
Jan Romann
4384795cb9
treewide: Remove excessive newlines
2021-08-13 19:50:38 +02:00
Benjamin Valentin
9c1455d55f
cpu: make pm_layered a DEFAULT_MODULE
...
Allow to disable pm_layered in the bootloader to save some ROM.
2021-01-27 13:21:20 +01:00
Benjamin Valentin
b894b280f4
cpu/samd21: update doc.txt with supported MCUs
...
SAMD10, SAMD20, SAMD21, SAMR21 all belong to the same family/generation
of Atmel MCUs, they are all supported by `cpu/samd21`.
2021-01-26 19:23:52 +01:00
Benjamin Valentin
81e06f46a4
cpu/samd21: add samd20 to Kconfig
2021-01-12 15:48:39 +01:00
Benjamin Valentin
31b8dad147
cpu/samd21: add support for SAMD20
2021-01-12 15:48:39 +01:00
Benjamin Valentin
8004aa4d34
cpu/sam0_common: not every CPU has DMA
2021-01-12 15:48:37 +01:00
Benjamin Valentin
b6642a8cb7
cpu/samd21: add samd10 to Kconfig
2020-12-11 18:25:36 +01:00
Benjamin Valentin
a94919aeed
cpu/samd21: add support for SAMD10
2020-12-11 18:25:36 +01:00
Benjamin Valentin
c5f8742877
cpu/samd21: add NVM User Page Mapping
2020-11-10 12:18:47 +01:00
Marian Buschsieweke
60802f864a
Merge pull request #15149 from benpicco/cpu/samd21-gclk7
...
cpu/samd21: improve GCLK7 magic
2020-11-03 18:14:09 +01:00
Benjamin Valentin
3aa46b6f58
cpu/samd21: fix vectors definition
...
Some SAMD21 CPUs from the D series have an additional TCC3 and / or
an additional analog comperator.
Add those to `vectors.c`.
Also rename the i2s interrupt to the proper name used by other sam0
devices.
2020-10-26 20:35:16 +01:00
Benjamin Valentin
5f2cd55e3c
cpu/samd21: prepare for samd20
...
If a peripheral is not present on samd2x, the IRQ is used by
the next peripheral instead, there are no gaps.
2020-10-26 20:33:16 +01:00
Bas Stottelaar
22243aec7a
cpu/*: realign ENABLE_DEBUG
2020-10-23 00:46:26 +02:00
Benjamin Valentin
91604d0217
cpu/samd21: clean up 'disabled GCLK' magic
...
It turns out hooking up an unused peripheral to a disabled GCLK
leads to surprising power savings.
Name the GCLK to be more explicit (and since not all members of
the extended samd2x family have a GCLK7).
Turns out we can just use a non-existing GCLK ID for this, this
even saves us a real GCLK that we can use for something else.
Also make sure to disable *all* peripherals by using
`GCLK_CLKCTRL_ID_Msk` instead of relying on a magic value.
Looks like we previously missed some, since this leads to some
additional power savings:
master: 4.22 mA
this patch: 4.09 mA
2020-10-02 23:16:52 +02:00
Benjamin Valentin
d9116684e5
cpu/cortexm_common: advertise puf_sram feature
...
`puf_sram` is a feature of the linker script, it does not need vendor
specific hardware support.
2020-09-11 16:30:45 +02:00
benpicco
5715f5776b
Merge pull request #14804 from bergzand/pr/sam0/gpio_iobus
...
sam0_common: Use Single-cycle I/O Port for GPIO when available
2020-09-10 23:45:43 +02:00
6007a31813
sam0: Add periph_gpio_fast_read feature where applicable
2020-09-10 22:13:25 +02:00
Benjamin Valentin
cd5a847684
cpu/sam0_common: define CPU_FAM based on CPU_MODEL
2020-08-24 16:13:18 +02:00
Benjamin Valentin
e32b0783c4
cpu/samd21: define CPU_COMMON_SAMD21 symbol and use it
2020-08-24 16:13:18 +02:00
Benjamin Valentin
6b7cce02ec
cpu/samd21: add all parts to Kconfig
2020-08-24 16:11:48 +02:00
benpicco
30ebabb84e
Merge pull request #14007 from benpicco/cpu/sam0_common-pwm
...
cpu/sam0_common: move PWM to common code, add support for saml21, samd5x
2020-07-09 10:01:08 +02:00
Francisco Molina
eefb3fa555
cpu/samd21: add unified rtt configuration
2020-06-19 09:16:22 +02:00
Francisco
5bb8c4b303
Merge pull request #14296 from leandrolanzieri/pr/cpu/adapt_kconfig_classification
...
cpu/kconfig: Rename CPU classification symbols
2020-06-17 10:26:20 +02:00
Leandro Lanzieri
d87f0cc66b
cpu/kconfig: Rename CPU classification symbols
...
This removes the `CPU_FAMILY` and `CPU_SERIES` common CPU symbols and
adds `CPU_FAM` instead.
2020-06-16 14:27:27 +02:00
Leandro Lanzieri
4d65bc8e0a
cpu: Rename CPU_ARCH to CPU_CORE
2020-06-16 12:05:40 +02:00
5dc1d87f74
cpu/samd21: add DMA peripheral to init
2020-06-12 20:04:05 +02:00
Benjamin Valentin
824f7aa82b
cpu/sam0_common: move PWM to common code
2020-06-07 16:50:17 +02:00
Leandro Lanzieri
004162060e
cpu/samd21: Add CPU series specific Kconfig symbols
2020-06-02 17:42:16 +02:00
Dylan Laduranty
57c1a49a82
Merge pull request #13957 from benpicco/cpu/samd21-pwm_flex
...
cpu/samd21: PWM don't hard-code number of channels to 3
2020-05-02 20:52:56 +02:00