2028 Commits

Author SHA1 Message Date
Karl Palsson
fb520ff3dc stm32:usart-v2: pull out registers and values
Only pulling out the _common_ stuff.  This is a single step in a long
process of eliminating all the duplication and "same, but different"
implementations that are stalling adding nice clean easy support for
l0/f7/l4.

This _ignores_ all currently conflict register definitions, even if they
"do the same thing" it just pulls up the common stuff.  A subsequent
commit can look at resolving the implementatations to a single version.
2017-10-25 21:19:23 +00:00
Lucas Pickering
668c7c5079 stm32: adc: Fix address offset for ADC_CDR register 2017-10-25 21:16:26 +00:00
Matthias Bock
5fc4f48ae2 stm32: can: Fixed incorrect CAN_FMR_CAN2SB_SHIFT value 2017-10-25 16:59:38 +02:00
Karl Palsson
0663341244 stm32f4: dcmi: doc: group register bit defns
Makes the doxygen much much prettier and easier to follow.
2017-10-23 21:31:19 +00:00
Marek Koza
3dbcd16ced stm32: f4: Add DCMI peripheral register definitions 2017-10-23 21:31:16 +00:00
Karl Palsson
313d82ba02 doxygen: include all target headers
Even if they haven't been referenced from a .c file.  Some peripherals
start their life as register definitions only, and they should still
have the documentation generated.

There _will_ be overlap in the generated lists, but doxygen doesn't seem
to mind this.
2017-10-23 21:05:54 +00:00
Karl Palsson
38125e9941 vector: fix externs
Improper/lazy build testing.

Fixes: c6743f9 vector: make common linker definitions available to users
2017-10-18 20:51:33 +00:00
Vegard Storheil Eriksen
ef07b970f3 stm32: timer: Remove TIMER_IS_ADVANCED() checks
The ADVANCED_TIMERS define/check was added in 523943a as part of adding L1
support. The runtime checks against TIM1/TIM8 already existed. Since L1
doesn't have TIM1/TIM8, those names are undefined, resulting in a compilation
error until ifdeffed out.

Since I throw out all TIM1/TIM8 checks, there's no references to those names
left, thus no need to keep the ifdef either.

As for the registers themselves, l1/timer.h pulls in common/timer_common_all.h
which defines macros for the superset of all timers, so e.g. TIM_BDTR() is
still available regardless of whether or not the particular chip we're building
for has any timers with a BDTR register.
2017-10-18 20:39:51 +00:00
Karl Palsson
bf882caf4d make: avoid shell find for windows compatibility
Instead of expecting a posix-ish "find" in the shell, simply leverage
our knowledge of our source structure to make a single list using make's
builtin wildcard() functionality.

Fixes https://github.com/libopencm3/libopencm3/issues/828
2017-10-18 20:08:51 +00:00
Karl Palsson
c6743f9ecd vector: make common linker definitions available to users
_data_loadaddr, _data, _edata, _ebss, _stack and vector_table all now
available in vector.h.

Suggested on IRC
2017-10-18 20:05:14 +00:00
Karl Palsson
9443856b68 doc: drop latex support
HTML output is good enough for anyone, and is less maintennance.
2017-10-18 20:05:14 +00:00
Karl Palsson
9022e69d5d doc: drop the standalone cm3/usb documents
They are now included in the projects, so each .a file has a standalone
complete package of all documentation.
2017-10-18 20:05:14 +00:00
Karl Palsson
d002d9552f doc: dynamically generate correct file lists
Instead of the fragile and error prone attempts to specifically
include/exclude files from doxygen by name and pattern, simply use the
already generated .d files to provide accurate and up to date lists of
all source files used.

Pros:
* Nothing left to worry about
* Much more encouraging to actually _work_ on the documentation now that
you can be sure the right docs will be generated instead of a confusing
mix.

Downsides/Upsides:
* Automatically includes all CM3/USB in each device's page _as well_ now

