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

6524 Commits

Author SHA1 Message Date
dc77914ce8
cpu/fe310: add clock configuration header 2020-12-17 15:53:31 +01:00
aaca1331ca
cpu/fe310: move clock Kconfig to cpu 2020-12-17 15:53:31 +01:00
ab477a94b0
Merge pull request #15635 from bergzand/pr/cortex_m0/pendsv_r12_clobber
cpu/cortexm_common: fix r12 clobber in pendsv for Cortex-M0
2020-12-15 22:58:25 +01:00
Kevin "Tristate Tom" Weiss
5a1dabc025
Merge pull request #15639 from dylad/pr/saml11/fix_iobus_gpio
cpu/saml11: fix GPIO/IOBUS management
2020-12-15 20:52:29 +01:00
dylad
e98459f414 cpu/saml11: fix GPIO/IOBUS management 2020-12-15 17:00:54 +01:00
8f1a42cbbf
cpu/cortexm_common: fix r12 clobber in pendsv for Cortex-M0 2020-12-15 13:16:02 +01:00
Daniel Lockau
33afc0ddab cpu/native/rtc: add rtc_set_time implementation 2020-12-15 12:52:35 +01:00
Dylan Laduranty
aec905d697
Merge pull request #15620 from benpicco/cpu/sam0_common/dac_startup
cpu/sam0_common: DAC: wait for DAC to be ready
2020-12-15 12:25:32 +01:00
dylad
c934d5dde3 kconfig: add PERIPH_ETH feature to samd5x 2020-12-13 22:30:54 +01:00
dylad
a1f5b6182d cpu/sam0: add initial Ethernet support 2020-12-13 22:01:50 +01:00
Benjamin Valentin
c5c46ba35b cpu/sam0_common: DAC: wait for DAC to be ready
The DAC can have some start-up delay.
If we try to write to it before it's ready, it will get stuck.

This happens now that `tests/driver_dac_dds` immediately sets a DAC
value after init.

The samd2x class of MCUs doesn't have this bit, but a quick test on
samd10 shows that it might not be nececary there - the DAC does not
get stuck when writing to it immediately after init.
2020-12-13 02:11:36 +01:00
Benjamin Valentin
8f72212eb0 cpu/sam0_common: SPI: add support for QSPI in SPI mode
We can use the QSPI peripheral as an additional (non-Quad) SPI peripheral.
2020-12-11 22:33:08 +01:00
Benjamin Valentin
94c7f40b9c cpu/sam0_common: SPI: add support for SAMD20 2020-12-11 22:33:07 +01:00
Benjamin Valentin
fb2a6b7024 cpu/sam0_common: SPI: cleanup
Insert whitespace and factor out functions to make it easier to
add functionality.
2020-12-11 22:33:07 +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
531fca952b cpu/sam0_common: add samd10 vendor files
Files from Atmel.SAMD10_DFP.1.1.77.atpack
2020-12-11 18:25:36 +01:00
benpicco
e6a4d0a4d5
Merge pull request #15569 from fjmolinas/pr_cc2538_uart_nonblocking
cpu/cc2538: add periph_uart_nonblocking
2020-12-11 10:57:36 +01:00
Francisco Molina
bc737a1f76
cpu/cc2538: add periph_uart_nonblocking
Add periph_uart_nonblocking. Since cc2538 has a transmit FIFO write
to the FIFO first and to a tsrb buffer only when the transmit FIFO
is full.

