Commit Graph

959 Commits

Author SHA1 Message Date
dragonmux
26cb7f0ded stm32/h7: Implemented support for the LSI clock source 2025-07-11 20:26:35 -07:00
dragonmux
7047e3d01c stm32/h7: Implemented support for DMAMUX1 2025-07-11 20:26:35 -07:00
dragonmux
c0cd79359d stm32/h7: Enabled the main DMA controllers 2025-07-11 20:26:35 -07:00
dragonmux
9087802ce7 stm32/h7: Enabled the CRC32 generator peripheral 2025-07-11 20:26:35 -07:00
dragonmux
94411df91f stm32/common: Implemented oversampling control support for the F2/F4 parts 2025-07-11 20:26:35 -07:00
dragonmux
03a884bcca stm32/h7: Fixed an issue with how the RCC implementation decides which VCO to use in a given PLL 2025-07-11 20:26:35 -07:00
dragonmux
0685d162df stm32/h7: Fixed the accuracy of all the RCC clock frequency calculations as the Hz->MHz conversion was discarding too much information 2025-07-11 20:26:35 -07:00
dragonmux
10acaab08b stm32/h7: Fixed a couple of issues with the clock selector handling for the USARTs and peripherals 2025-07-11 20:26:35 -07:00
dragonmux
74ffe55dc5 stm32/h7: Fixed an accuracy issue in the PLL clock input frequency calculation that resulted in all the follow-on calculations being way off in value 2025-07-11 20:26:35 -07:00
dragonmux
80ffd05933 stm32/h7: Fixed an issue with the naming of the D2CCIP2R selector constant for some of the USARTs 2025-07-11 20:26:35 -07:00
dragonmux
2d15b12ff2 stm32/common: Implement handling for setting the baud rate correctly when in 8x oversampling mode 2025-07-11 20:26:35 -07:00
dragonmux
9480f493b9 stm32/common: Implement support for DE and changing the oversampling mode 2025-07-11 20:26:35 -07:00
dragonmux
b622d4b555 stm32/h7: Implemented handling for bringing up the 3.3V USB voltage supply 2025-07-11 20:26:35 -07:00
dragonmux
972d408ba5 stm32/h7: Implemented support changing the clock routed to the USB peripherals in the RCC 2025-07-11 20:26:35 -07:00
dragonmux
2b6eb047e0 stm32/h7: Implemented support for the HSI48 2025-07-11 20:26:35 -07:00
dragonmux
9f8ce70771 stm32/h7: Enabled support for the CRS controller 2025-07-11 20:26:35 -07:00
dragonmux
cdd8f2adac stm32/h7: Implemented support for the Flash controller having untangled the previous pretending it was the F2/F4 controller mess 2025-07-11 20:26:35 -07:00
dragonmux
83e571db67 stm32/h7: Fixed the QuadSPI headers not working with multiple peripehrals 2025-07-11 20:26:35 -07:00
dragonmux
c38a37c387 stm32/h7: Sorted a couple of missing peripheral register clock set cases 2025-07-11 20:26:35 -07:00
dragonmux
93423cbd9b stm32/h7: Enabled DWC2-based USB support for the platform 2025-07-11 20:26:35 -07:00
blutack
bb152f3ab7 Enable fifos on G4 2025-07-11 19:28:40 -07:00
dragonmux
547b7c0e72 stm32/st_usbfs_v2: Fixed the use of pointer maths on void pointers in the packet I/O code 2025-07-11 19:18:13 -07:00
dragonmux
a50a15e660 stm32/common: Removed the unnecessary and standards-forbidden (void *) casts from the callback registrations 2025-07-11 19:18:13 -07:00
dragonmux
345b20fb9f stm32/timer: Moved the OC4 mode logic into its own function 2025-07-11 19:15:56 -07:00
dragonmux
1254cb8cc8 stm32/timer: Moved the OC3 mode logic into its own function 2025-07-11 19:15:56 -07:00
dragonmux
a058f77434 stm32/timer: Moved the OC2 mode logic into its own function 2025-07-11 19:15:56 -07:00
dragonmux
f2a1f2b6ae stm32/timer: Moved the OC1 mode logic into its own function 2025-07-11 19:15:56 -07:00
dragonmux
bf9094d46c stm32: Added the new USB implementation objects to the build systems for the lineup 2025-07-11 19:14:29 -07:00
dragonmux
9efcb120f7 usb: Begun implementing support for sending the microsoft OS descriptor set structures 2025-07-11 19:14:29 -07:00
dragonmux
60ff345798 usb: Begun implementing support into the USB device machinary for BOS descriptors 2025-07-11 19:14:29 -07:00
dragonmux
1d97cbf6e1 usb: Begun implementing support for Binary Object Stores and their capability descriptors 2025-07-11 19:14:29 -07:00
Aron Szabo
3a85f91ed8 stm32l0: rcc: fix incorrect bit shift in rcc_set_lpuart1_sel()
The function `rcc_set_lpuart1_sel()` was incorrectly using `RCC_CCIPR_LPTIM1SEL_SHIFT`
instead of `RCC_CCIPR_LPUART1SEL_SHIFT`, causing incorrect LPUART1 clock source selection.