Downsides:
* lpc43xx still manually listed.  However, completely contained in it's
own dir, so no problems
* No attempt to carry this in latex.  easy, but more tempted to drop
latex support outright. (I don't think the generation there has even
worked for a while now)
* Due to the mismatch between lib directories and document roots, the
sourcelist can't be magically created per directory.  There has to be
some sort of mapping between the two, so as this is doc generation only,
a static list seems sane for maintennance.  (Especially compared to the
old method)
* Source list generation probably doesn't work on windows.
2017-10-18 20:05:14 +00:00
Karl Palsson
f592e6d54e doc: cm3: include source, not just headers
Now with added systick/nvic functions
2017-10-18 20:05:14 +00:00
Karl Palsson
f475d459d3 stm32: hrtim: doc: group all regs and values 2017-10-12 11:30:07 +00:00
Florian Larysch
1bc8b4e719 stm32f3/rcc: add HRTIM RCC bits 2017-10-12 10:24:21 +00:00
Florian Larysch
5a80eb4bee stm32f3: add HRTIM definitions
Add definitions for the High Resolution Timer peripheral (currently only
present on the F334).
2017-10-12 10:24:15 +00:00
Karl Palsson
b2079f10af stm32:can: help gcc recognise deliberate fall through
Very new gcc versions add a warning on switch cases that fall through.
While there's an option that accepts any comment as explaining it, it's
easier in our case to just use one of the "blessed" comments.  We can't
use the [[]] attributes for standards code, and the gcc specific
attributes are worse than the comments.  This has no functional change
whatsoever.
2017-10-07 21:06:51 +00:00
Karl Palsson
af7b2190a9 timers: define ADVANCED_TIMERS in a "portable" manner
gcc7.2 complained about the old syntax.  So, be more verbose.

Fixes: https://github.com/libopencm3/libopencm3/issues/826
2017-10-06 15:43:31 +00:00
Fabián Inostroza
35ed6926a9 stm32f1: can: fix RST_CANx bit definitions
RCC_CANx bits were correct, typos in RST_CANx bits.
2017-10-05 09:29:38 +00:00
Karl Palsson
181ca054d7 stm32l4: add missing flash wait states
Fixes https://github.com/libopencm3/libopencm3/issues/832
2017-10-02 21:59:58 +00:00
Adam Heinrich
08dc7dac1c stm32f1: rcc: Fix number of wait states in comment to match the code
Signed-off-by: Adam Heinrich <adam@adamh.cz>
2017-10-02 21:47:06 +00:00
Adam Heinrich
e9a8c5106e stm32f0: rcc: Enable prefetch buffer in rcc_clock_setup_*()
Prefetch buffer makes the code execution from the Flash memory faster.

