Commit Graph

1481 Commits

Author SHA1 Message Date
Guillaume Revaillot a652856533 stm32l0: rcc: add rcc_set_peripheral_clk_sel(periph, sel) 2019-06-03 22:29:45 +00:00
Guillaume Revaillot 8668f9198b stm32l0: rcc: add peripherals clock source selection helpers. 2019-06-03 22:29:45 +00:00
Guillaume Revaillot 6953138a28 stm32l0: add rcc_set_msi_range. 2019-06-03 22:29:45 +00:00
Sean Cross b805db0444 efm32: cmu: support switching HFCLK to USHFRCODIV2
Allow for the high frequency clock that controlls things such as the
main CPU to be switched over to USHFRCODIV2.  This is a 24 MHz PLL
that is trimmed using clock recovery from the USB signal, and is
accurate to within 1% of 24 MHz.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-06-02 22:23:44 +00:00
Bruno Randolf 53ce5aa3dd stm32:l4:flash: Fix option bytes programming
FLASH_CR_OPTSTRT needs to be written to FLASH_CR, and there is no reason
to mask the last two data bits.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Reviewed-by: Karl Palsson <karlp@tweak.net.au>
(original code appeared to be badly copied from the flash_common_f24 codebase)
2019-06-02 22:18:14 +00:00
Bruno Randolf 833ddd9b0a stm32: rtc: clear wakeup clock selection
Clear wakeup clock selection before setting the desired bits, so no
old bits can stay set

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2019-06-02 22:18:05 +00:00
Bruno Randolf b8424263e8 stm32:l4: rcc: Add RTC clock functions 2019-06-02 22:18:05 +00:00
Bruno Randolf 2c1823f7bb stm32:l4: pwr: Add en/disable_backup_domain_write_protect() 2019-06-02 22:18:05 +00:00
Bruno Randolf fe722d4643 stm32:l4: rcc: Add helper functions
Add functions for PLL output and 48MHz clock source selection
2019-06-02 22:18:05 +00:00
Bruno Randolf a1ffdc59f0 stm32:l4: flash: Program in double words
According to RM0351 and RM0394 flash needs to be programmed by double words.
Also fix flash_program() which was wrong anyways.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2019-06-02 22:17:55 +00:00
Karl Palsson f990030440 stm32f4: rcc: move deprecated attribute to header
This makes it actually generate deprecated warnings.  The deprecated
doxygen stays with the .c file as before.
2019-06-02 12:50:34 +00:00
Karl Palsson a9dde2832e stm32f4: rcc: drop 48 & 120 MHz configs
48Mhz has no purpose other than to be a naiive method of haivng working
USB.  120MHz never had any purpose, other than to match the f2 code it
was copied from.  Drop them both.  Remaining configs are all max speeds
for various F4 parts.  Lower speeds are all custom
2019-06-02 10:50:10 +00:00
Miguel Sánchez de León Peque 1d68c299e8 stm32f4: add HSI clock configurations 2019-06-02 10:39:18 +00:00
Miguel Sánchez de León Peque ca6dcfbea1 stm32f4: rcc: support hsi pll source 2019-06-02 10:38:43 +00:00
Karl Palsson f2a9980638 stm32: doc: rtc: move to peripheral apis
Drop some dummy.c files, add some missing groupings and make sure all
specifics are included in the generated output.
2019-05-22 00:16:40 +00:00
Karl Palsson 0aef9c2ec6 stm32: doc: pwr: move to peripheral_api
Some families had partially moved to peripheral api, and others were
only documenting common code, but not specific code.  Delete dummy .c
files, and check that all specific apis are also being documented, not
just common apis.
2019-05-22 00:10:39 +00:00
Karl Palsson da76279bc6 stm32: flash: move to peripheral_apis
Change the groupings and headings to make them all consistent.
2019-05-21 23:41:21 +00:00
Karl Palsson 1001a9323b stm32: doc: dma: move to peripheral_apis
drops dummy .c files, and adds proper groupings to the shared files.
2019-05-21 23:27:21 +00:00
Karl Palsson 9382042180 stm32: doc: move timer to peripheral_apis
Drop all the dummy timer.c files, and _actually_ compile the L1 specific
file that was dropped by accident in 5b8953124e in 2013!
2019-05-21 23:17:04 +00:00
Karl Palsson 508f8d9487 stm32: doc: gpio: move gpio to peripheral_apis
Drops dummy gpio.c files that weren't even being compiled in some cases.
2019-05-21 23:16:59 +00:00
Karl Palsson d77f539013 stm32: doc: rng: migrate to peripheral apis
Gets them all documented properly, and cleans up the language that this
was just for F4.
2019-05-21 23:16:59 +00:00
Karl Palsson 1af3acdba4 stm32: doc: exti: fix missing/wrong groups and move to peripheral_api
Almost all families were missing all docs for the exti apis.
2019-05-21 23:16:59 +00:00
Karl Palsson fe5e82a3cc stm32: doc: dac: move to peripheral_apis.
Drops all the stub dummy header files, many of which weren't even being
built, and moves them to the clean peripherals_api doc section.
2019-05-21 23:16:51 +00:00
Karl Palsson d559b5a4db stm32g0: doc: move flash/pwr/rcc to "peripheral_apis"
Where we've been collecting things that have common/specific parts as
the new style of docs.
2019-05-21 21:47:43 +00:00
Karl Palsson 4aa9e484f6 stm32g0: flash: drop redundant docs
Functions that are already documented in the top level common api.h file
won't add any more documentation from later .c files.  Keep docs for
part specifics, in the .h files where they're accessible to IDEs and
also the documentation generation, and drop all (including the redundant
ones) from the .c file.
2019-05-21 21:46:02 +00:00
Karl Palsson 709d98e0a8 doc: stm32g0: drop redundant @ingroup and close groups
the group defaults to the implicit container based on location, so drop
all the explicit @ingroups, less to maintain.  Properly use /**@}*/ to
close all groups too, even though it mostly seems to have worked anyway.
Properly close all groups opened for files.
2019-05-21 21:44:05 +00:00
Guillaume Revaillot 55121126c3 stm32g0: add exti.
Regular exti, with enhanced EXTI_[FR]PR regs instead of EXTIR_PR.
2019-05-21 00:05:22 +00:00
Guillaume Revaillot afd2db3097 stm32g0: add rcc. 2019-05-21 00:05:22 +00:00
Guillaume Revaillot cbe5425090 stm32g0: add flash.
here, it's a bit of a mess.. G0 flash controller does not really
match exsting feature split. IE it has instruction cache only ..
so, no flash_idcache.c as it. flash_common_f could be used, but
flash_unlock would not take care of option byte ?

