Commit Graph

153 Commits

Author SHA1 Message Date
Erwan Gouriou 1b394d6e14 dts/arm/st: Add missing properties to stm32f2 fash controller node
Flash controller-node for stm32f2 based SoCs was missing basic
properties such as compatible, labeln reg and interrupts.
Fix this and add matching yaml binding file;

Fixes #10057

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2018-09-18 16:13:57 -07:00
Erwan Gouriou ca26a4bd16 dts/arm/st: Fix dtc warning in stm32 *-pinctrl.dtsi files
This change aims at fixing 'unit_address_vs_reg' warning in
stm32 *-pinctrl.dtsi files.
This warning pops up when a node name is made up with an address
(node_name@xx) but does not contain a reg property.
This case was encountered for led nodes for instance,
where a reg property has no meaning.
Fix this by changing node_name@xx to node_name_xx which removes the
guilty '@xx' syntax but preserves node_name uniqueness.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2018-09-18 12:36:08 -07:00
Kumar Gala 6e240da26f dts: Use new DT_SIZE_{K,M} macros
Now that we have a common DT_SIZE_K macro use it instead of defining
__SIZE_K eveywhere.  We also have DT_SIZE_M, so use that in a few
places as well.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-09-15 09:23:07 -05:00
Kumar Gala 91e0388513 dts/arm/st: Remove unneeded setting of #{address,size}-cells from RTC
The RTC node for some reason was setting #address-cells and #size-cells.
However it has no children so there isn't really any reason to do this.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-09-14 22:48:54 -05:00
Yannis Damigos e072aba411 dts/arm/st: Add rtc node to STM32F3
Add rtc node to STM32F3 series.

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-09-14 22:48:54 -05:00
Yannis Damigos 0e505265b3 dts/arm/st: Add rtc node to STM32F4
Add rtc node to STM32F4 series.

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2018-09-14 22:48:54 -05:00
Erwan Gouriou b680688329 dts/st: enables possibility to define Flash and SRAM out of tree
In case of out of tree SoC, mem.h will trigger and error since
it is not aware of new SoC CONFIG_SOC_<reference>.
Modify error condition in order to generate the error only if
the flash and error size are not defined at this point (even in
out of tree case).

Fixes #9978

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2018-09-14 21:52:23 -04:00
Yannis Damigos 15d1f20320 dts: stm32f429vX: Fix delete-node syntax
According to Device Tree specification, previously
defined nodes may be deleted with the followin
syntax:

/delete-node/ node-name;

or

/delete-node/ &label;

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2018-09-11 11:38:39 -05:00
Erwan Gouriou 68823b503e dts/st: fix stm32l4 gpioh gpioi node addresses
Fix erroneous address headers in stm32l4.dtsi/stm32l496.dtsi files

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2018-08-29 07:02:23 -05:00
Aurelien Jarno cdbbdcaee1 dts: stm32l4: add flash erase block size entry
The whole STM32L4 family has a flash with a constant page size of 2kB.
Specify this value in the DTS as the nvs sample application pull it
from there.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-08-28 13:11:45 -05:00
Olivier Martin 945ef745e0 dts/rtc: Introduce binding for STM32 RTC
This commit adds rtc fixup and dts blocks for RTC hardware
on STM32L4.

Signed-off-by: Olivier Martin <olivier.martin@proglove.de>
2018-08-16 13:38:43 -07:00
Istvan Bisz ea9d4a79c9 drivers: usb: add support for USB OTG FS on STM32F2
Add support for usbotg_fs, by adding the DT fixup, pinmux macros,
and the DT entries in stm32f2.dtsi.

Signed-off-by: Istvan Bisz <istvan.bisz@t-online.hu>
2018-08-16 06:19:19 -07:00
David Lamparter c4703661e6 arch: arm: soc: add STM32L433
The L433 chip is a superset of the L432, just grabbing a few additional
interfaces (LCD, I2C2, USART3, SPI2, SDMMC).  All the support/HAL files
are already there, so enabling these is just a matter of build system
setup.

