1274 Commits

Author SHA1 Message Date
Brian Viele
53302439df stm32h7: Initial introduction into libopencm3.
Updates to a base set of includes to map to the h7 include files which are
mainly based on the f7 versions for simple devices (e.g. SPI, USART, GPIO).

Custom files that have been implemented from the datasheet/ref manual include
the memory map, RCC, PWR definitions, and irq.json file for generation of
nvic files for interrupt mapping.

Additional functionality, especially PLL and tweaks for non-F7 compatible
implementations coming in future commits.

Added documentation tree configuration.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
Changed dmaX_streamX to dmaX_strX in a few places for consistency
2019-11-28 22:15:24 +00:00
Karl Palsson
da0c6a6724 swm050: wdt: doxygen polish 2019-11-28 11:43:01 +00:00
Caleb Szalacinski
47b59e2df4 swm050: Adds WDT peripheral
Reviewed-by: Karl Palsson <karlp@tweak.net.au> (Fixed an &| in
wdt_set_time)
2019-11-28 11:42:31 +00:00
Brian Viele
dd18b9fdbc Qorvo pac55xx: initial support
Qorvo (Nee Active Semi) PAC55xx "Intelligent Motor Control" parts,
cortex-m4 SoCs
2019-11-26 23:28:02 +00:00
Guillaume Revaillot
38b45c8786 stm32g0: add adc.
v2 "single" peripheral with a couple of tweaks :
 - added registers to configure two additionnal advanced analog watchdog.
 - different adc sampling time time based on channel groups.
 - 8 steps adc sequence injection, using chselr/chselrmode.

And a note on the rm explaining that after every configuration change to ADC_CFGR1's
SCANDIR or CHSELRMOD or CHSELR register, user need to check that configuration
is applied before any other modification / adc conversion start.. making adc_set_reqular
a bit painfull to read..
2019-11-08 14:19:17 +00:00
Guillaume Revaillot
a34da53c30 stm32g0: add dmamux
DMAMUX peripheral is a dma request router/trigger, present on g0, wb, h7 and l4+.

Basically it allows to easily map peripheral requests to whatever dma channel we
want to use (similarily to the DMA_CSELR register, but without limitation) but,
it also also adds some clever dma request synchronization and even some dma request
generation logic via internal request generator "channels", allowing some requests
chaining, or triggering reqs from non dma capable peripherals.

nb: g0 only features 1 dmamux bloc, supports 7 irq and 4 generators, l4+ supports 13
dma channels and 3 generators and h7 has two dmamuxes, with support for the 15 dma
channels and 7 generators - so as much CxCR and RGxCR register - but they are bit
to bit compatible - excluding of course the sync/sig and dma requests id mappings.
btw, currently, request generator channels are defined in common header, but maybe
we should define them in device header ? or we dont care (like for dma channels,
only defined in dma_f24 but not for other devices ?).

See ST AN5224 for more information
2019-11-08 13:47:41 +01:00
Guillaume Revaillot
b9f183bf1e stm32g0: add dma.
same same, bit for bit, except not ;) - Channel request mapping now
depends on a new DMAMUX peripheral, and there's no default preset.
So, before enabling dma channel after its configuration, request
must be configured by :

dmamux_set_dma_channel_request(DMAMUX1, DMA_CHANNELx, request_number_from_datasheet);
2019-11-08 13:47:41 +01:00
Karl Palsson
833da4b672 cm3: extract SCB SHPR to the SCB world it belongs to
Pull out the duplicate into the right file, keeping the newly fixed
version.
2019-10-18 22:33:23 +00:00
Matt Anderson
d8579dde95 CortexM0: IPR and SHPR are only word addressable
For ARMv6M, the IPR and SHPR registers are accessible only when
adddressed with a 32bit word read or write.

Currently in libopencm3 all NVIC interrupt priority register accesses
are made using an 8bit read or write, which results in the hardware
ignoring the write or always returning 0 on read.

