Commit Graph

1350 Commits

Author SHA1 Message Date
Karl Palsson 4fe5103851 stm32: dac: doxygenize the registers and values
Not 100% complete, but far closer, mostly just tagging the existing
information properly to get it included.
2021-01-24 22:08:20 +00:00
Karl Palsson 03cfd6b1ac stm32: dac: doxygen grouping for register bases 2021-01-24 21:38:50 +00:00
Karl Palsson fda0282b43 stm32f0: dac: drop redundant definitions
we're breaking the DAC api already, so don't bother keeping f0 specific
aliases for some of the t1 triggers.
2021-01-24 21:36:21 +00:00
Ben Brewer 1ebf172bcb stm32/dac: Update API to support multiple DACs and add v2 support 2021-01-07 15:30:51 +00:00
Kejia Hu 52781dee56 stm32g4: add SPI
The SPI peripheral on G4 is identical to F3, this patch copies the
header files directly from F3
2020-12-11 11:15:02 +00:00
Karl Palsson a499ea3480 stm32: timer/dmamux: fix broken includes
bad Karl, you can't just _start_ using pragma on common files, and
expect it to keep working.  Just finish, convert them fully to pragma.

pros: no more weird @cond boilerplate mess and trailing #endifs. easier
to follow
cons: no warning for people who deliberately try and include things in
bad orders.
2020-12-10 23:00:11 +00:00
Karl Palsson 1abb945dcd stm32f7: flash: doxygenize existing comments.
Just putting it in a different place and it all gets included in the
output nicely.
2020-12-10 22:26:05 +00:00
Karl Palsson 97d5e9a403 doxygen: fix more broken groupings 2020-12-10 22:25:51 +00:00
Karl Palsson 992a4d3753 stm32: rtc: doxygenize existing docs
Might as well show the information we have!
2020-12-10 22:00:03 +00:00
Karl Palsson e07f23bb70 doxygen: fix many warnings on "end of file while in group" 2020-12-10 21:51:48 +00:00
Karl Palsson 6f81e49290 stm32:crc: simplify doxygen and fix groupings
The @cond stuff has always been a lot of work for the rare cases of
people trying to include things by hand.  Just drop it
2020-12-10 21:34:49 +00:00
Ben Brewer e923a6fe6a stm32g4: Add support for OPAMP
Move implementations into common and split into v1 and v2.
2020-12-10 16:46:24 +00:00
Karl Palsson f82053000c stm32: crs: fix doxygen
We need per device header includes to make the per target documentation
generation work properly.  The dispatch headers are to dispatch to the
_target_ not directly to the final implementation, remember, the final
required headers for each may be multiple files, plus extra definitions!
2020-12-01 23:13:38 +00:00
Ben Brewer 98855377c6 stm32g4: Enable CRS 2020-12-01 22:41:07 +00:00
Sam Kirkham 82b4626ae3 stm32g4: Add support for USB
Co-authored-by: Ben Brewer <ben.brewer@codethink.co.uk>
2020-12-01 22:41:07 +00:00
Sam Kirkham cdf235ca0c stm32g4: Add support for ADC
Co-authored-by: Ben Brewer <ben.brewer@codethink.co.uk>
2020-12-01 22:41:07 +00:00
Ben Brewer 7219b32902 stm32: adc_common_v2: Make EXTSEL and ALIGN definitions per chip
STM32G4 uses v2 ADC but has EXTSEL and ALIGN fields modified, rather
than making a v3 ADC for these minor changes, the definitions have been
moved to the chip specific headers, so that the common code can work for
G4 onwards.
2020-12-01 22:41:02 +00:00
Sam Kirkham b84bf6e244 stm32g4: Add support for DMA 2020-12-01 22:41:02 +00:00
Sam Kirkham 17d6660491 stm32g4: Add support for DMAMUX
Co-authored-by: Ben Brewer <ben.brewer@codethink.co.uk>
2020-12-01 22:41:02 +00:00
Sam Kirkham 0fbf6e8cc1 stm32g4: Add support for Timers 2020-12-01 22:41:02 +00:00
Ben Brewer f4f75c92dd stm32g4: Implement RCC
Co-authored-by: Sam Kirkham <sam.kirkham@codethink.co.uk>
2020-12-01 22:41:02 +00:00
Ben Brewer 59569bfb04 stm32g4: Implement FLASH 2020-12-01 22:41:02 +00:00
Ben Brewer c26eab2513 stm32g4: Implement PWR 2020-12-01 22:41:02 +00:00
Brian Viele e41ac6ea71 stm32: added peripheral clock get helpers for all stm32 platforms.
Allows for abstraction for code that's dependent on knowing the source clock
for a peripheral. Implemented a few core peripherals that tend to have clock
tree differences between platforms (USART, timers, I2C, SPI).
2020-11-28 22:13:25 +00:00
Kevin Stefanik df55d45cc1 pac55xx: add usart definitions and basic support code. 2020-11-28 22:13:25 +00:00
Kevin Stefanik 253a091936 pac55xx: adding memctl for flash/sram access, and clock/pll configuration functions.
Merge-conflict: took _prior_ verision of CCS_MUXSELR_MASK_PIN as
bracketing of (pin) seemed more correct!
2020-11-28 22:13:25 +00:00
Kevin Stefanik 245761f894 pac55xx: implemented CAN module interface for qorvo pac55xx. 2020-11-28 22:13:25 +00:00
Karl Palsson cb83273416 stm32: dcmi: drop redundant @ingroups
@ingroup is only needed if you want to assign a doxygen group to
something other than the naturally containing outer group.
2020-11-28 22:13:25 +00:00
Karl Palsson daf99b9b76 stm32: dcmi: hook up doxygen again
We still need stub .c files as we're using shared common files, so .d
tracking doesn't work.  It lets us setup basic introductory text anyway,
and there will be .c files eventually, so acceptable.
2020-11-28 22:13:25 +00:00
Nikolai Smolyaninov 071d4680ec stm32f4/7: DCMI: extract common registers
And enable for the f7

