2023-03-27 15:32:56

by Valentin Caron

[permalink] [raw]
Subject: [PATCH 0/7] ARM: dts: stm32: stm32mp15 various fixes and add stm32mp13 usart nodes

On stm32mp15 device trees:
- Add USART1 scmi clock
- Remove duplicates serial aliases

On stm32mp13 device trees:
- Add USART nodes in stm32mp131.dtsi
- Add USART nodes in stm32mp135f-dk.dts

Valentin Caron (7):
ARM: dts: stm32: change USART1 clock to an SCMI clock on stm32mp15
boards
ARM: dts: stm32: fix slew-rate of USART2 on stm32mp15xx-dkx
ARM: dts: stm32: clean uart aliases on stm32mp15xx-dkx boards
ARM: dts: stm32: clean uart aliases on stm32mp15xx-exx boards
ARM: dts: stm32: add uart nodes on stm32mp13
ARM: dts: stm32: add pins for usart2/1/4/8 in stm32mp13-pinctrl
ARM: dts: stm32: add uart nodes and uart aliases on stm32mp135f-dk

arch/arm/boot/dts/stm32mp13-pinctrl.dtsi | 129 +++++++++++++++++++++
arch/arm/boot/dts/stm32mp131.dtsi | 97 +++++++++++++++-
arch/arm/boot/dts/stm32mp135f-dk.dts | 42 ++++++-
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 4 +-
arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts | 4 +
arch/arm/boot/dts/stm32mp157a-dk1.dts | 3 -
arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts | 4 +
arch/arm/boot/dts/stm32mp157c-dk2.dts | 3 -
arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts | 4 +
arch/arm/boot/dts/stm32mp157c-ed1.dts | 8 +-
arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts | 4 +
arch/arm/boot/dts/stm32mp157c-ev1.dts | 9 +-
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 6 +
13 files changed, 298 insertions(+), 19 deletions(-)

--
2.25.1


2023-03-27 15:33:03

by Valentin Caron

[permalink] [raw]
Subject: [PATCH 1/7] ARM: dts: stm32: change USART1 clock to an SCMI clock on stm32mp15 boards

On ST stm32mp15 boards, change clock of USART1 node to SCMI clock
"CK_SCMI_USART1"

Signed-off-by: Valentin Caron <[email protected]>
---
arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts | 4 ++++
arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts | 4 ++++
arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts | 4 ++++
arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts | 4 ++++
4 files changed, 16 insertions(+)