Address this by introducing NVIC_IPR32() and SCS_SHPR32() macro and
conditional implementation of nvic_set_priority when building for
cortex-m0.

See ARMv6M developer documentation:
IPR: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0497a/Cihgjeed.html
SHPR: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0497a/CIAGECDD.html
2019-10-17 21:26:13 +00:00
Karl Palsson
baa2f13592 swm050: doc: tweak peripheral apis groupings
Makes it more consistent with the other families.
2019-10-17 11:41:55 +00:00
Caleb Szalacinski
3c4ee6f4c0 SWM050: Finishes GPIO, IAP flash, sysclock, sleep/stop, and the sysctl memory map.
Updates the main memory map and the makefile.
Adds the SWM050 to devices.data, so that a linker script can be automatically generated.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2019-10-17 11:41:33 +00:00
Nicholas Rossomando
77d96a3430 stm32l0: crc: enable common code 2019-10-12 14:11:39 +00:00
Karl Palsson
66e6a2092e doc: stm32f1: gpio: remove redundant doxygen types
Fixes https://github.com/libopencm3/libopencm3/issues/1108
2019-09-30 10:28:21 +00:00
Jonathan Halmen
ec2d96433f stm32f4: rcc: add plli2s config function 2019-09-27 13:55:56 +00:00
Guillaume Revaillot
2035d84e55 stm32: lptim: add base support
Add basically what's needed to have some minimal but usefull subset of
function for a timer: irqs, compare, period, out polarity, enable/disable
and start.
2019-07-05 11:43:11 +02:00
Karl Palsson
8b4d952629 doc: stm32f3: adc: add missing parameters
Minor, link the adc peripheral parameter in a couple of places
2019-06-27 14:53:09 +00:00
Karl Palsson
9b3c813399 doc: lm3s: escape email address to avoid xml interp 2019-06-27 14:53:09 +00:00
Karl Palsson
06ee2009e8 doc: gd32f1x0: merge flash and rcc into periperhal apis
Instead of having some in peripheral_apis and some under the target
itself
2019-06-27 14:53:09 +00:00
Karl Palsson
0cd06bcc97 doc: gd32/f1x0: fix missing tags, drop wrong tags
Drop incorrect/redundant type information from doxygen parameters
Adds groupings that are referred to.
2019-06-25 21:15:35 +00:00
Karl Palsson
668cfb2967 doc: cm3: scb: add basic documentation
Adds a summary page, and now we have the existing functions documented.
2019-06-25 21:15:31 +00:00
Karl Palsson
e5b5ba0f9c doc: cm3: dwt: include existing documentation 2019-06-25 21:15:24 +00:00
Karl Palsson
1f359e0cb8 doc: efm32: tag USB files for doxygen generation 2019-06-25 21:15:19 +00:00
Karl Palsson
2d1277e1fa doc: efm32: uart/usart provide common doxygen
Fix some direct includes, tag properly, include a stub file to pull in
shared header documentation and re-arrange some existing documentation
to make it present nicely.
2019-06-25 21:15:19 +00:00
Karl Palsson
56265ad93f doc: efm32: rtc: tag and include in generated output
Includes the sutb file ncessary to find shared headers without any apis
2019-06-25 21:15:19 +00:00
Karl Palsson
9b3ab933ac doc: efm32: wdog: include stub file
Tags were added, but without the stub file, common headers aren't picked
up by the auto source list generation
2019-06-25 21:15:19 +00:00
Karl Palsson
531aa7e6b7 doc: efm32: rmu: include in doxygen generation
Include a stub .c file for shared code generation
2019-06-25 21:15:19 +00:00
Karl Palsson
75f6cbfd9d doc: efm32: msc: tag for doxygen inclusion
Includes a stub .c file to trigger common code generation
2019-06-25 21:15:19 +00:00
Karl Palsson
c92f3dc0ad doc: efm32: letimer: include tags for doxygen
Include a stub .c file to document the shared headers.
2019-06-25 21:15:19 +00:00
Karl Palsson
25dc3a9b4b doc: efm32: i2c: tag for doxygen
Includes a stub .c file until there are some APIs
2019-06-25 21:15:19 +00:00
Karl Palsson
4c01e47aed doc: efm32: emu: tag for doxygen properly
Requires a stub .c file to make the common files be included until we
build some APIs.
2019-06-25 21:15:19 +00:00
Karl Palsson
790d624230 doc: efm32: burtc: tag properly for doxyen
includes a stub .c file until there are APIs defined.
2019-06-25 21:15:19 +00:00
Karl Palsson
dc3bb245f1 doc: efm32: acmp: add missing file
Classssssssic error. Don't git add the local file created. doh.
2019-06-22 01:50:23 +00:00
Karl Palsson
7e2cd050aa doc: efm32: acmp: document, and include via peripheral_apis
Requires a stub .c file as it has common includes with out any common
code (yet)
2019-06-22 01:38:20 +00:00
Karl Palsson
7a058016b5 doc: efm32: dma: enable peripheral_apis 2019-06-22 01:38:20 +00:00
Karl Palsson
7861f2c2f6 doc: efm32: prs: enable peripheral_apis style
Include _basic_ description of unusual acronyms
2019-06-22 01:38:20 +00:00
Karl Palsson
0626f6f75d doc: efm32: adc: enable peripheral_apis style 2019-06-22 01:38:20 +00:00
Karl Palsson
ae777bb920 doc: efm32: timer: enable peripheral_apis style 2019-06-22 01:38:20 +00:00
Karl Palsson
c8b8285446 doc: efm32: dac: enable peripheral_apis documentation 2019-06-22 01:38:20 +00:00
Karl Palsson
093edfb881 doc: efm32: cmu: move to peripheral_apis
Was completely undocumented before. Just needed different tagging so it
could be picked up.

