1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

47 Commits

Author SHA1 Message Date
Marian Buschsieweke
97b91b4f8f
boards/stm32: use GPIO LL for LEDs
This fixes a race in `LED<NUM>_TOGGLE`, which is a read-copy-write
operation. Any access to a GPIO pin on the same GPIO port that
happens concurrently could result in data corruption. Using the
GPIO LL API, which is thread-safe, fixes the issue.

Note: The used GPIO LL functions will work even in when the GPIO LL
      module is not used.
2024-08-02 09:55:24 +02:00
MrKevinWeiss
e0fdc3c16c
*Kconfig*: Modify Kconfig to remove dep model 2024-03-27 10:28:12 +01:00
Marian Buschsieweke
043e8cc88e
boards,sys/arduino: major clean up
- Rename all `arduino_pinmap.h` to `arduino_iomap.h`
    - An empty `arduino_pinmap.h` that just includes `arduino_iomap.h`
      is provided for backward compatibility
    - Move all info from `arduino_board.h` into the new file as trivial
      macros, so that they can also be used outside of sketches
    - The new name reflects the fact not just pin mappings, but also
      other I/O features such as PWMs are mapped
- Drop all `arduino_board.h`
    - `arduino_board.h` and `arduino_iomap.h` now provide the exact
      same information, just in a different format
    - a generic `arduino_board.h` is provided instead that just
      uses the info in `arduinio_iomap.h` and provides them in the
      format the code in `sys/arduino` expects it
- Add fine grained features to indicate for mappings
    - availability of mappings for analog pins, DAC pins, PWM pins,
      UART devices, SPI/I2C buses to the corresponding RIOT
      identification can now be expressed:
        - `arduino_pins`: `ARDUINO_PIN_0` etc. are available
        - `arduino_analog`: `ARDUINO_A0` etc. are available
        - `arduino_pwm`: `ARDUINO_PIN_13_PWM_DEV` etc. are available
        - `arduino_dac`: `ARDUINO_DAC0` etc. are available
        - `arduino_uart`: `ARDUINO_UART_D0D1` or similar are available
        - `arduino_spi`: `ARDUINO_SPI_ISP` or similar are available
        - `arduino_i2c`: `ARDUINO_I2C_UNO` or similar are available
    - mechanical/electrical compatibility with specific form factors
      can now be expressed as features:
        - `aruino_shield_nano`: Arduino NANO compatible headers
        - `aruino_shield_uno`: Arduino UNO compatible headers
        - `aruino_shield_mega`: Arduino MEGA compatible headers
        - `aruino_shield_isp`: ISP header is available

This provides the groundwork to implement shield support as modules
that can rely on the I/O mappings, rather than having to provide a
configuration per board.
2023-06-26 17:24:07 +02:00
d4b35ec172
boards: fix periph_uart_hw_fc dependency resolution 2023-06-17 15:13:19 +02:00
MrKevinWeiss
464f57b4a3
boards: Remove PLL overrides in kconfig
Since we know the HSE speed, manual overrides are not needed anymore
2022-11-03 13:38:09 +01:00
MrKevinWeiss
17cce015d4
treewide/stm32: Make CLOCK_HS* configurable 2022-11-03 11:37:28 +01:00
Karl Fessel
05f114d0af doc: fix unbalaced grouping
- most were trivial
    - missing group close or open
    - extra space
    - no doxygen comment
- name commad might open an implicit group
    this hould also be implicit cosed but does not happen somtimes
- crazy: internal declared groups have to be closed internal
2022-09-14 15:05:25 +02:00
Marian Buschsieweke
1fd9913293
boards/common/stm32: clean up LED definitions
Let boards only define the port and pin number of each LEDs. The common
definitions in `stm32_leds.h` will provide `LED<x>_ON`, `LED<x>_OFF`,
`LED<x>_TOGGLE`, `LED<x>_PIN`, `LED<x>_MASK` and `LED<x>_PORT`.

