1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
Commit Graph

57 Commits

Author SHA1 Message Date
Joakim Nohlgård
00a0740fcc kinetis: Add support for LPUART module in parallel with UART module
A dispatcher function is implemented for directing writes to the correct
function. The dispatcher is bypassed completely if the CPU only contain
one kind of UART module.

There are at least two different UART hardware modules deployed in
different Kinetis CPU families (or possibly three or more when counting
variations of the UART module). The UART module is an older 8 bit module
with advanced functionality, while the LPUART is a 32 bit module with
focus on low power consumption.

 - The older families in the K series all have UART modules.
 - The K22F family have both UART and LPUART modules in the same CPU.
 - Older L series (e.g. KL25Z) have two variations of the UART module
 - Newer L series (e.g. KL43Z) have LPUART modules, and sometimes
   UART as well.
 - Newer W series (KW41Z) have only LPUART
2017-11-07 14:19:42 +01:00
6be2fb1f25 cpu: kinetis_common: rename periph/hwrng_rnga.c -> periph/hwrng.c 2017-11-06 12:01:19 +01:00
a20745b6c5 cpu: make use of Makefile.periph 2017-11-06 12:01:19 +01:00
Francisco Acosta
52efba5b31 Merge pull request #7476 from gebart/pr/kinetis-rtt-alarm
kinetis: Adjust RTT alarm trigger time
2017-10-09 14:34:09 +02:00
Hauke Petersen
be456915e9 cpu/kinetis/gpio: do not clear output pin on init 2017-10-04 12:15:03 +02:00
Joakim Nohlgård
b94e91c6f1 kinetis: Adjust RTT alarm trigger time
The RTT alarm will trigger when the RTT seconds register is equal to the
set alarm target, instead of triggering at the following second.
2017-08-15 20:28:24 +02:00
Joakim Nohlgård
742bcad912 kinetis: Unify cpu.c, update clocking initialization
Unify cpu_init for all Kinetis CPUs to reduce code duplication.
Updated the MCG driver implementation to make the configuration easier.
Most clock settings are initialized by kinetis_mcg_init() called from
cpu_init. Board specific external clock source initialization
(FRDM-K64F, PhyNode) needs to be performed in board_init instead of
in cpu_init.
2017-08-01 16:30:19 +02:00
Joakim Nohlgård
aa67bdbc42 kinetis: Add support for CPUs with RSIM module
Some KW series CPUs have no OSC module, but uses the oscillator found in
the built-in transceiver.
2017-08-01 12:03:49 +02:00
Hauke Petersen
3c623f63c3 cpu/kinetis: optimization of DAC driver impl.
- use assert() for checking the line parameter
- use 'bit.h' for bitbanding
- simplified code a bit
- unified style of defifining the board configuration
- removed unused configurations form pba-d-01-kw2x and frdm-k64f
2017-07-20 16:44:41 +02:00
Joakim Nohlgård
de8f0b62d9 kinetis: Handle ADC modules without extra ADICLK divider
Newer CPUs have alternate clock sources on ADICLK=1 instead of Bus/2
2017-07-18 08:39:21 +02:00
Joakim Nohlgård
676df9a0d7 kinetis: Add support for alternate location for ADC1 clock gate 2017-07-18 08:39:21 +02:00
smlng
01af6d94c4 cpu, periph: retain constness in spi_transfer_bytes 2017-06-29 15:47:13 +02:00
Hauke Petersen
a2bc258af0 drivers/dac: clarified doc and named return values
- added more comprehensive doc to dac_init and dac_set
- named return values for dac_init
- use named return values in existing implementations
2017-06-27 12:52:12 +02:00
smlng
692cf96297 doc: fix doxygen grouping of cpu periph drivers 2017-06-26 14:42:11 +02:00
42830d2308 Merge pull request #6916 from gebart/pr/cortexm3-bitband
cpu: Add bit manipulation macros for Cortex-M
2017-06-21 12:47:41 +02:00
Joakim Nohlgård
a63c0a84a6 kinetis: Use bit.h functions 2017-06-09 05:19:13 +02:00
Joakim Nohlgård
8efb714edd kinetis/mcg: Use {} for empty while loops 2017-05-30 08:50:30 +02:00
Joakim Nohlgård
5c34eb4e2c kinetis: Add support for low-end MCG without PLL
Found in Kinetis L series, among others
2017-05-30 08:50:30 +02:00
Joakim Nohlgård
a8450f2952 kinetis: Simplify MCG state traversal algorithm
The new implementation uses a precalculated map of which mode to switch
to next if going from mode A to mode B. This simplifies the
implementation for moving between modes which are not direct neighbors.
See mcg.h documentation for a diagram of the state machine for the
clocking modes. Also found in the CPU reference manual of all Kinetis
CPUs, MCG chapter, MCG mode state diagram.
2017-05-30 08:50:30 +02:00
Hauke Petersen
867b09c224 cpu/kinetis: make UART mode configurable per board 2017-05-24 14:48:49 +02:00
Martine Lenders
0cc15955f6 Merge pull request #6958 from haukepetersen/fix_kinetis_uart
cpu/kintis+boards: fixed UART configuration
2017-04-25 17:22:45 +02:00
Hauke Petersen
9dabbddb2f cpu/kintis+boards: fixed UART configuration 2017-04-25 14:27:33 +02:00
Oleg Hahm
242cd6290a cpu: kinetis: suppress incorrect cppcheck warning 2017-04-14 14:36:16 +02:00
Joakim Nohlgård
a107a416cf kinetis: Refactor UART driver 2017-04-09 17:21:38 +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
8064bd9fa9 periph/pwm: remove pwm_(start|stop) + doc
- joined start/stop and poweron/poweroff
- added general documentation
2017-02-13 09:37:31 +01:00
Hauke Petersen
2f9e3c89e1 periph/hwrng: use void* buf for hwrng_read() 2017-02-07 13:20:39 +01:00
Hauke Petersen
5880d0edda cpu/kinetis+boards: adapted to new SPI API
- adapted the SPI driver
- adapted all boards using the CPU
2017-01-25 16:46:05 +01:00
Hauke Petersen
2c5a9a5cbf cpu/kinetis: unified PM implementation 2017-01-18 14:54:16 +01:00
Joakim Nohlgård
45c8bc47e8 kinetis_common: Fix -Wsign-compare in gpio.c 2017-01-16 08:55:08 +01:00
662bec002a cpu: k60: add periph/pm support 2017-01-12 16:26:02 +01:00
Peter Kietzmann
280a200377 Merge pull request #6230 from haukepetersen/opt_kinetis_pwm
cpu/kinetis: reworked PWM driver implementation
2017-01-12 10:16:31 +01:00
Hauke Petersen
c062bf71b9 Merge pull request #6177 from gebart/pr/kinetis-adc-clock-scaler-fix
kinetis: Fix ADC clock computation
2017-01-05 14:08:00 +01:00
Hauke Petersen
d1db190f83 cpu/kinetis_common: reworked PWM driver 2017-01-05 10:55:15 +01:00
Joakim Nohlgård
c2ccc1bfa0 kinetis: Fix ADC clock computation
The ADC prescaler computation was broken and gave too high ADC clock for
module clocks slower than 32 MHz (the >32 MHz case is already handled
separately)
2016-12-27 17:10:25 +01:00
Hauke Petersen
3a00fe8e49 cpus: make use of cortexm_isr_end() 2016-12-21 11:28:46 +01:00
Hauke Petersen
2eebf36eb2 cpu/uart: make use of named return values 2016-10-28 10:32:00 +02:00
Kees Bakker
bac5cda1e3 periph/i2c: convert char to uint8_t where applicapable
In general, data transferred through I2C are bytes and thus should have
type uint8_t, not char.