No attempt at this stage of sharing more code between the cmu modules.
2019-06-22 01:38:20 +00:00
Karl Palsson
9bc432474b doc: efm32: include gpio_common
gpio_common was built, but wasn't picked up by any documentation.
Use the peripheral_apis style from stm32, but try out the #pragma once
style.  Downside is you don't get warnings if you include an sub layer
.h file.  Upsides are
* no ifdef/endif blocks
* no /**@cond*/ /**@endcond*/ blocks
* that's enough win!
2019-06-22 01:38:20 +00:00
Karl Palsson
a5562f27c0 doc: efm32: fix doxygen warnings
Mind you, this doesn't actually fix that most of these are _missing_
that is a subsequent commit
2019-06-22 00:40:31 +00:00
Guillaume Revaillot
05214d826a stm32l0: consistent makefile.
sorted and styled per the rest of the project
2019-06-18 13:48:57 +02:00
Guillaume Revaillot
615918ffde stm32g0: compile spi_common_v1.c
fix #1067
2019-06-17 22:34:51 +00:00
Karl Palsson
1bc8a015f7 doc: stm32: timer: fix trivial parameter misnaming 2019-06-17 22:33:32 +00:00
Karl Palsson
e97c4b39b9 efm32: consistent makefiles
sorted and styled per the rest of the project
2019-06-17 22:33:32 +00:00
Karl Palsson
a522f7f3fa gd32: consistent makefile 2019-06-17 22:33:32 +00:00
Karl Palsson
3363e18c9c swm050: consistent makefile 2019-06-17 22:33:32 +00:00
Karl Palsson
b063c18a0c ti msp432: consistent makefile 2019-06-17 22:33:32 +00:00
Karl Palsson
d501e606ed ti lm3s/lm4f: consistent makefiles 2019-06-17 22:33:32 +00:00
Karl Palsson
4ec81b01f5 lpc13xx/lpc17xx: consistent makefiles 2019-06-17 22:33:32 +00:00