Signed-off-by: Adam Heinrich <adam@adamh.cz>
2017-10-02 21:47:06 +00:00
Karl Palsson
8f892a8e81 tests: gadget0: include sample udev rules and document 2017-10-02 21:46:38 +00:00
Diego Herranz
1b64b1494b stm32f1: doc: Fix gpio cnf parameter
GPIO_CNF_INPUT (non existing) -> GPIO_CNF_INPUT_FLOAT
2017-09-26 09:42:47 +00:00
Karl Palsson
db7a8d71ca stm32f4: rcc: doxygen updates
Uses doxygen groups instead of just  ------ comments, so they now
automatically get documented online.
2017-09-09 20:35:48 +00:00
Karl Palsson
db5f550611 stm32f4: Add new clock gate enable register for f413
Yet more clock enable bits on new F413/F423.
Sourced from RM490rev5
2017-09-09 19:59:04 +00:00
Amitesh Singh
e3c78b8825 stm32f1:rcc: fix typo in usb prescaler api document
usb scalar value 1.5 is used when clock runs at 72MHz not 64MHz

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2017-09-01 22:02:28 +00:00
Amitesh Singh
821f4a49ea tests: gadget0: stm32f1 hack should be consistent
D+ is PA12 not PA11.  The reason this worked before, is because the line
before made PA12 output, and without setting the GPIO_ODR register
_before_ hand, this meant as soon as it was switched to output, it
received the reset value of GPIO_ODR for PA12, ie, 0.  (Effectively
doing a "free" gpio_clear(GPIOA, GPIO12)

Because GPIO11 wasn't configured to be an output, the confusing
gpio_clear(GPIOA, GPIO11) was simply configuring the pullup/down value
of the input, which was still ignored, as it was (out of reset) in input
floating mode.

Reviewed-by: Karl Palsson <karlp@tweak.net.au>
2017-09-01 21:55:32 +00:00
Karl Palsson
b0e050d10d stm32: can: fix can_reset()
Clearly staging branch testers weren't testing.
Also, clearly the separation of RST_ bits and RCC_ bits is a complicated
annoyance.

Fixes: d9615a2eb728 update to modern include apis
2017-08-25 09:44:03 +00:00
Jordi Pakey-Rodriguez
26ca4cc88a stm32: timer: Add missing TIM_CCER_CC4NP 2017-08-24 21:44:28 +00:00
vollst-induktion
a42a058966 stm32f1/f4: adc: Fix ADC_SMPRx_SMPy_MSK defines
Referred to obsolete definition names.
2017-08-24 21:34:28 +00:00
Grigory Revzin
b31b3985b7 stm32: can: fixed naming for ABRQ2 2017-08-24 21:32:09 +00:00
Grigory Revzin
5cd4577489 stm32: can: fixed typos in CAN_RFxR_FOVR 2017-08-24 21:32:09 +00:00
Karl Palsson
e11e64330c stm32f0: can: add to build
Added the CAN1 compatibility aliases as has been done for adc and dac to
make code reuse easier.  Only for the magic enums, the raw bit
definitions remain as per the ref mans

Originally suggested as https://github.com/libopencm3/libopencm3/pull/802
2017-07-04 23:24:49 +00:00
Jonathan Halmen
83adad0aed stm32: can: change filter match index to uint8_t
The variable can only be 8bits, and converting pointers resulted in
cases of overwriting nearby variables.
2017-07-04 23:23:29 +00:00
Mike Naberezny
6cfbc5ac6a Remove unused Python variables 2017-06-24 12:37:27 +00:00
Karl Palsson
5a517f7854 stm32:adcv1: correct documentation for AWD
remove misleading atttempt at describing that the thresholds are
compared before any alignment changes takes place.
2017-06-23 23:17:23 +00:00
Mike Naberezny
860d10940b Remove unused Python imports 2017-06-23 14:42:59 +00:00
Karl Palsson
b4c4b4c3f9 devices.data: add stm32f105x8
Reported-by: Karl Hammar <karl@aspodata.se>
2017-06-17 21:58:46 +00:00
Karl Palsson
2a61740a90 stm32f1: rcc: Fix TIM17/TIM18 enable bits
the RCC_TIM17 and RCC_TIM18 macros used in the "new" style were ok, just
the old style raw bit definitions.

Reported-by: Karl Hammar <karl@aspodata.se>
2017-06-17 21:54:07 +00:00
Fabián Inostroza
98ff5c23aa stm32: can: Add support for getting the message timestamp.
Provide an optional parameter to receive the timestamp in
2017-06-08 23:01:45 +00:00
Fabián Inostroza
fac1013ccb stm32: can: fix timestamp mask and shift amount. 2017-06-08 23:01:45 +00:00
Karl Palsson
192c2eacb7 stm32: can: Correct mask/id order in filters
Checked against RM0090r11 and confirmed.

Reported-by: Warren Gay <ve3wwg@gmail.com>
2017-06-08 23:01:45 +00:00
Vegard Storheil Eriksen
58f2ee34fa usb: Ensure control events are handled in order
Use EP0 OUT flow control to NAK OUT packets when we're not yet expecting
any. This prevents the status OUT event from arriving while the control
state machine is still expecting the data IN completion event.
2017-06-08 23:01:45 +00:00
Karl Palsson
d97c1b0435 tests: gadget0: delay between calls to trigger races
Attempt to be more brutal by delaying more often, instead of always
promptly servicing the usb stack.

This is implemented via using timer6 to do a known number of
microseconds busy delay, and so only works on platforms that have
reached at least core timer functionality, and provide the
rcc_apb1_frequency variable.

NOTE! This will _fail_ on devices using the st_usbfs drivers at present,
but the code _should_ work, and the tests land to verify that the
library fix, fixes the problem. (see subsequent commit)
2017-06-08 23:01:45 +00:00
Karl Palsson
e652121931 tests: gadget0: stm32l0: use new clock helpers.
Doesn't actually change the test results, but gets more coverage from
the same test case.
2017-06-08 23:01:45 +00:00
Karl Palsson
bc898d1f92 stm32l0: rcc: Add clock struct setup helper
Based on l1, l4 and friends.
2017-06-08 23:01:45 +00:00
Karl Palsson
f594ddb395 tests: gadget-zero: run against all attached targets
Less command line arguments, more automatic "do what I mean"
2017-06-08 23:01:45 +00:00
Karl Palsson
ec1d2855b0 stm32l1: rcc: use better naming for flash wait states
More compatible with developments in l0/l4/f7, and just a better choice
of names overall.
2017-06-08 23:01:45 +00:00