prefetch, icache and lock is ok. I had no look at flash programming
or erase yet..
2019-05-21 00:05:22 +00:00
Guillaume Revaillot f13a9eee5b stm32g0: add power.
neither v1 nor v2...
2019-05-20 23:59:42 +00:00
Guillaume Revaillot c49937a09c stm32g0: add gpio.
regular peripheral.
2019-05-20 23:43:46 +00:00
Guillaume Revaillot b8d4b03722 stm32g0: add base, irqs, memorymap and current devices. 2019-05-20 23:43:41 +00:00
Oliver Meier 07868ad8b6 stm32f7: enable existing dma2d headers 2019-05-19 21:33:07 +00:00
Oliver Meier 92a2340551 stm32f7: enable existing dsi support 2019-05-19 21:33:07 +00:00
Oliver Meier 5a03cfe54e stm32f7: enable existing ltdc
This uses the existing f4 code as a new shared common base code.
2019-05-19 21:33:02 +00:00
Oliver Meier 16cfc6d848 stm32f7: enable fsmc
This uses the existing f4 code as a new shared common base code.
2019-05-19 21:30:48 +00:00
Oliver Meier 4fc7196463 stm32f7: enable existing exti headers 2019-05-19 21:30:38 +00:00
Karl Palsson e77bc94b8c stm32: adc-v1m: doc cleanups
Try and fix some of the specifics from old f4 source material.
2019-05-10 23:15:42 +00:00
Karl Palsson 13d46e81df stm32l1: adc: use v1-m shared code.
Drops all the l1 copies of this code, and automatically gains all the
following apis that weren't even available before:

void adc_set_clk_prescale(uint32_t prescaler);
void adc_set_resolution(uint32_t adc, uint32_t resolution);
void adc_enable_overrun_interrupt(uint32_t adc);
void adc_disable_overrun_interrupt(uint32_t adc);
bool adc_get_overrun_flag(uint32_t adc);
void adc_clear_overrun_flag(uint32_t adc);
bool adc_awd(uint32_t adc);
void adc_eoc_after_each(uint32_t adc);
void adc_eoc_after_group(uint32_t adc);
void adc_set_dma_continue(uint32_t adc);
void adc_set_dma_terminate(uint32_t adc);
2019-05-10 22:44:30 +00:00
Karl Palsson 8d9b455ac6 stm32: adc-v1m: pull out f4/f7 specifics
Sampling time and sequence length, along with the vbat channel are
specific to the f4/f7, and can't be shared with the l1 and friends.
Pull them out to their own common file.
2019-05-10 22:42:03 +00:00
Karl Palsson f1340df003 stm32f4: sort makefile objects 2019-05-09 12:00:40 +00:00
Matthew Lai 0a3e1cc0e6 Renamed adc_common_v3 to adc_common_v1_multi 2019-05-09 11:54:19 +00:00
Matthew Lai 6703abf5e3 Added F7 ADC support (almost the same as F4) 2019-05-09 11:54:19 +00:00
vector 5dbdb255d8 STM32F7: dac: include in build.
Based on F4.
2019-05-09 11:34:16 +00:00
Marek Koza e50ce6a876 stm32l4: Correct memorymap and add the existing CAN library 2019-04-30 20:47:14 +02:00
M J Oldfield fc8a6aa7a2 stm32: adc-v2: set _only_ the ADC calibration bit
In adc_calibrate_async() we should only set the ADCAL bit and leave the rest alone.

While in the past there were only "rs" bits in this register, this is no
longer the case.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2019-04-28 00:11:56 +00:00
Karl Palsson f5d2d8f109 stm32f7: sort makefile object list alphabetically 2019-04-15 13:12:31 +00:00
Ross Schlaikjer 4fb67d891f stm32f7: enable existing ethernet libraries 2019-04-15 13:11:05 +00:00
Ross Schlaikjer 1290e3129d stm32f7: enable existing CAN library 2019-04-15 13:10:59 +00:00
Ross Schlaikjer a92a44a7c2 stm32f7: enable existing CRC support 2019-04-15 13:10:37 +00:00