Rely on the FIFO TXIFLSEL condition to fill up FIFO as space becomes
available.
2020-12-11 09:36:16 +01:00
benpicco
c5b5788eb7
Merge pull request #15570 from benpicco/sys/bit.h
sys/bit: move bit.h header to sys/
2020-12-11 08:36:36 +01:00
Francisco
7bbe36ff6b
Merge pull request #15588 from benpicco/native/pm_layered
cpu/native: pm: fix build with pm_layered
2020-12-10 13:05:45 +01:00
Leandro Lanzieri
c4d832e653
Merge pull request #15001 from aabadie/pr/boards/stm32f0f1f3_clock_kconfig_only
boards/stm32f1f3: model clock configuration in Kconfig
2020-12-09 14:04:25 +01:00
benpicco
dd7a268ef8
Merge pull request #15527 from Einhornhool/pr/nrf52_i2c_reconfigure
cpu/nrf52: Add i2c reconfigure feature
2020-12-08 21:09:55 +01:00
Einhornhool
40d749644f cpu/nrf52: Add i2c reconfigure for use with CryptoAuth devices 2020-12-08 21:27:03 +02:00
Benjamin Valentin
d7ed3418b5 cpu/native: pm: fix build with pm_layered 2020-12-08 18:24:02 +01:00
8f6005b26e
boards: cpu: stm32f1: use .config for specific iotlab PLL_PREDIV 2020-12-08 18:02:57 +01:00
Francisco
ee80e5aced
Merge pull request #15534 from jia200x/pr/cc2538_rf_submac
cc2538_rf: default to netdev_ieee802154_submac
2020-12-08 17:59:37 +01:00
c68f63b318
cpu/stm32f1f3: handle custom pll prediv/mul at cpu level 2020-12-08 17:36:52 +01:00
0f23c875a2
cpu/stm32: adapt Kconfig clock configuration for f1/f3 2020-12-08 17:36:51 +01:00
Benjamin Valentin
e300dfe47e sys/bit: move bit.h from cortexm_common/ to sys/
The bit access functions are not tied to Cortex-M CPUs, here they only
provide optimisations via bit-banding.

But the functions are generally useful - so move them to an arch independent
location.
2020-12-08 17:07:41 +01:00
04ca147f59 cpu/cortexm_common: fix r12 clobber in pendsv for Cortex-M3+ 2020-12-08 13:29:54 +01:00
977f0dfd70 cpu/cortexm_common: split isr_pendsv() 2020-12-08 10:14:45 +01:00
iosabi
3890091ced cpu/qn908x: Add the RTC module.
This patch implements the real time clock module for the QN908X cpus.

This module is very straightforward with only the one notable drawback
that it doesn't have a match register like the CTIMER block to implement
the alarm function. Instead, this driver can only use the interrupt
generated ever 1 second to implement the alarm match comparison in
software.
2020-12-06 20:49:51 +00:00
iosabi
ac4c4d6132 cpu/qn908x: Fix triggering GPIO IRQ.
The IRQ for each GPIO port needs to be enabled in the NVIC on top of
enabling the corresponding bit in the GPIO port.

This was not caught in tests before because I was testing with a larger
stack of commits (including UART and timers) which also had this fix.

Manually poking the GPIOs while using tests/periph_gpio now properly
fires the interrupts.
2020-12-06 18:07:44 +00:00
benpicco
f72e98d0a0
Merge pull request #15557 from iosabi/qn908x_ctimer
cpu/qn908x: Add timer driver based on CTIMER.
2020-12-05 17:36:36 +01:00
iosabi
ef4b58f4f0 cpu/qn908x: Add timer driver based on CTIMER.
The QN908x CPU has several timer modules: one RTC (Real-Time Clock) that
can count from the 32kHz internal clock or 32.768 kHz external clock,
four CTIMER that use the APB clock and have four channels each and one
SCT timer with up to 10 channels running on the AHB clock.

This patch implements a timer driver for the CTIMER blocks only, which
is enough to make the xtimer module work. Future patches should improve
on this module to support using the RTC CNT2 32-bit free-running
counter unit and/or the SCT timer.
2020-12-04 23:18:27 +01:00
iosabi
80bd203b4d cpu/qn908x: Add missing gpio & uart enum values.
GPIO_BOTH gpio_flank_t; UART_PARTY_MARK and UART_PARTY_SPACE in
uart_parity_t; and UART_DATA_BITS_5 and UART_DATA_BITS_6
uart_data_bits_t enum values where missing from the periph_cpu.h header
since they are not supported by the CPU. This was causing some tests to
fail to compile, but only after adding the periph_timer module.

This patch adds those missing macros and makes the corresponding
functions fail when trying to use them.

