aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/i2c.c
Commit message (Collapse)AuthorAgeFilesLines
* libmaple/i2c.c: Replace throb() with ASSERT(0).Marti Bolivar2012-06-221-1/+1
| | | | | | Calling throb() directly like that breaks the abstraction. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* I2C: I don't think 10-bit addressing works.Marti Bolivar2012-06-221-0/+3
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* I2C: Restore on F1, refactoring prep for F2.Marti Bolivar2012-06-221-44/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Bring back <libmaple/i2c.h> support on STM32F1 with a view towards how it'll be implemented on STM32F2. There are still many F1-isms in libmaple/i2c.c and <libmaple/i2c.h>, to be dealt with subsequently. Move device declarations and base pointer definitions to a new F1 <series/i2c.h>. The register maps and bit definitions themselves are identical on both series, so leave them in the libmaple header. Add i2c_private.h, which contains: - I2C_DEV(), a convenience macro for defining an i2c_dev, and - declarations for the event and error IRQ handlers. The IRQ handlers are large, and I2C is slow anyway, so I see no reason to make them inline in the private header (as we do for some other peripherals). We just expose the existing ones that were formerly static in libmaple/i2c.c, but prefix the names with underscore. Move the device declarations and IRQ handlers into new stm32f1/i2c.c. These use the i2c_private.h API. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* libmaple/i2c.c: Cosmetics.Marti Bolivar2012-06-221-2/+0
| | | | Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Fix a bunch of Doxygen file-level comments.Marti Bolivar2012-05-081-1/+1
| | | | | | | | | | | | | Fix @file in many places. Also fix up the descriptions where it's appropriate. This standardizes the @file formatting across the library to explicitly include any parent directories up to the repository root. Besides being nice, this will hopefully let us manage Doxygen's XML output so as to make extracting series-specific pieces via Breathe in the leaflabs-docs repo possible. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Move public headers to include directories; related cleanups.Marti Bolivar2012-04-111-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Update outdated stm32.h usages.Marti Bolivar2011-09-071-4/+4
| | | | | stm32.h has been updated to prefix its definitions. Update the rest of libmaple to take this into account.
* i2c: Renaming, type changes, exposing i2c_init(), documentation.Marti Bolivar2011-05-191-44/+52
| | | | | | | | | | | | | | | | | Changes to struct i2c_dev members: - uint8 clk_line's type is changing and is being renamed, is now rcc_clk_id clk_id - uint8 ev_nvic_line's type is changing to nvic_irq_num - uint8 er_nvic_line's type is changing to nvic_irq_num Previous names were badly typed and inconsistent with the rest of libmaple. Exposing i2c_init(), also for consistency. Adding/editing many Doxygen comments, for documentation and general housekeeping.
* libmaple: Fix warnings in libmaple source filesPerry Hung2011-05-121-7/+5
| | | | | -Add -Wall, -Werror to libmaple/* -Fix warnings
* i2c: Various fixes, extensions, documentation.Perry Hung2011-05-121-57/+170
| | | | | | | | | | | | -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.
* I2C fixup.Marti Bolivar2011-04-251-4/+13
| | | | Added i2c_init() for consistency with rest of libmaple.
* i2c cleanups.Marti Bolivar2011-04-141-28/+27
| | | | Whitespace and column width changes only.
* Making 1c05ac8497222a12a675ba31564e7c4864107de9 comply with coding standard.Marti Bolivar2011-04-121-6/+5
| | | | Whitespace corrections only.
* Adding i2c2 and i2c fast modeAnton Eltchaninov2011-04-121-11/+43
| | | | Signed-off-by: Anton Eltchaninov <anton.eltchaninov@gmail.com>
* Merge branch 'i2c-wip' into refactorPerry Hung2011-03-211-6/+6
| | | | | | | Conflicts: examples/test-fsmc.cpp libmaple/rules.mk wirish/boards.h
* Add rudimentary error handling for nack conditionPerry Hung2011-03-141-28/+23
|
* Fix merge error and compile error.Perry Hung2011-03-111-129/+39
|
* Rename i2c irq handler to new naming convention.Perry Hung2011-03-011-1/+1
|
* checkpointPerry Hung2011-02-261-0/+502