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
Marian Buschsieweke
b40ab8f833
cpu/nrf5x_common: implement periph_timer_query_freqs
2023-12-08 23:23:07 +01: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
Dylan Laduranty
63310189a5
cpu/nrfxx: move I2C/SPI/UART structs to nrf5x_common
...
This will reduces code duplication across nRF52,nRF53 and nRF9160 families
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2023-07-11 20:07:26 +02:00
Dylan Laduranty
6ea5081da9
cpu/nrf5x_common: share nRF52 PWM driver with nRF53/nRF9160
...
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2023-07-08 16:53:41 +02:00
Dylan Laduranty
37cf43a132
cpu/nrf5x_common: move usbdev driver to nrf5x_common
...
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2023-07-07 10:53:55 +02:00
Dylan Laduranty
5df8bf6fca
cpu/nrfxx: move uart_conf_t struct to periph_cpu_common.h
...
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2023-07-04 17:18:18 +02:00
Dylan Laduranty
de6939aa43
cpu/nrf53: add initial support
...
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2023-07-04 17:14:06 +02:00
Marian Buschsieweke
a8f1a7e007
cpu/nrf5x_common: Implement timer_set()
...
The fallback implementation of timer_set() in `drivers/periph_common`
is known to fail on short relative sets. This adds a robust
implementation.
2022-12-23 14:48:08 +01:00
Marian Buschsieweke
b533fcf543
cpu/nrf5x_common: improve doc on timer_conf_t::channels
2022-11-22 13:43:05 +01:00
Marian Buschsieweke
f0586dbf8f
cpu/nrf5x_common: implement periph/gpio_ll{,_irq}
...
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2022-04-23 19:47:00 +02:00
3b1bdd6b3c
nrf5x_common: Add qdec peripheral implementation
2021-11-16 15:21:51 +01:00
dylad
5b85a5750e
cpu/nrf9160: add initial support
2021-07-28 20:11:26 +02:00
Benjamin Valentin
eb89482a75
cpu/nrf5x_common: make GPIO_PIN macro model independent
...
We can use the `GPIO_COUNT` vendor macro to check if there is more than
one GPIO port on nRF52.
This is the case for nRF52840 and nRF52833.
2021-02-14 00:30:25 +01:00
36ca3845c2
cpu/nrf5x_common: fix pin support for nrf52833xxaa model
2021-02-10 13:39:51 +01:00
chrysn
2053a1785a
cpu/nrf52: Ensure that uninitialized PWM outputs are disabled
2020-09-30 13:16:59 +02:00
16ff94b4fe
nrf5x: remove common nrf5x spi peripheral driver
2020-05-18 19:18:28 +02:00
99a59c5dbd
nrf5x: Extend gpio with exti channel retrieval
2020-05-18 19:17:29 +02:00
9cebd757a2
cpu/nrf5x: update GPIO_UNDEF value
...
The gpio_t value is uint8_t so use UINT8_MAX for GPIO_UNDEF
2020-02-19 19:16:58 +01:00
f568162f9b
cpu/nrf5x: provide specific gpio_t definition
2020-02-19 19:16:58 +01:00
Yegor Yefremov
fa3b0ff04b
doxygen/SPI: don't include overridden typedefs
...
Add missing #ifndefs to overridden SPI typedefs.
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
2019-11-15 10:35:32 +01:00
40619d18ca
cpu/nrf5x_common: implement periph_wdt driver
2019-09-20 20:45:42 +02:00
Igor Knippenberg
dbd8c2774f
cpu/nrf52: i2c bugfix
2019-05-13 11:32:57 +02:00
Semjon Kerner
2063e98b13
cpu/nrf52: initial PWM implementation
2018-08-21 11:28:23 +02:00
dnahm
6f9a5004c6
drivers: add adc driver for nrf52
2017-11-15 11:15:10 +01:00
Hauke Petersen
5920d99752
pm: fix weak-based default implementations
...
Instead of using `weak` function definitions, this PR handles
default implementations using `PROVIDES_x` defines, allowing
for cpus/pm realted modules to use their own implementations.
2017-10-16 14:27:35 +02:00
Hauke Petersen
334b2a6dc1
cpu/nrf52: added support for nRF52840
...
- added vendor header files for nrf52840
- added config for nrf52840
- added additional isr vectors for the nrf52840
- enabled port 1 in GPIO driver
- adapted periph drivers to cope with GPIO driver changes
- adapted the GPIO config of the I2C driver for the nrf51
2017-04-05 16:43:49 +02:00
Joakim Nohlgård
6cda6a6560
periph/cpuid: Unify implementations to a common driver for several platforms
2017-04-05 09:03:49 +02:00
Hauke Petersen
5bdb3bfa61
misc: aggregated doxygen fixes
2017-01-25 16:46:46 +01:00
Hauke Petersen
b097e0840b
cpu/nrf5x+boards: adapted to new SPI API
...
- adapted the SPI driver
- merged SPI drivers from nrf51 and nrf52
- adapted all boards using the CPU
2017-01-25 16:46:05 +01:00
3e49d0c8c6
Merge pull request #6434 from aabadie/petersen_typo
...
cpu: fix typo in author email
2017-01-20 10:43:24 +01:00
245f60edfa
cpu: fix typo in author email
2017-01-19 21:45:23 +01:00
Oleg Hahm
7ee7801c10
*: remove trailing underscores from header guards
2017-01-19 18:30:53 +01:00
Hauke Petersen
8d48239f9b
cpu/nrf5: restructured periph_cpu.h files
...
- inserted one specific for each family (nrf51 and nrf52)
- renamed the common one to periph_cpu_common.h
2017-01-10 11:52:36 +01:00