This patch corrects the bit shift to ensure the LPUART1SEL field is properly updated.

To verify check RM0377 Reference manual section 7.3.19.
2025-02-26 10:29:15 +01:00
neoxic
ec5aeba354 stm32g4: add IWDG support
Reviewed-by: Karl Palsson <karlp@tweak.au>
2024-03-11 09:11:29 +00:00
TomasPech
9545471e48 stm32g4: include desig support
Fixes: https://github.com/libopencm3/libopencm3/pull/1518
Reviewed-by: Karl Palsson <karlp@tweak.au>
2024-01-18 21:33:54 +00:00
Daniel Höpfl
eaea8dc12c usb:st usbfs-v2: fix disconnect polarity
Fixes issue #1482: Incorrect interpretation of disconnected parameter in st_usbfs_v2_disconnect

The `disconnected` parameter was interpreted incorrectly: When set to true it connected but should disconnect.

Reviewed-by: Karl Palsson <karlp@tweak.au>
2023-06-05 14:28:16 +00:00
dragonmux
56ec4c2b06 stm32/usart: Automatic whitespace cleanup 2023-04-16 22:18:43 -07:00
dragonmux
188671389d stm32/usart: Implemented a function to get the current parity setting for a USART 2023-04-16 22:18:43 -07:00
dragonmux
48a8355874 stm32/usart: Implemented a function to get the current stop bits setting for a USART 2023-04-16 22:18:43 -07:00
dragonmux
0241982fb4 stm32/usart: Implemented a function to get the current databits setting for a USART 2023-04-16 22:18:43 -07:00
Karl Palsson
8bc483746b stm32h7:usart: add common file to build
Without the common core, you couldn't actually link a project using the
usart peripherals.

Fixes: https://github.com/libopencm3/libopencm3/pull/1464
2023-02-03 14:22:22 +00:00
Rohit Nimkar
f3049c6699 doc: stm32: rcc: improve intellisense
Removed newline between the comment block and function definition
It enables vscode intellisense to display documentation about functions

Reviewed-by: Karl Palsson <karlp@tweak.au>
2023-02-03 00:15:12 +00:00
Harry Geyer
4d7a2ca271 stm32: When setting baudrate of a USART, first get the clock frequency for that USART.
Now that all families have support for calculating the clock of the
uart, use that layer.  Slightly slower for "old" families, but the only
way to be correct for newer families.

Reviewed-by: Karl Palsson <karlp@tweak.au>
2023-02-03 00:02:59 +00:00
Karl Palsson
e643f66342 stm32g4:rcc: add uart peripheral clock source helpers
Required so that the common uart infrastructure can be updated. This was
the last family to receive this implementation.

Signed-off-by: Karl Palsson <karlp@tweak.au>
2023-02-03 00:02:59 +00:00
Karl Palsson
e9426db222 stm32l4: rcc: use SYSCLK consistently with other families
Signed-off-by: Karl Palsson <karlp@tweak.au>
2023-02-02 23:58:02 +00:00
Karl Palsson
f0575c3560 stm32g4: rcc: use datasheet naming for CCIPR fields
Follow HACKING specifications, be consistent with all other parts.
Yes, the SEL suffix is kinda superfluous, but it's _consistent_ which is
why we do it.

Signed-off-by: Karl Palsson <karlp@tweak.au>
2023-02-02 23:51:13 +00:00
Karl Palsson
66e2cc3ea8 doc: stm32f0: flash: more variants than F05x these days.
Don't be so restrictive with the names. Use the standard F0xx style.

Signed-off-by: Karl Palsson <karlp@tweak.au>
2023-02-02 23:17:18 +00:00
Karl Palsson
130075a12d doc: stm32f0: comparator: move to "peripheral api" style
The COMP peripheral was left by it's own.

Signed-off-by: Karl Palsson <karlp@tweak.au>
2023-02-02 23:16:31 +00:00
Karl Palsson
e54650fba4 stm32f0: adc: external trigger selection to unshifted
Cleanup one function at a time.  Use the correct doxygen references, use
unshifted forms in user facing apis.  Yes, only the trigger at the
moment, as the polarity is shared.

Signed-off-by: Karl Palsson <karlp@tweak.au>
2023-02-02 22:47:44 +00:00
neoxic
d262e70fc3 stm32g4/g0: adc: fix clock prescalers
CCR register definitions were completely wrong, both decimal/hex mixups,
and straightup transcriptions from the reference manual errors.

Unify the styles for both g0 and g4, using the same (duplicated)
function for both implmentations.

Reviewed-by: Karl Palsson <karlp@tweak.au>
2023-02-01 21:40:56 +00:00
Karl Palsson
88e91c9a7c stm32:rcc: update _get_clock (uart/i2c) to handle all cases
Adds handling for missing cases.  While i2c only has 3 cases, uarts have
all 4, so make sure they're handled properly.
Removes duplicated/redundant definitions.
Adds doxygen wrappers, even if only for internal use.

Fixes: e41ac6ea71 stm32: added peripheral clock get helpers for all stm32
Signed-of-by: Karl Palsson <karlp@tweak.au>
2023-01-13 02:15:41 +00:00