Tested on an application specific board (builds correctly and I2C2
works.)  I unfortunately don't have a nucleo/discovery board to create a
reference board for.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-13 18:59:17 -07:00
Aurelien Jarno 97bc5abedf drivers: i2c: stm32: add support for STM32F7
The STM32F7 uses the V2 version of the STM32 I2C controller. Add the
corresponding Kconfig, DTS, DTS fixup and pinmux entries.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-07-25 07:19:12 -04:00
Yannis Damigos cc214b4426 dts/arm/st: Add OTG HS node to STM32 F4 and F7 series
Add OTG HS node to to STM32 F4 and F7 series

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2018-07-24 22:27:17 -04:00
Aurelien Jarno 9107e3dac8 drivers: usb: add support for USB OTG FS on STM32F7
The STM32F7 uses the same USB OTG FS controller than the STM32F4 series.
It is therefore trivial to add support for it, by adding the DT fixup
and pinmux macros, and the DT entries in stm32f7.dtsi. Keep it disabled,
it should be enabled at the board level.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-07-11 16:28:10 -05:00
Yong Jin 8776835bd6 arch: arm: stm32: add basic support for STM32F769 SoC
The STM32F769 has more interrupts and features than the STM32F746,
but the basic support is similar with STM32F746

Signed-off-by: Yong Jin <jinyong.iot@foxmail.com>
2018-07-06 09:56:25 -05:00
Yannis Damigos 1af5ce40cd dts/arm/st: Fix SPI1 clock property on F0 series
SPI1 is on APB2 on F0 series.

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2018-07-06 09:46:57 -05:00
Yannis Damigos ebc5e51ef6 dts/arm/st: Fix I2C3 clock property on L0 series
Set the correct bit to enable I2C3 clock on L0
series.

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2018-07-06 09:46:57 -05:00
Yannis Damigos ce983e77c8 dts/arm/st: Fix I2C1 clock property
Set the correct bit to enable I2C1 clock.

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2018-07-06 09:46:57 -05:00
qianfan Zhao 7e2f6ebc7b stm32f2: add stm32f207xe soc
Used and tested(blinky, hello_world) on out of tree custom board.

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
2018-07-05 11:26:07 -05:00
qianfan Zhao bdeece01b8 driver: uart_stm32: add support for stm32f2 series
clear RXNE flag in fifo_read, remove TEACK and REACK
check when uart_stm32_init because stm32f2 doesn't
has those flags.

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
2018-07-05 11:26:07 -05:00
qianfan Zhao dffac9ab74 driver: interrupt_controller: Add support for stm32f2
Add kconfig and c code for stm32f2 interrupt controller driver

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
2018-07-05 11:26:07 -05:00
qianfan Zhao 6fb7b04461 drivers: stm32-gpio: Provide GPIO driver for stm32f2
Add necessary GPIO defines for the stm32f2 series soc

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
2018-07-05 11:26:07 -05:00
qianfan Zhao 6091a7fd50 drivers: clock_control: Add support for stm32f2
Add clock control support for the stm32f2

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
2018-07-05 11:26:07 -05:00
qianfan Zhao 85d2633af2 stm32f2: add stm32f207xg soc
Add stm32f207xg soc to make nucleo-f207zg work.

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
2018-07-05 11:26:07 -05:00
qianfan Zhao 6511c4122d arm: stm32f2: Add support for stm32f2 series
Add necessary kconfig and DTS files for stm32f2 series

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
2018-07-05 11:26:07 -05:00
Daniel Egger dbf11bef81 dts: stm32f7-pinctrl Add definitions for F7 USART/UARTs
Added possible pin combinations for all U(S)ARTs peripherals for the
STM32F7 series MCUs.