diff --git a/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts b/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
index e539cc80bef8..5c8164c10e46 100644
--- a/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
+++ b/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
@@ -77,3 +77,7 @@ &rng1 {
&rtc {
clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
};
+
+&usart1 {
+ clocks = <&scmi_clk CK_SCMI_USART1>;
+};
diff --git a/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts b/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
index 97e4f94b0a24..2c9a207a9d49 100644
--- a/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
+++ b/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
@@ -83,3 +83,7 @@ &rng1 {
&rtc {
clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
};
+
+&usart1 {
+ clocks = <&scmi_clk CK_SCMI_USART1>;
+};
diff --git a/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts b/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
index 9cf0a44d2f47..21c8169f0e82 100644
--- a/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
@@ -82,3 +82,7 @@ &rng1 {
&rtc {
clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
};
+
+&usart1 {
+ clocks = <&scmi_clk CK_SCMI_USART1>;
+};
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts b/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
index 3b9dd6f4ccc9..0084abbeb60e 100644
--- a/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
@@ -88,3 +88,7 @@ &rng1 {
&rtc {
clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
};
+
+&usart1 {
+ clocks = <&scmi_clk CK_SCMI_USART1>;
+};
--
2.25.1

2023-03-27 15:43:51

by Valentin Caron

[permalink] [raw]
Subject: [PATCH 2/7] ARM: dts: stm32: fix slew-rate of USART2 on stm32mp15xx-dkx

On stm32mp15xx-dkx boards:
- Fix slew-rate of USART 2 to 0 like other USARTs, because frequency of
USART pins doesn't exceed 10Mhz.

Signed-off-by: Valentin Caron <[email protected]>
---
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi
index a9d2bec99014..af5ce19794e3 100644
--- a/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi
@@ -2163,7 +2163,7 @@ pins1 {
<STM32_PINMUX('D', 4, AF7)>; /* USART2_RTS */
bias-disable;
drive-push-pull;
- slew-rate = <3>;
+ slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('D', 6, AF7)>, /* USART2_RX */
@@ -2181,7 +2181,7 @@ pins2 {
pinmux = <STM32_PINMUX('D', 4, AF7)>; /* USART2_RTS */
bias-disable;
drive-push-pull;
- slew-rate = <3>;
+ slew-rate = <0>;
};
pins3 {
pinmux = <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
--
2.25.1

2023-03-27 15:44:09

by Valentin Caron

[permalink] [raw]
Subject: [PATCH 6/7] ARM: dts: stm32: add pins for usart2/1/4/8 in stm32mp13-pinctrl

Add pins for uart4, uart8, usart1 and usart2 in stm32mp13-pinctrl.dtsi
Theses pins have three states: default, sleep and idle.

Signed-off-by: Valentin Caron <[email protected]>
---
arch/arm/boot/dts/stm32mp13-pinctrl.dtsi | 129 +++++++++++++++++++++++
1 file changed, 129 insertions(+)

diff --git a/arch/arm/boot/dts/stm32mp13-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp13-pinctrl.dtsi
index b2dce3a29f39..27e0c3826789 100644
--- a/arch/arm/boot/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32mp13-pinctrl.dtsi
@@ -258,4 +258,133 @@ pins2 {
bias-disable;
};
};
+
+ uart4_idle_pins_a: uart4-idle-0 {
+ pins1 {
+ pinmux = <STM32_PINMUX('D', 6, ANALOG)>; /* UART4_TX */
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('D', 8, AF8)>; /* UART4_RX */
+ bias-disable;
+ };
+ };
+
+ uart4_sleep_pins_a: uart4-sleep-0 {
+ pins {
+ pinmux = <STM32_PINMUX('D', 6, ANALOG)>, /* UART4_TX */
+ <STM32_PINMUX('D', 8, ANALOG)>; /* UART4_RX */
+ };
+ };
+
+ uart8_pins_a: uart8-0 {
+ pins1 {
+ pinmux = <STM32_PINMUX('E', 1, AF8)>; /* UART8_TX */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <0>;
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('F', 9, AF8)>; /* UART8_RX */
+ bias-pull-up;
+ };
+ };
+
+ uart8_idle_pins_a: uart8-idle-0 {
+ pins1 {
+ pinmux = <STM32_PINMUX('E', 1, ANALOG)>; /* UART8_TX */
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('F', 9, AF8)>; /* UART8_RX */
+ bias-pull-up;
+ };
+ };
+
+ uart8_sleep_pins_a: uart8-sleep-0 {
+ pins {
+ pinmux = <STM32_PINMUX('E', 1, ANALOG)>, /* UART8_TX */
+ <STM32_PINMUX('F', 9, ANALOG)>; /* UART8_RX */
+ };
+ };
+
+ usart1_pins_a: usart1-0 {
+ pins1 {
+ pinmux = <STM32_PINMUX('C', 0, AF7)>, /* USART1_TX */
+ <STM32_PINMUX('C', 2, AF7)>; /* USART1_RTS */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <0>;
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('B', 0, AF4)>, /* USART1_RX */
+ <STM32_PINMUX('A', 7, AF7)>; /* USART1_CTS_NSS */
+ bias-pull-up;
+ };
+ };
+
+ usart1_idle_pins_a: usart1-idle-0 {
+ pins1 {
+ pinmux = <STM32_PINMUX('C', 0, ANALOG)>, /* USART1_TX */
+ <STM32_PINMUX('A', 7, ANALOG)>; /* USART1_CTS_NSS */
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('C', 2, AF7)>; /* USART1_RTS */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <0>;
+ };
+ pins3 {
+ pinmux = <STM32_PINMUX('B', 0, AF4)>; /* USART1_RX */
+ bias-pull-up;
+ };
+ };
+
+ usart1_sleep_pins_a: usart1-sleep-0 {
+ pins {
+ pinmux = <STM32_PINMUX('C', 0, ANALOG)>, /* USART1_TX */
+ <STM32_PINMUX('C', 2, ANALOG)>, /* USART1_RTS */
+ <STM32_PINMUX('A', 7, ANALOG)>, /* USART1_CTS_NSS */
+ <STM32_PINMUX('B', 0, ANALOG)>; /* USART1_RX */
+ };
+ };
+
+ usart2_pins_a: usart2-0 {
+ pins1 {
+ pinmux = <STM32_PINMUX('H', 12, AF1)>, /* USART2_TX */
+ <STM32_PINMUX('D', 4, AF3)>; /* USART2_RTS */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <0>;
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('D', 15, AF1)>, /* USART2_RX */
+ <STM32_PINMUX('E', 11, AF2)>; /* USART2_CTS_NSS */
+ bias-disable;
+ };
+ };
+
+ usart2_idle_pins_a: usart2-idle-0 {
+ pins1 {
+ pinmux = <STM32_PINMUX('H', 12, ANALOG)>, /* USART2_TX */
+ <STM32_PINMUX('E', 11, ANALOG)>; /* USART2_CTS_NSS */
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('D', 4, AF3)>; /* USART2_RTS */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <0>;
+ };
+ pins3 {
+ pinmux = <STM32_PINMUX('D', 15, AF1)>; /* USART2_RX */
+ bias-disable;
+ };
+ };
+
+ usart2_sleep_pins_a: usart2-sleep-0 {
+ pins {
+ pinmux = <STM32_PINMUX('H', 12, ANALOG)>, /* USART2_TX */
+ <STM32_PINMUX('D', 4, ANALOG)>, /* USART2_RTS */
+ <STM32_PINMUX('D', 15, ANALOG)>, /* USART2_RX */
+ <STM32_PINMUX('E', 11, ANALOG)>; /* USART2_CTS_NSS */
+ };
+ };
};
--
2.25.1

2023-03-27 15:44:30

by Valentin Caron

[permalink] [raw]
Subject: [PATCH 4/7] ARM: dts: stm32: clean uart aliases on stm32mp15xx-exx boards

Remove duplicates and clean uart aliases.
Uart aliases and uart pins should be declared and associated to
uart instance at the same time.

Put also aliases node above chosen node as same as stm32mp157c-dk2.dts.

Signed-off-by: Valentin Caron <[email protected]>
---
arch/arm/boot/dts/stm32mp157c-ed1.dts | 8 ++++----
arch/arm/boot/dts/stm32mp157c-ev1.dts | 9 ++++-----
2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/arch/arm/boot/dts/stm32mp157c-ed1.dts b/arch/arm/boot/dts/stm32mp157c-ed1.dts
index b1eb688a278a..2dfde6292668 100644
--- a/arch/arm/boot/dts/stm32mp157c-ed1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ed1.dts
@@ -16,6 +16,10 @@ / {
model = "STMicroelectronics STM32MP157C eval daughter";
compatible = "st,stm32mp157c-ed1", "st,stm32mp157";

+ aliases {
+ serial0 = &uart4;
+ };
+
chosen {
stdout-path = "serial0:115200n8";
};
@@ -72,10 +76,6 @@ gpu_reserved: gpu@e8000000 {
};
};

- aliases {
- serial0 = &uart4;
- };
-
sd_switch: regulator-sd_switch {
compatible = "regulator-gpio";
regulator-name = "sd_switch";
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
index 542226cfcfdf..ba8e9d9a42fa 100644
--- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
@@ -14,16 +14,15 @@ / {
model = "STMicroelectronics STM32MP157C eval daughter on eval mother";
compatible = "st,stm32mp157c-ev1", "st,stm32mp157c-ed1", "st,stm32mp157";

- chosen {
- stdout-path = "serial0:115200n8";
- };
-
aliases {
- serial0 = &uart4;
serial1 = &usart3;
ethernet0 = &ethernet0;
};

+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
clocks {
clk_ext_camera: clk-ext-camera {
#clock-cells = <0>;
--
2.25.1

2023-03-27 15:44:33

by Valentin Caron

[permalink] [raw]
Subject: [PATCH 5/7] ARM: dts: stm32: add uart nodes on stm32mp13

Update device-tree stm32mp131.dtsi to add some uart features.

On uart 1, 2, 3, 5, 6, 7, 8 nodes, add compabible, exti interrupts, clock,
reset properties, dma config.

On uart 4 node, only add dma configuration and use exti interrupt.

Signed-off-by: Valentin Caron <[email protected]>
---
arch/arm/boot/dts/stm32mp131.dtsi | 97 ++++++++++++++++++++++++++++++-
1 file changed, 96 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/stm32mp131.dtsi b/arch/arm/boot/dts/stm32mp131.dtsi
index 5949473cbbfd..9ea61687f023 100644
--- a/arch/arm/boot/dts/stm32mp131.dtsi
+++ b/arch/arm/boot/dts/stm32mp131.dtsi
@@ -397,12 +397,42 @@ spdifrx: audio-controller@4000d000 {
status = "disabled";
};

+ usart3: serial@4000f000 {
+ compatible = "st,stm32h7-uart";
+ reg = <0x4000f000 0x400>;
+ interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rcc USART3_K>;
+ resets = <&rcc USART3_R>;
+ wakeup-source;
+ dmas = <&dmamux1 45 0x400 0x5>,
+ <&dmamux1 46 0x400 0x1>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+
uart4: serial@40010000 {
compatible = "st,stm32h7-uart";
reg = <0x40010000 0x400>;
- interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&rcc UART4_K>;
resets = <&rcc UART4_R>;
+ wakeup-source;
+ dmas = <&dmamux1 63 0x400 0x5>,
+ <&dmamux1 64 0x400 0x1>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+
+ uart5: serial@40011000 {
+ compatible = "st,stm32h7-uart";
+ reg = <0x40011000 0x400>;
+ interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rcc UART5_K>;
+ resets = <&rcc UART5_R>;
+ wakeup-source;
+ dmas = <&dmamux1 65 0x400 0x5>,
+ <&dmamux1 66 0x400 0x1>;
+ dma-names = "rx", "tx";
status = "disabled";
};

@@ -442,6 +472,32 @@ i2c2: i2c@40013000 {
status = "disabled";
};

+ uart7: serial@40018000 {
+ compatible = "st,stm32h7-uart";
+ reg = <0x40018000 0x400>;
+ interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rcc UART7_K>;
+ resets = <&rcc UART7_R>;
+ wakeup-source;
+ dmas = <&dmamux1 79 0x400 0x5>,
+ <&dmamux1 80 0x400 0x1>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+
+ uart8: serial@40019000 {
+ compatible = "st,stm32h7-uart";
+ reg = <0x40019000 0x400>;
+ interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rcc UART8_K>;
+ resets = <&rcc UART8_R>;
+ wakeup-source;
+ dmas = <&dmamux1 81 0x400 0x5>,
+ <&dmamux1 82 0x400 0x1>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+
timers1: timer@44000000 {
#address-cells = <1>;
#size-cells = <0>;
@@ -524,6 +580,19 @@ counter {
};
};

+ usart6: serial@44003000 {
+ compatible = "st,stm32h7-uart";
+ reg = <0x44003000 0x400>;
+ interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rcc USART6_K>;
+ resets = <&rcc USART6_R>;
+ wakeup-source;
+ dmas = <&dmamux1 71 0x400 0x5>,
+ <&dmamux1 72 0x400 0x1>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+
i2s1: audio-controller@44004000 {
compatible = "st,stm32h7-i2s";
reg = <0x44004000 0x400>;
@@ -748,6 +817,32 @@ usbotg_hs: usb@49000000 {
status = "disabled";
};

+ usart1: serial@4c000000 {
+ compatible = "st,stm32h7-uart";
+ reg = <0x4c000000 0x400>;
+ interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rcc USART1_K>;
+ resets = <&rcc USART1_R>;
+ wakeup-source;
+ dmas = <&dmamux1 41 0x400 0x5>,
+ <&dmamux1 42 0x400 0x1>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+
+ usart2: serial@4c001000 {
+ compatible = "st,stm32h7-uart";
+ reg = <0x4c001000 0x400>;
+ interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rcc USART2_K>;
+ resets = <&rcc USART2_R>;
+ wakeup-source;
+ dmas = <&dmamux1 43 0x400 0x5>,
+ <&dmamux1 44 0x400 0x1>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+
i2s4: audio-controller@4c002000 {
compatible = "st,stm32h7-i2s";
reg = <0x4c002000 0x400>;
--
2.25.1

2023-03-27 15:45:11

by Valentin Caron

[permalink] [raw]
Subject: [PATCH 3/7] ARM: dts: stm32: clean uart aliases on stm32mp15xx-dkx boards

Remove duplicates and clean uart aliases.
Uart aliases and uart pins should be declared and associated to
uart instance at the same time.

Signed-off-by: Valentin Caron <[email protected]>
---
arch/arm/boot/dts/stm32mp157a-dk1.dts | 3 ---
arch/arm/boot/dts/stm32mp157c-dk2.dts | 3 ---
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 6 ++++++
3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/stm32mp157a-dk1.dts b/arch/arm/boot/dts/stm32mp157a-dk1.dts
index 4c8be9c8eb20..0da3667ab1e0 100644
--- a/arch/arm/boot/dts/stm32mp157a-dk1.dts
+++ b/arch/arm/boot/dts/stm32mp157a-dk1.dts
@@ -17,9 +17,6 @@ / {

aliases {
ethernet0 = &ethernet0;
- serial0 = &uart4;
- serial1 = &usart3;
- serial2 = &uart7;
};

chosen {
diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts b/arch/arm/boot/dts/stm32mp157c-dk2.dts
index 2bc92ef3aeb9..ab13e340f4ef 100644
--- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
+++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
@@ -18,9 +18,6 @@ / {

aliases {
ethernet0 = &ethernet0;
- serial0 = &uart4;
- serial1 = &usart3;
- serial2 = &uart7;
serial3 = &usart2;
};

diff --git a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
index 11370ae0d868..ded5ab9a4798 100644
--- a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
+++ b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
@@ -8,6 +8,12 @@
#include <dt-bindings/mfd/st,stpmic1.h>

/ {
+ aliases {
+ serial0 = &uart4;
+ serial1 = &usart3;
+ serial2 = &uart7;
+ };
+
memory@c0000000 {
device_type = "memory";
reg = <0xc0000000 0x20000000>;
--
2.25.1

2023-03-27 15:47:35

by Valentin Caron

[permalink] [raw]
Subject: [PATCH 7/7] ARM: dts: stm32: add uart nodes and uart aliases on stm32mp135f-dk

Update device-tree stm32mp135f-dk.dts to add usart1, uart8, usart2
and uart aliases.

- Usart2 is used to interface a BT device, enable it by default.
- Usart1 and uart8 are available on expansion connector.
They are kept disabled. So, the pins are kept in analog state to
lower power consumption by default or can be used as GPIO.
- Uart4 is used for console.

Signed-off-by: Valentin Caron <[email protected]>
---
arch/arm/boot/dts/stm32mp135f-dk.dts | 42 +++++++++++++++++++++++++++-
1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/stm32mp135f-dk.dts b/arch/arm/boot/dts/stm32mp135f-dk.dts
index c40686cb2b9a..f0900ca672b5 100644
--- a/arch/arm/boot/dts/stm32mp135f-dk.dts
+++ b/arch/arm/boot/dts/stm32mp135f-dk.dts
@@ -19,6 +19,13 @@ / {

aliases {
serial0 = &uart4;
+ serial1 = &usart1;
+ serial2 = &uart8;
+ serial3 = &usart2;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
};

memory@c0000000 {
@@ -267,8 +274,41 @@ timer@13 {
};

&uart4 {
- pinctrl-names = "default";
+ pinctrl-names = "default", "sleep", "idle";
pinctrl-0 = <&uart4_pins_a>;
+ pinctrl-1 = <&uart4_sleep_pins_a>;
+ pinctrl-2 = <&uart4_idle_pins_a>;
+ /delete-property/dmas;
+ /delete-property/dma-names;
+ status = "okay";
+};
+
+&uart8 {
+ pinctrl-names = "default", "sleep", "idle";
+ pinctrl-0 = <&uart8_pins_a>;
+ pinctrl-1 = <&uart8_sleep_pins_a>;
+ pinctrl-2 = <&uart8_idle_pins_a>;
+ /delete-property/dmas;
+ /delete-property/dma-names;
+ status = "disabled";
+};
+
+&usart1 {
+ pinctrl-names = "default", "sleep", "idle";
+ pinctrl-0 = <&usart1_pins_a>;
+ pinctrl-1 = <&usart1_sleep_pins_a>;
+ pinctrl-2 = <&usart1_idle_pins_a>;
+ uart-has-rtscts;
+ status = "disabled";
+};
+
+/* Bluetooth */
+&usart2 {
+ pinctrl-names = "default", "sleep", "idle";
+ pinctrl-0 = <&usart2_pins_a>;
+ pinctrl-1 = <&usart2_sleep_pins_a>;
+ pinctrl-2 = <&usart2_idle_pins_a>;
+ uart-has-rtscts;
status = "okay";
};

--
2.25.1

2023-03-28 12:04:11

by Alexandre TORGUE

[permalink] [raw]
Subject: Re: [PATCH 1/7] ARM: dts: stm32: change USART1 clock to an SCMI clock on stm32mp15 boards

Hi Valentin

On 3/27/23 17:29, Valentin Caron wrote:
> On ST stm32mp15 boards, change clock of USART1 node to SCMI clock
> "CK_SCMI_USART1"

I'll change commit title and message as your patch doesn't target
STM43MP15 boards but STM32MP15 SCMI boards.

Cheers
Alex



> Signed-off-by: Valentin Caron <[email protected]>
> ---
> arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts | 4 ++++
> arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts | 4 ++++
> arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts | 4 ++++
> arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts | 4 ++++
> 4 files changed, 16 insertions(+)
>
> diff --git a/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts b/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
> index e539cc80bef8..5c8164c10e46 100644
> --- a/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
> +++ b/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
> @@ -77,3 +77,7 @@ &rng1 {
> &rtc {
> clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
> };
> +
> +&usart1 {
> + clocks = <&scmi_clk CK_SCMI_USART1>;
> +};
> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts b/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
> index 97e4f94b0a24..2c9a207a9d49 100644
> --- a/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
> +++ b/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
> @@ -83,3 +83,7 @@ &rng1 {
> &rtc {
> clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
> };
> +
> +&usart1 {
> + clocks = <&scmi_clk CK_SCMI_USART1>;
> +};
> diff --git a/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts b/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
> index 9cf0a44d2f47..21c8169f0e82 100644
> --- a/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
> +++ b/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
> @@ -82,3 +82,7 @@ &rng1 {
> &rtc {
> clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
> };
> +
> +&usart1 {
> + clocks = <&scmi_clk CK_SCMI_USART1>;
> +};
> diff --git a/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts b/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
> index 3b9dd6f4ccc9..0084abbeb60e 100644
> --- a/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
> +++ b/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
> @@ -88,3 +88,7 @@ &rng1 {
> &rtc {
> clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
> };
> +
> +&usart1 {
> + clocks = <&scmi_clk CK_SCMI_USART1>;
> +};

2023-03-28 15:29:55

by Valentin Caron

[permalink] [raw]
Subject: Re: [PATCH 1/7] ARM: dts: stm32: change USART1 clock to an SCMI clock on stm32mp15 boards

Hi Alex,

I think this patch is useless.
I will send you a V2 without.

Thank you,
Valentin

On 3/28/23 14:02, Alexandre TORGUE wrote:
> Hi Valentin
>
> On 3/27/23 17:29, Valentin Caron wrote:
>> On ST stm32mp15 boards, change clock of USART1 node to SCMI clock
>> "CK_SCMI_USART1"
>
> I'll change commit title and message as your patch doesn't target
> STM43MP15 boards but STM32MP15 SCMI boards.
>
> Cheers
> Alex
>
>
>
>> Signed-off-by: Valentin Caron <[email protected]>
>> ---
>>   arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts | 4 ++++
>>   arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts | 4 ++++
>>   arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts | 4 ++++
>>   arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts | 4 ++++
>>   4 files changed, 16 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
>> b/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
>> index e539cc80bef8..5c8164c10e46 100644
>> --- a/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
>> +++ b/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
>> @@ -77,3 +77,7 @@ &rng1 {
>>   &rtc {
>>       clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
>>   };
>> +
>> +&usart1 {
>> +    clocks = <&scmi_clk CK_SCMI_USART1>;
>> +};
>> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
>> b/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
>> index 97e4f94b0a24..2c9a207a9d49 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
>> +++ b/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
>> @@ -83,3 +83,7 @@ &rng1 {
>>   &rtc {
>>       clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
>>   };
>> +
>> +&usart1 {
>> +    clocks = <&scmi_clk CK_SCMI_USART1>;
>> +};
>> diff --git a/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
>> b/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
>> index 9cf0a44d2f47..21c8169f0e82 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
>> +++ b/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
>> @@ -82,3 +82,7 @@ &rng1 {
>>   &rtc {
>>       clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
>>   };
>> +
>> +&usart1 {
>> +    clocks = <&scmi_clk CK_SCMI_USART1>;
>> +};
>> diff --git a/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
>> b/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
>> index 3b9dd6f4ccc9..0084abbeb60e 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
>> +++ b/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
>> @@ -88,3 +88,7 @@ &rng1 {
>>   &rtc {
>>       clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
>>   };
>> +
>> +&usart1 {
>> +    clocks = <&scmi_clk CK_SCMI_USART1>;
>> +};
>