In addition to code de-duplication, this also makes it easier to use
LEDs in GPIO LL, which can be beneficial for super low overhead
debugging output - e.g. when a bug is timing sensitive and `DEBUG()`
would spent to much time for stdio to reproduce a bug.
2022-08-08 23:35:06 +02:00
Benjamin Valentin
5d111e71aa boards: drop board_init() from board.h 2022-02-25 15:08:58 +01:00
Francisco Molina
464d941a3e boards: drop empty custom board_init & empty board.c 2022-02-22 18:27:37 +01:00
Fabian Hüßler
9163d78910 boards: add VBAT for stm32 based boards with ADC 2022-02-21 10:49:43 +01:00
Benjamin Valentin
468ea89953 boards: drop LED init
This is handled by periph_init_leds now
2022-02-18 14:35:43 +01:00
MrKevinWeiss
514ea77b07
boards/ublox-c030-u201: Remove vfs make dep
This modelling doesn't seem correct and probably shouldn't be in here.
Normally vfs modelling shouldn't be handled in the boards.
Even if it was the mtd modelling is also not correct.
2022-02-07 14:02:52 +01:00
4877155e23
boards: unify user button defines 2021-12-20 11:39:17 +01:00
MrKevinWeiss
deda2cfb97
boards: Fix stm32 based boards kconfig models 2021-12-15 09:31:45 +01:00
Leandro Lanzieri
df7ce1c647
makefiles/kconfig: use two lists for boards and CPUs default configs
This introduces KCONFIG_BOARD_CONFIG and KCONFIG_CPU_CONFIG variable for
boards and CPUs (including common directories) to add default
configuration files to be merged. The current approach, as it uses
Makefile.features, would include boards first, not allowing them to
override CPU configurations.
2021-12-13 12:33:21 +01:00
Benjamin Valentin
fc88c4c4e5 boards: drop cpu_init() 2021-10-13 23:36:41 +02:00
b53d750029
boards/stm32: set openocd as only supported programmer 2021-02-24 13:29:16 +01:00
603186f913
make: namespace openocd DEBUG_ADAPTER variable 2021-02-23 21:22:52 +01:00
96b79c21f0
boards/stm32f4*: add Kconfig clock configuration 2021-01-19 22:09:16 +01:00
f8822b5f8f
boards: remove not need PORT_LINUX/PORT_DARWIN
They defined the same in serial.inc.mk. Some Darwin default are changed because they are probably wrong
2020-12-02 09:20:57 +01:00
4c290e1f92
boards: remove include of serial.inc.mk 2020-12-02 09:20:57 +01:00
c6ad85a7b0
boards: don't include programmer logic at board level 2020-11-25 22:31:13 +01:00
39e06babf5
boards/stm32: use generic clk_conf.h header 2020-10-27 08:44:56 +01:00
95fb362a5c
boards/stm32f4xx: use 180MHz default clock header 2020-10-06 22:07:19 +02:00
721625011e
boards/stm32f4*: use new clock configuration scheme 2020-10-06 16:10:05 +02:00
hugues
0943d12bb1 boards/ublox-c030-u201: declare adc_config[] directly in periph_conf.h 2020-08-27 03:56:26 +02:00
23d5e9202d
ublox-c030-u201: remove obsolete spi_divtable 2020-08-18 16:55:10 +02:00
b867ccd6c4
boards/ublox-c030-u201: model features in Kconfig 2020-07-16 11:34:05 +02:00
97f98dcace
boards/stm32: remove useless ifdef around DMA config 2020-05-25 13:23:20 +02:00
dc6bb50021
Merge pull request #14093 from bergzand/pr/boards_stm32f4/add_spi_dma
boards/stm32f4: Add DMA config for SPI
2020-05-25 13:17:22 +02:00
709f576d4a
ublox-c030-u201: Add DMA config for SPI 2020-05-25 11:42:12 +02:00
facb626b02
boards/stm32*: adapt for new stm32 cpu organization 2020-05-20 13:39:10 +02:00
d8ec0b292f
boards/stm32f4: Set DMA_STREAM_UNDEF for UART DMA
This PR sets the DMA configuration for the UART peripherals on the
stm32f4 boards to the undef value to disable the DMA. This to prevent
from accidentally configuring the DMA to stream 0 channel 0 when
enabling DMA.
2020-05-20 08:49:22 +02:00
Dylan Laduranty
a33e61e997 boards/stm32: update to use generic uart_hw_fc module 2020-03-10 14:34:11 +01:00
Yannick Gicquel
d37adee32d boards/stm32-based: allow SPI signals routed on multiple alternate functions
There is no hardware limitation for custom boards based on STM32 to uses
SPI bus with signals coming from different PORT and alternate functions.

This patch allow alternate's function definition per pin basis, thus enable
the support of SPI bus signals routed on differents PORT.

Signed-off-by: Yannick Gicquel <ygicquel@gmail.com>
2019-10-25 06:27:41 +02:00
Gaëtan Harter
636285ebe4
boards: move CPU/CPU_MODEL definition to Makefile.features
cpu/$(CPU)/Makefile.features and cpu/$(CPU)/Makefile.dep are
automatically included

Part of moving CPU/CPU_MODEL definition to Makefile.features to have it
available before Makefile.include.
2019-08-20 16:11:50 +02:00
Benjamin Valentin
8af04cd939 boards: make use of ARRAY_SIZE macro 2019-08-06 19:43:54 +02:00
3c00d41764
boards/ublox-c030-u201: use common timer configuration
This also requires to include the STM32 shared include directory
2019-08-05 15:00:12 +02:00
7853ca0108
boards/stm32*: remove useless RTC_NUMOF defines 2019-08-05 11:08:53 +02:00
a68f78bb10
boards/*: remove unused FEATURES_MCU_GROUP variable 2019-06-14 11:32:15 +02:00
414c304f2b
boards/*: remove useless export when setting DEBUG_ADAPTER 2019-06-03 10:32:08 +02:00
4ae15d18b5 boards/stm32based: remove periph_gpio/irq from board level 2018-12-18 21:51:14 +01:00
cladmi
b450141d4d
boards: unconditionally include CPU/Makefile.features
The file always exist so no need to do '-include'.

Replaced using:

    sed -i 's|-\(include $(RIOTCPU)/.*/Makefile.features\)|\1|' \
        $(git grep -l  '$(RIOTCPU)/.*/Makefile.features' boards)
2018-10-11 17:13:40 +02:00
Joakim Nohlgård
8996cbe313 make: Introduce new feature flag periph_gpio_irq 2018-08-29 08:53:20 +02:00
dylad
4276c12be0 board/ublox-c030-u201: add periph_conf to new I2C
Signed-off-by: dylad <dylan.laduranty@mesotic.com>
2018-07-25 15:17:43 +02:00
Vincent Dupont
1f7703135d boards: add ublox c030-u201 2018-05-24 16:42:29 +02:00