Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: stm32: add initial support of stm32mp135f-dk board

Add support of stm32mp135f discovery board (part number: STM32MP135F-DK).
It embeds a STM32MP135F SOC with 512 MB of DDR3.
Several connections are available on this board:
4*USB2.0, 1*USB2.0 typeC DRD, SDcard, 2*RJ45, HDMI, Combo Wifi/BT, ...

Only SD card, uart4 (console) and watchdog IPs are enabled in this commit.

Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>

+121
+1
arch/arm/boot/dts/Makefile
··· 1113 1113 stm32h743i-eval.dtb \ 1114 1114 stm32h743i-disco.dtb \ 1115 1115 stm32h750i-art-pi.dtb \ 1116 + stm32mp135f-dk.dtb \ 1116 1117 stm32mp153c-dhcom-drc02.dtb \ 1117 1118 stm32mp157a-avenger96.dtb \ 1118 1119 stm32mp157a-dhcor-avenger96.dtb \
+64
arch/arm/boot/dts/stm32mp13-pinctrl.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2 + /* 3 + * Copyright (C) STMicroelectronics 2021 - All Rights Reserved 4 + * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> 5 + */ 6 + #include <dt-bindings/pinctrl/stm32-pinfunc.h> 7 + 8 + &pinctrl { 9 + sdmmc1_b4_pins_a: sdmmc1-b4-0 { 10 + pins1 { 11 + pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */ 12 + <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */ 13 + <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */ 14 + <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */ 15 + <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */ 16 + slew-rate = <1>; 17 + drive-push-pull; 18 + bias-disable; 19 + }; 20 + pins2 { 21 + pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */ 22 + slew-rate = <2>; 23 + drive-push-pull; 24 + bias-disable; 25 + }; 26 + }; 27 + 28 + sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 { 29 + pins1 { 30 + pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */ 31 + <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */ 32 + <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */ 33 + <STM32_PINMUX('C', 11, AF12)>; /* SDMMC1_D3 */ 34 + slew-rate = <1>; 35 + drive-push-pull; 36 + bias-disable; 37 + }; 38 + pins2 { 39 + pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */ 40 + slew-rate = <2>; 41 + drive-push-pull; 42 + bias-disable; 43 + }; 44 + pins3 { 45 + pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */ 46 + slew-rate = <1>; 47 + drive-open-drain; 48 + bias-disable; 49 + }; 50 + }; 51 + 52 + uart4_pins_a: uart4-0 { 53 + pins1 { 54 + pinmux = <STM32_PINMUX('D', 6, AF8)>; /* UART4_TX */ 55 + bias-disable; 56 + drive-push-pull; 57 + slew-rate = <0>; 58 + }; 59 + pins2 { 60 + pinmux = <STM32_PINMUX('D', 8, AF8)>; /* UART4_RX */ 61 + bias-disable; 62 + }; 63 + }; 64 + };
+56
arch/arm/boot/dts/stm32mp135f-dk.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2 + /* 3 + * Copyright (C) STMicroelectronics 2021 - All Rights Reserved 4 + * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics. 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "stm32mp135.dtsi" 10 + #include "stm32mp13xf.dtsi" 11 + #include "stm32mp13-pinctrl.dtsi" 12 + 13 + / { 14 + model = "STMicroelectronics STM32MP135F-DK Discovery Board"; 15 + compatible = "st,stm32mp135f-dk", "st,stm32mp135"; 16 + 17 + aliases { 18 + serial0 = &uart4; 19 + }; 20 + 21 + memory@c0000000 { 22 + device_type = "memory"; 23 + reg = <0xc0000000 0x20000000>; 24 + }; 25 + 26 + vdd_sd: vdd-sd { 27 + compatible = "regulator-fixed"; 28 + regulator-name = "vdd_sd"; 29 + regulator-min-microvolt = <2900000>; 30 + regulator-max-microvolt = <2900000>; 31 + regulator-always-on; 32 + }; 33 + }; 34 + 35 + &iwdg2 { 36 + timeout-sec = <32>; 37 + status = "okay"; 38 + }; 39 + 40 + &sdmmc1 { 41 + pinctrl-names = "default", "opendrain"; 42 + pinctrl-0 = <&sdmmc1_b4_pins_a>; 43 + pinctrl-1 = <&sdmmc1_b4_od_pins_a>; 44 + broken-cd; 45 + disable-wp; 46 + st,neg-edge; 47 + bus-width = <4>; 48 + vmmc-supply = <&vdd_sd>; 49 + status = "okay"; 50 + }; 51 + 52 + &uart4 { 53 + pinctrl-names = "default"; 54 + pinctrl-0 = <&uart4_pins_a>; 55 + status = "okay"; 56 + };