Originally filed as: https://github.com/libopencm3/libopencm3/pull/1208
Rviewed-by: Karl Palsson <karlp@tweak.net.au>
2020-11-28 22:13:25 +00:00
Graham Keeth d4d4c798a6 add usb audio, cdc, and midi stub files for doxy
- add stub files to relevant makefiles
- include <stdint.h> in respective headers to fix compilation
2020-11-28 22:13:25 +00:00
Ben Brewer 05f07c1051 stm32f3: Add support for OPAMP 2020-11-28 22:13:25 +00:00
Fabio Pugliese Ornellas 2a4cf034c7 usb: dwc_otg: Add OTG_DSTS_SUSPSTS
Originally filed as: https://github.com/libopencm3/libopencm3/pull/1224

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2020-11-28 22:13:25 +00:00
Matt Walker 1c54d58c81 STM32H7: Support the RNG Peripheral
The random number generator on the STM32H7 is identical to the v1 RNG
already present in the library. So use that, and make sure that the RCC
knows about the peripheral.

Originally filed at: https://github.com/libopencm3/libopencm3/pull/1244

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
 * whitespace changes from review
2020-11-28 22:13:25 +00:00
tute-avalos b47d769369 stm32: uart: Add Trasmission Complete enable/disable interrupt functions 2020-11-28 22:13:25 +00:00
Matthew Lai c49b4d35c2 stm32f7: added USB OTG FS/HS
Originally tracked at https://github.com/libopencm3/libopencm3/pull/958
While it doesn't work for everyone, this is clearly the basic first
steps required for any progress to be made.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2020-11-28 22:13:25 +00:00
BOJIT 5d393b17a3 ethernet: stm32: PTP naming fixes.
Verify all hardware differences between F1 and F4/F7 Ethernet hardware.
Flags registers missing on F1 as well.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2020-11-28 22:13:25 +00:00
Karl Palsson 4eee1e9bde stm32f1: rcc: mark old style static routines deprecated 2020-11-28 22:13:25 +00:00
Karl Palsson 5f051241a8 stm32f1: rcc: provide struct based clock helpers
As on every other family.

Fixes: https://github.com/libopencm3/libopencm3/issues/1172
2020-11-28 22:13:25 +00:00
Karl Palsson a7902aa4d0 stm32l1: rcc/lcd: fix RTCSEL HSE definition
Wrong since original commit in 2013.

LCD code can't actually automatically determine clock speed if it's HSE,
as we don't know here whether what HSE is, nor what it's divided by.
For more fun, that old 2014 API doesn't have any way of flagging that it
failed either.  Hooray.
2020-11-28 22:13:25 +00:00
Devan Lai c13c2b3b3c usb: Allow registration of a single non-contiguous string descriptor for WinUSB
Classic WinUSB support is detected by probing for a string descriptor
at index 0xEE with a special string.
usbd_register_extra_string() allows registration of a string at this
index without having to provide 237 other string descriptors

Originally filed as https://github.com/libopencm3/libopencm3/pull/849

WCID reference: https://github.com/pbatard/libwdi/wiki/WCID-Devices
2020-11-28 22:13:25 +00:00
Manuel Bl ffe8ddfca2 stm32l4: Use USB_OTG_FS_BASE instead of OTG_FS_BASE
Use the standard definition name, so that all standard shared code for
this peripheral works.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2020-11-28 22:13:25 +00:00
Manuel Bl e9c94760e6 stm32l4: enable USB OTG driver 2020-11-28 22:13:25 +00:00
Karl Palsson c7d7a18dd7 stm32: rcc: Standardize prescaler define names
We did have
* _HPRE_SYSCLK_DIVN (3 parts)
* _HPRE_DIVN (5 parts)
* _HPRE_DIV_N (4 parts)

Unify all on _HPRE_DIVN.  Provide deprecated definitions to not break
everything at once.

Also, standardize on "NODIV" instead of DIVNONE.
2020-11-28 22:13:25 +00:00
Karl Palsson 43b3fa5ddc stm32l0/l1: flash: support half page flashing
Tested on L1 and L0 using the "dapboot" project, see
https://github.com/devanlai/dapboot/pull/27 for L1
and
https://github.com/devanlai/dapboot/pull/30 for L0
2020-11-28 22:13:25 +00:00
Karl Palsson 636918732d stm32: i2c: drop useless integer defines I2C_CR2_FREQ_
These defines were simply a word containing the number, instead of the
number itself.  This provides no value, and implies that there's a
limited set of values.  The list was _already_ incomplete, so
misleading, _and_ just noise to maintain.  Burn it all.

(well, burn it just a little bit, provide deprecated aliases on the old
values so that code keeps compiling)
2020-11-28 22:13:25 +00:00
Michael Drake 90753950bb stm32f3: Enable support for GPIO ports G and H 2020-04-30 08:29:08 +01:00
Michael Drake 07bd38b814 stm32f3: Add GPIO ports G and H to memory map 2020-04-30 08:29:06 +01:00
Chuck McManis 2ce5cc58ce STM32F4: Add FMPI2C1 Peripheral to the memory map 2020-04-15 12:07:48 +00:00
Chuck McManis 3ee9710f35 STM32F4: I2C Noise Filter Register 2020-04-15 12:07:45 +00:00