aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/gpio.c
Commit message (Collapse)AuthorAgeFilesLines
* Move GPIO support for STM32F1 to libmaple/stm32f1.Marti Bolivar2012-04-111-149/+2
| | | | | | | | | | | | | | | Make a new family header, libmaple/stm32f1/include/family/gpio.h, and supporting libmaple/stm32f1/gpio.c. Beyond registers and devices, these also include anything mentioning AFIO, which doesn't exist on F2. Update libmaple/stm32f1/rules.mk for new gpio.c. Alter gpio_write_bit() to use dev->regs->BSRR only. BRRs are not present on STM32F2. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Move public headers to include directories; related cleanups.Marti Bolivar2012-04-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* 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>
* 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
* Moving Doxygen comments from declarations to definitions.Marti Bolivar2011-05-231-0/+7
|
* gpio: Renaming for consistency.Marti Bolivar2011-05-191-16/+12
| | | | | Gave the anonymous enum typedefed to afio_exti_num the same name; renamed AFIORemapPeripheral afio_remap_peripheral.
* i2c: Various fixes, extensions, documentation.Perry Hung2011-05-121-0/+14
| | | | | | | | | | | | -Fix clock calculations for fast-mode support -Add I2C_REMAP option to remap i2c1 (untested) -Add I2C_BUS_RESET option to reset bus on initialization -Add optional timeout parameter -Doxygen comments -Various cleanup 10-bit slave addressing is untested until I have a device that speaks such.
* Adding /wirish/boards/ for easier porting; shrank PIN_MAPs.Marti Bolivar2011-03-241-14/+21
| | | | | | | | | | | | | | | | | /wirish/boards/ contains xxx.h and xxx.cpp (for xxx=maple, maple_native, maple_mini, maple_RET6). The headers contain the board-specific #defines that used to live in boards.h (except BOARD_INIT, which was removed). The CPP files contain the PIN_MAP definitions that used to live in boards.cpp, and a proper boardInit() function to replace the old BOARD_INIT macro. This will make it easier to add new boards in the future. struct PinMapping was renamed struct stm32_pin_info, and was moved into a new wirish_types.h. Its external interrupt field was moved into struct gpio_dev, which saves memory by storing an afio_exti_port per port, rather than one per pin. Also rearranged the stm32_pin_info fields to improve packing. Maple's PIN_MAP is now down to below 500 bytes.
* modify gpio interface to expose gpio dev structsPerry Hung2011-03-211-22/+15
|
* Revert "RCC refactor, bugfixes"Perry Hung2011-03-211-1/+1
| | | | This reverts commit e4807a5010f59ab863ad2c96dc14caf65bf1ae60.
* RCC refactor, bugfixesMarti Bolivar2011-03-121-1/+1
|
* [WIP] GPIO refactor: seems ok, ready for reviewMarti Bolivar2011-03-111-29/+136
|
* Ported libmaple to the new mini prototypeMarti Bolivar2011-01-271-1/+2
|
* docsMarti Bolivar2010-10-111-2/+0
|
* whitespace cleanupsMarti Bolivar2010-09-271-31/+30
|
* inital portability workbnewbold2010-08-251-0/+5
|
* New reset and clock control apiPerry Hung2010-08-041-5/+5
|
* Clear ODR for input pull-down mode.Perry Hung2010-04-221-4/+3
|
* PinMode pullup bug fix, wiring pin mode bug fixPerry Hung2010-04-221-11/+20
|
* Licensing: Relicensed libmaple under the MIT License.Perry Hung2010-03-311-12/+17
| | | | | | 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-2/+2
| | | | | Removed inttypes.h from libmaple. Will have another pass through to use the standard libmaple types, but will come in another commit.
* Merge branch 'master' into rcc-devPerry Hung2010-03-301-8/+6
| | | | | Conflicts: Makefile
* Major hierarchy reorganization; see README.bnewbold2010-03-311-0/+55
copy-to-ide and Makefile updated to conform; .gitignore added; LICENSE added