Also convert uint8_t ptrs to void ptrs
2016-10-04 20:26:39 +02:00
Joakim Nohlgård
1a2b2575fb kinetis: Add stddef, stdint missing includes for gpio.c 2016-09-29 15:47:53 +02:00
Joakim Nohlgård
8947a3c49c cpu/kinetis_common: Add debugging messages to i2c driver 2016-08-10 19:40:39 +02:00
Joakim Nohlgård
5633af4300 cpu/kinetis_common: Update periph_timer to support both LPTMR and PIT 2016-07-07 13:38:27 +02:00
Joakim Nohlgård
8c154d47ad cpu/kinetis_common: Implement DAC periph driver 2016-03-22 06:06:56 +01:00
Hauke Petersen
4938142b42 cpu/kinetis: adapted GPIO driver 2016-03-17 14:55:30 +01:00
Johann Fischer
0b2ffc212d Merge pull request #5075 from jfischer-phytec-iot/pr@kinetis-i2c
cpu/kinetis_common/periph/i2c.c: fix generating the STOP signal
2016-03-17 12:53:24 +01:00
Joakim Nohlgård
65bb26f0b4 cpu/kinetis_common: Use gpio_init_port for PWM pin handling 2016-03-14 17:52:51 +01:00
Johann Fischer
db2506822f cpu/kinetis_common/periph/i2c.c: fix generating the STOP signal
This patch fix the bug in _i2c_receive. The STOP signal should be
generated before the reading from the data register because the
receiving of the next byte will be initiated by reading
the data register (dev->D).
2016-03-14 14:53:59 +01:00
Hauke Petersen
3990bd84e7 cpu/kinetis_common: reworked ADC driver 2016-03-14 13:06:23 +01:00
Peter Kietzmann
c8829a49b8 Merge pull request #4838 from haukepetersen/fix_periph_timerarg
drivers/timer: added callback argument
2016-03-01 08:55:54 +01:00
Hauke Petersen
b11a3ad74b cpus: adapted timer implementations to API changes 2016-02-29 14:45:00 +01:00
Hauke Petersen
34f9deecb7 cpu/kinetis_common: reworked GPIO driver 2016-02-29 11:08:45 +01:00