Signed-off-by: Daniel Egger <daniel@eggers-club.de>
2018-07-05 11:24:33 -05:00
Erwan Gouriou d5100d792f dts/st: add clock property to i2c nodes
Add clocks to stm32 i2c nodes.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2018-07-05 11:16:38 -05:00
Erwan Gouriou 9b046ec08a dts/stm32: add clock property to spi nodes
For test purpose, add clocks property to (some) spi nodes

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2018-07-05 11:16:38 -05:00
Aurelien Jarno 6ee562b754 arch: arm: stm32: add basic support for STM32F723 SoC
The STM32F723 has more interrupts than the STM32F746 due to the
additional SDMMC controller. Besides that the changes are very
similar to the ones of the STM32F746.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-07-03 13:53:36 -05:00
Daniel Egger c32681f78d dts: arm: st: Correct pin assignment of node usart6@0
USART6 is ALT8, not ALT7

Signed-off-by: Daniel Egger <daniel@eggers-club.de>
2018-07-02 09:48:20 -05:00
Yurii Hamann 58643f3d86 arm: stm32: STM32F7 family device tree
This patch includes:
STM32F7 family device tree file with basic and UART definitions.
STM32F746 subfamily device tree file.
Memory definitions for STM32F746xG subfamily.

Signed-off-by: Yurii Hamann <yurii@hamann.site>
2018-06-28 08:29:32 -05:00
Yannis Damigos 3d53ddd435 dts/arm/st: Fix OTG_FS endpoint number for STM32F4 SoCs
STM32F412/413/446/469 SoCs have 6 bidirectional endpoints
according to the reference manuals RM0402, RM0430,
RM0390 and RM0386.

Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2018-06-26 11:17:25 -05:00
Bartosz Sokolski 06f4daf847 dts: add parentheses around argument in macro __SIZE_K
to allow expressions

Signed-off-by: Bartosz Sokolski <bartosz.sokolski@nordicsemi.no>
2018-06-20 12:14:58 -04:00
Aurelien Jarno 7688f49065 drivers: usb_dc_stm32: change all endpoints to bidirectional
The various STM32 reference manuals sometimes define the USB endpoints
as IN or OUT only and sometimes as bidirectional, even in the same
manual. This is likely because the OTG implementation has one set of
registers for the IN endpoints and one other set for OUT endpoints.
However at the end a given endpoint address can both transmit and
receive data.

This causes some confusion how to declare the endpoints in the device
tree, and depending on the SoC, they are either the same number of IN
and OUT endpoints declared, or they are declared as bidirectional. At
the end it doesn't really matter given how the driver uses those values:

    #define NUM_IN_EP (CONFIG_USB_NUM_BIDIR_ENDPOINTS + \
                       CONFIG_USB_NUM_IN_ENDPOINTS)

    #define NUM_OUT_EP (CONFIG_USB_NUM_BIDIR_ENDPOINTS + \
                        CONFIG_USB_NUM_OUT_ENDPOINTS)

    #define NUM_BIDIR_EP NUM_OUT_EP

This patch therefore cleanup the driver, the DTS, and the DTS fixups to
only define the number of bidirectional endpoints.

In addition to the cleanup, that fixes a regression introduced by commit
52eacf16a2 ("driver: usb: add check for endpoint capabilities"), which
introduced a wrong check for SoC only defining the number of
bidirectional endpoints.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-06-18 15:24:15 -04:00
Alexander Wachter c601f3be67 can: Add can support for STM32L432
This commit enables CAN on the STM32L432.
Tested on nucleo l432ck with external transceiver and loopback mode.

Signed-off-by: Alexander Wachter <alexander.wachter@student.tugraz.at>
2018-06-18 15:23:29 -04:00
Alexander Wachter ebc31f6235 drivers: can: Prepare STM32 driver for other series than STM32F0
This commit splits the common interrupt into rx and tx parts because
only STM32F0 series has a common interrupt.
Moved clock source definition to device-tree.

Signed-off-by: Alexander Wachter <alexander.wachter@student.tugraz.at>
2018-06-18 15:23:29 -04:00
Florian Vaussard c7d2dc2363 dts: stm32l4: Add PWM nodes
Add available PWM nodes to the existing STM32L4 device trees.

