aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/rcc.c
Commit message (Collapse)AuthorAgeFilesLines
* RCC: Clean up and sanitize interfaces across F1, F2 series.Marti Bolivar2012-04-111-0/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Additions: - rcc_switch_sysclk(): For changing the clock used as SYSCLK's source. - enum rcc_clk: One for each system and secondary clock source (e.g. HSE, LSE). These are defined on a per-series basis in each of the <series/rcc.h>. - rcc_turn_on_clk(), rcc_turn_off_clk(), rcc_is_clk_ready(): For turning on system and secondary clock sources, and checking whether or not they're ready. Uses enum rcc_clk. Removals: - rcc_clk_init(): There's no way to port this to F2. Move it to the F1 header. This also means we can remove the empty implementation and enum rcc_pll_multiplier from the F2 RCC header, where it doesn't make any sense. Also fix up some includes, and rewrite rcc_clk_init() in terms of the new clock source management functions. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* RCC: Break out some portable functionality from stm32f1/.Marti Bolivar2012-04-111-0/+44
| | | | | | | | | | | | | Portions of rcc_clk_enable(), rcc_reset_dev(), and rcc_set_prescaler() are portable; break these into static inline helpers in rcc_private.h. These guts of these are portable, but the arrays of registers etc. are not. Also add an extern declaration for rcc_dev_table into rcc_private.h. This lets us put rcc_dev_clk() into a newly resurrected libmaple/rcc.c, since that's portable. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Move RCC support for STM32F1 to libmaple/stm32f1/.Marti Bolivar2012-04-111-206/+0
| | | | | | | | | | | | This is a backwards-compatible change. Modify libmaple/rules.mk to include the family's include directory. This allows libmaple/include/libmaple/rcc.h to include the STM32F1 RCC header with #include <family/rcc.h>. We'll use this convention henceforth to distinguish between top-level and family-specific headers. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Move public headers to include directories; related cleanups.Marti Bolivar2012-04-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move libmaple/*.h to (new) libmaple/include/libmaple/. The new accepted way to include a libmaple header foo.h is with: #include <libmaple/foo.h> This is more polite in terms of the include namespace. It also allows us to e.g. implement the Arduino SPI library at all (which has header SPI.h; providing it was previously impossible on case-insensitive filesystems due to libmaple's spi.h). Similarly for Wirish. The old include style (#include "header.h") is now deprecated. libmaple/*.h: - Change include guard #defines from _FOO_H_ to _LIBMAPLE_FOO_H_. - Add license headers where they're missing - Add conditional extern "C" { ... } blocks where they're missing (they aren't always necessary, but we might was well do it against the future, while we're at it.). - Change includes from #include "foo.h" to #include <libmaple/foo.h>. - Move includes after extern "C". - Remove extra trailing newlines Note that this doesn't include the headers under libmaple/usb/ or libmaple/usb/usb_lib. These will get fixed later. libmaple/*.c: - Change includes from #include "foo.h" to #include <libmaple/foo.h>. Makefile: - Add I$(LIBMAPLE_PATH)/include/libmaple to GLOBAL_FLAGS. This allows for users (including Wirish) to migrate their code, but should go away ASAP, since it slows down compilation. Wirish: - Move wirish/**/*.h to (new) wirish/include/wirish/. This ignores the USB headers, which, as usual, are getting handled after everything else. - Similarly generify wirish/boards/ structure. For each supported board "foo", move wirish/boards/foo.h and wirish/boards/foo.cpp to wirish/boards/foo/include/board/board.h and wirish/boards/foo/board.cpp, respectively. Also remove the #ifdef hacks around the .cpp files. - wirish/rules.mk: put wirish/boards/foo/include in the include path (and add wirish/boards/foo/board.cpp to the list of sources to be compiled). This allows saying: #include <board/board.h> instead of the hack currently in place. We can allow the user to override this setting later to make adding custom board definitions easier. - Disable -Werror in libmaple/rules.mk, as the current USB warnings don't let the olimex_stm32_h103 board compile. We can re-enable -Werror once we've moved the board-specific bits out of libmaple proper. libraries, examples: - Update includes accordingly. - Miscellaneous cosmetic fixups. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* rcc: Add RCC_USB to rcc_clk_id/rcc_dev_table.Marti Bolivar2011-09-241-0/+1
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Added more doxygen file level headers. Documented a few more functions.Michael Hope2011-09-131-0/+1
| | | | Signed-off-by: Michael Hope <michaelh@juju.net.nz>
* rcc: Doxygen improvements.Marti Bolivar2011-08-221-18/+18
|
* rcc.c: Trivial comment tweak.Marti Bolivar2011-06-201-1/+0
|
* Keep it 80-column clean.Marti Bolivar2011-06-071-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | Go through overlong source code lines and convert as many of them as appropriate to be 80-column clean. This mostly affects license headers. Overlong lines are determined by running following from the libmaple base directory: $ ack-grep --nocolor --nogroup --cpp --cc --ignore-dir=usb -- '.{80}' Note that this excludes libmaple's usb subdirectory, which is still full of ST code that doesn't follow the libmaple source code guidelines. Contents of ~/.ackrc (these won't matter, but are included for completeness): --ignore-dir=docs --ignore-dir=build --type-set ld=.ld --type-set rst=.rst --type-set txt=.txt --type-set mk=.mk
* libmaple: Fix warnings in libmaple source filesPerry Hung2011-05-121-1/+1
| | | | | -Add -Wall, -Werror to libmaple/* -Fix warnings
* Adding RCC_SPI3 for high density devices.Marti Bolivar2011-04-291-0/+1
|
* Adding rcc_dev_clk(), an accessor for a peripheral's clock line.Marti Bolivar2011-04-251-8/+15
|
* Adding i2c2 and i2c fast modeAnton Eltchaninov2011-04-121-1/+1
| | | | Signed-off-by: Anton Eltchaninov <anton.eltchaninov@gmail.com>
* RCC refactor.Marti Bolivar2011-03-211-53/+75
| | | | | | Older refactor commit e4807a5010f59ab863ad2c96dc14caf65bf1ae60 used bit-banding in rcc_clk_init() to set RCC_CR_HSEON, which doesn't work for some reason. Not going to try to figure out why.
* Fix merge error and compile error.Perry Hung2011-03-111-1/+1
|
* i2c mergePerry Hung2011-02-281-0/+2
|\
| * checkpointPerry Hung2011-02-261-0/+2
| |
* | Refactor backup (BKP) and power (PWR) routines.Marti Bolivar2011-02-271-9/+11
| |
* | libmaple: Refactor ADC routinesPerry Hung2011-02-271-0/+1
|/ | | | | | ADC routines rewritten, support for ADC2, 3, added. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Basic DAC functionality (high-density devices only).Marti Bolivar2011-02-181-1/+1
|
* undoing USART[45] -> UART[45] mistakeMarti Bolivar2011-02-151-2/+2
|
* Added DMA1 and DMA2 to the RCCMichael Hope2010-10-201-0/+2
|
* whitespace cleanupsMarti Bolivar2010-09-271-97/+93
|
* Merge maple-native changes into portablebnewbold2010-08-311-42/+106
|\ | | | | | | This compiles for both maple and maple_native but is untested.
| * Further wirish portability progressbnewbold2010-08-311-0/+1
| | | | | | | | Sort of ugly changes. Compiles but untested.
| * inital portability workbnewbold2010-08-251-42/+9
| |
| * Switch spi to use new rcc interfacePerry Hung2010-08-041-0/+2
| |
| * New reset and clock control apiPerry Hung2010-08-041-83/+152
| |
| * Basic flash peripheral management api for board bringupPerry Hung2010-08-041-8/+0
| |
* | Some refactoringbnewbold2010-08-051-95/+64
|/
* rename clock selection registerbnewbold2010-07-241-2/+2
| | | | | | | This is just a change of macro name with zero impact on the actual binary. Looking at page 87/1003 of the STM reference manual, bits [0:1] are the SW register which is modifiable by software, while [2:3] are SWS and are set only by hardware.
* Licensing: Relicensed libmaple under the MIT License.Perry Hung2010-03-311-0/+24
| | | | | | Relicensed the bulk of libmaple under the more permissive MIT License, from GPLv3. Files that were largely or entirely derived from the Arduino, STM, or Lanchon retain their original licenses.
* Removed inttypes.hPerry Hung2010-03-311-9/+9
| | | | | Removed inttypes.h from libmaple. Will have another pass through to use the standard libmaple types, but will come in another commit.
* Removed STM32 flash code, replaced with barebones hacks for now.Perry Hung2010-03-301-3/+3
| | | | | At this point, there shouldn't be any STM code being compiled and linked against. There are still a bunch of STM header includes, though.
* Merge branch 'master' into rcc-devPerry Hung2010-03-301-0/+113
Conflicts: Makefile