Re: STM32F103x port

Maciek Borzecki <maciek.borzecki@...>


I've uploaded another patchset.

Some of the patches have only gone through updates. Specifically
clock_control and the base st_stm32 tree patch. I've decided to keep
the RCC driver MCU specific. I'm not sure there's a nice and clean way
of organizing this so. I think that the device name is unfortunately
the only common part we can have for STM32 families, and so the device
is initialized using STM32_CLOCK_CONTROL_NAME.

GPIO and pinmux drivers have gone through a major change. I've tried
to have a common base for GPIO and pinmux drivers, while proving the
SoC specific functionality within arch/arm/soc/st_stm32/stm32f1
tree. The way it's implemented, the driver headers (gpio_stm32.h and
pinmux_stm32.h) declare a couple of functions that need to be
implemented by the soc integration. The divergence in register
contents between, STM32F1 and STM32F4 as well as the approach for
alternate function setup is too large to my liking. I think that
callig SoC specific integration is a good compromise and would allow
to keep the code maintainable.

There is a chicken and egg problem with the GPIO and pimux, namely the
common GPIO diver without the pinmux patch. I did not want to squash
the code into one large patch to keep the things civil. Just a thing
to remember, that these would have to be merged at the same time.

Since I got my Nucleo-64 F103RB, I've added the config for this bard
as well. The 'disco' sample has also been updated to be directly
usable on the Nucleo board rather than the obscure STM32 MINI A15.

I've also added 2 changes (709, 710) that will be unnecessary. A
similar fix from Daniel K has been posted. Once that is merged 2
master I'll just rebase skipping my 2 patches.

New Changes: arch/arm/cortex_m: move
fallback NMI handler to common Cortex-M arch/arm: move NMI_INIT()
helper macro to cortex_m common header clock_control/Kconfig: move
quark_se entries to separate file clock_control: extend API
with clock rate query operation soc/stm32f1/gpio: implement
GPIO support soc/stm32f1/pinmux: implement
STM32 pinmux integration boards/nucleo_f103rb: add new board

Updated Changes: st_stm32/stm32f1: introduce
STM32F1x SoC family clock_control/Kconfig: fix
quark_se dependencies clock_control/stm32f10x:
introduce new driver for STM32F10x RCC soc/stm32f1: add GPIO
registers mapping pinmux/stm32: add common
driver for STM32 pinmux serial/stm32: add new driver
for STM32 UART gpio/stm32: add common driver
for STM32 GPIO boards/stm32_mini_a15: add
new board samples/disco: add 'disco'
sample program

Maciek Borzecki

Join to automatically receive all group messages.