Signed-off-by: Florian Vaussard <florian.vaussard@gmail.com>
2018-06-12 03:54:26 -04:00
Florian Vaussard 7a60a2c49b dts: stm32f4: Add PWM nodes
Add available PWM nodes to the existing STM32F4 device trees.

Signed-off-by: Florian Vaussard <florian.vaussard@gmail.com>
2018-06-12 03:54:26 -04:00
Florian Vaussard bfa1941e1d dts: stm32f3: Add PWM nodes
Add available PWM nodes to the existing STM32F3 device trees.

Signed-off-by: Florian Vaussard <florian.vaussard@gmail.com>
2018-06-12 03:54:26 -04:00
Florian Vaussard da0caab3fd dts: stm32f1: Add PWM nodes
Add available PWM nodes to the existing STM32F1 device trees.

Signed-off-by: Florian Vaussard <florian.vaussard@gmail.com>
2018-06-12 03:54:26 -04:00
Florian Vaussard 0e8d97f186 dts: stm32f0: Add PWM nodes
Add available PWM nodes to the existing STM32F0 device trees.

Signed-off-by: Florian Vaussard <florian.vaussard@gmail.com>
2018-06-12 03:54:26 -04:00
Alexander Wachter b97dd472fb drivers: can: Move bit timing and clock to device tree
This commit moves the bit timing (PROP, BS1, BS2 segments and SWJ)
from Kconfig to the device-tree and fixes issue #7933

Signed-off-by: Alexander Wachter <alexander.wachter@student.tugraz.at>
2018-06-01 12:59:42 -05:00
Anthony Kreft 94a22daf36 arch: arm: STM32L053X8 support
Add support for the STM32L053X8 on the NUCLEO-L053R8 board.

Signed-off-by: Anthony Kreft <anthony.kreft@gmail.com>
2018-05-25 13:06:18 -05:00
Jun Li 8cc002e657 soc: stm32f1: add port uart4
Enable supporting UART4 on STM32F107 and STM32F103Xe SoCs.
Modified stm32f1/dts.fixup for replacing USART with UART.

Signed-off-by: Jun Li <jun.r.li@intel.com>
2018-05-25 11:58:20 -05:00
Ilya Tagunov 8b7c3cffb1 arch: arm: soc: stm32l0: add LPUART1 pinmux options
Add obvious and easily testable PA2/PA3 configuration
(same pins as USART2).

Signed-off-by: Ilya Tagunov <tagunil@gmail.com>
2018-05-25 11:54:42 -05:00
Ilya Tagunov 1e6d827a53 drivers: serial: stm32: add LPUART support for L0/L4 series
LPUART (Low-power UART) peripheral is just like ordinary U(S)ART
which lives in a separate clock/power domain.
Therefore already existing code could be reused as is
almost entirely.

Signed-off-by: Ilya Tagunov <tagunil@gmail.com>
2018-05-25 11:54:42 -05:00
Aurelien Jarno 509e6964cc arch: stm32l432: add support for USB controller
The STM32L432 SoC has a standard non-OTG USB controller. Add an entry
for it in stm32l432.dtsi and add the corresponding DTS fixup entries.
The controller is kept disabled and should be enabled at the board
level.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-05-24 09:42:30 -05:00
Aurelien Jarno dc01b99068 arch: stm32l4: only enable USB OTG on SoCs supporting it
USB OTG is currently enable for the whole STM32L4 family, while only a
few of them actually support it:

- STM32L475, STM32L476 and STM32L496 have an OTG controller
- STM32L432, STM32L433 and STM32L452 have an USB controller
- STM32L431, STM32L451 and STM32L471 do not have any USB controller

Fix that by moving the DT entry from stm32l4.dtsi to stm32l475.dtsi
and by adding a #ifdef #endif around the corresponding DTS fixup
entries.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2018-05-24 09:42:30 -05:00