A minor fix to the NWDT_TIME_LOWER_LIMIT value setting it to 1U to avoid
a -Werror=type-limits error in the tests/periph_wdt test. In theory 0
is a totally valid value although a bit useless since it will trigger
the WDT right away.
2020-12-04 23:18:27 +01:00
benpicco
ffebb5d792
Merge pull request #15529 from chrysn-pull-requests/nrf5x-periph_timer_periodic
cpu/nrf5x: implement periph_timer_periodic
2020-12-04 22:02:50 +01:00
chrysn
e3e89fe513 cpu/nrf5x: implement periph_timer_periodic 2020-12-04 19:03:44 +01:00
iosabi
bd929a3746 cpu/qn908x: Add support for UART.
The QN908x has four FLEXCOMM interfaces that support a subset of UART,
SPI or I2C each one. This patch adds generic support for dealing with
the FLEXCOMM initialization and interrupts and adds a driver for
RX/TX support in UART.

With this patch is now possible to use a shell on the device over UART.
2020-12-03 20:53:49 +01:00
benpicco
a80631a297
Merge pull request #15074 from maribu/ptp-clock
drivers/periph/ptp_clock
2020-12-03 09:59:07 +01:00
Marian Buschsieweke
ea3752db77
cpu/stm32: Added PTP clock implementation 2020-12-02 17:53:00 +01:00
benpicco
646e665a86
Merge pull request #13855 from iosabi/qn908x_initial
cpu/qn908x: Initial minimal support for NXP QN908x CPUs.
2020-12-02 10:31:38 +01:00
iosabi
cde8ac6093 cpu/qn908x: Initial minimal support for NXP QN908x CPUs.
The NXP QN908x CPU family is a Cortex-M4F CPU with integrated USB,
Bluetooth Low Energy and in some variants NFC. This patch implements the
first steps for having support for this CPU.

While the QN908x can be considered the successor of similar chips from
NXP like the KW41Z when looking at the feature set, the internal
architecture, boot image format and CPU peripherals don't match those
in the Kinetis line. Therefore, this patch creates a new directory for
just the QN908x chip under cpu/qn908x.

The minimal set of peripherals are implemented in this patch to allow
the device to boot and enable a GPIO: the gpio and wdt peripheral
modules only.

The wdt driver is required to boot and disable the wdt. On reset, the
wdt is disabled by the chip, however the QN908x bootloader stored in
the internal ROM enables the wdt and sets a timer to reboot after 10
seconds, therefore it is needed to disable the wdt in RIOT OS soon
after booting. This patch sets it up such that when no periph_wdt module
is used the Watchdog is disabled, but if the periph_wdt is used it must
be configured (initialized) within the first 10 seconds.

Tests performed:
Defined a custom board for this CPU and compiled a simple application
that blinks some LEDs. Manually tested with periph_wdt and with
periph_wdt_cb as well.
2020-12-02 02:47:07 +00:00
iosabi
21fd1f9258 Add vendor files for the NXP QN908x cpu
In preparation for adding support for the QN908x cpus, this patch adds
a pristine copy of the vendor SDK files needed for initial support.
The only modification to these files is to add '#ifdef __cplusplus'
guards to all the header files, even if not needed or already
present as '#if defined(__cplusplus)', to make sure
./dist/tools/externc/check.sh check passes.

These files are located under vendor/ directories (both
cpu/qn908x/include/vendor/ and cpu/qn908x/vendor/) and are part of NXP's
SDK for the QN908x family available for download from:
  https://mcuxpresso.nxp.com/en/builder

The files included in these vendor/ directories are released by NXP
under an Open Source license as described in each file, but only the
files used by the next patch are included here.
2020-12-02 02:45:53 +00:00
benpicco
418aaa6e67
Merge pull request #15388 from benpicco/boards/e104-bt5010a-tb
boards/e104-bt5011a-tb: add support for the E104-BT5011A Test Board
2020-12-02 00:24:33 +01:00
Jose Alamos
28ca3e202f cc2538_rf: default to netdev_ieee802154_submac 2020-12-01 13:20:49 +01:00
Martine Lenders
e2af953cc8
Merge pull request #15132 from benpicco/nrf802154-submac
cpu/nrf52: nrf802154: default to netdev_ieee802154_submac
2020-12-01 12:23:42 +01:00
b0b19203a7
Merge pull request #15190 from benpicco/boards/wefun-f401cc
boards/common/weact-f4x1cx: create common WeAct boards
2020-12-01 12:03:38 +01:00
Benjamin Valentin
fea9e68b88 nrf802154: don't hard-code max TX power
The smaller family members only have 4dBm max output power.
2020-12-01 11:42:52 +01:00