2021-04-15 10:12:34

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 00/13] ARM: dts: stm32: fix "make dtbs_check W=1" round1

Hi,

First round to cleanup warnings and yaml validation issues seen running
"make dtbs_check W=1" command for STM32 platform. It concerns all SoC
(MCU: f429/429, f746/769, h743, MPU) and all boards (ST reference boards,
DH, Engicam, LxA ...).

Main fixes are done in device tree files but some imply a change in yaml
dt-bindings file.

regards
Alex

Alexandre Torgue (13):
ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards
ARM: dts: stm32: fix RCC node name on stm32f429 MCU
ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings
dt-bindings: mfd: stm32-timers: remove #address/size cells from
required properties
ARM: dts: stm32: update pinctrl node name on STM32 MCU to prevent
warnings
ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings
ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15
dt-bindings: net: document ptp_ref clk in dwmac
ARM: dts: stm32: fix stpmic node for stm32mp1 boards
dt-bindings: mfd: add vref_ddr-supply to st,stpmic1 yaml
ARM: dts: stm32: fix LTDC port node on STM32 MCU ad MPU
ARM: dts: stm32: fix DSI port node on STM32MP15
ARM: dts: stm32: fix ltdc pinctrl on microdev2.0-of7

.../bindings/mfd/st,stm32-timers.yaml | 2 -
.../devicetree/bindings/mfd/st,stpmic1.yaml | 2 +-
.../devicetree/bindings/net/snps,dwmac.yaml | 4 +-
.../devicetree/bindings/net/stm32-dwmac.yaml | 6 +-
arch/arm/boot/dts/stm32429i-eval.dts | 8 +-
arch/arm/boot/dts/stm32746g-eval.dts | 6 +-
arch/arm/boot/dts/stm32f4-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/stm32f429-disco.dts | 6 +-
arch/arm/boot/dts/stm32f429-pinctrl.dtsi | 72 +++++++++---------
arch/arm/boot/dts/stm32f429.dtsi | 10 +--
arch/arm/boot/dts/stm32f469-disco.dts | 8 +-
arch/arm/boot/dts/stm32f469-pinctrl.dtsi | 74 +++++++++----------
arch/arm/boot/dts/stm32f7-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/stm32f746.dtsi | 12 +--
arch/arm/boot/dts/stm32f769-disco.dts | 6 +-
arch/arm/boot/dts/stm32h743.dtsi | 4 -
arch/arm/boot/dts/stm32mp151.dtsi | 16 ++--
arch/arm/boot/dts/stm32mp157.dtsi | 2 -
arch/arm/boot/dts/stm32mp157a-dk1.dts | 8 ++
...157a-microgea-stm32mp1-microdev2.0-of7.dts | 5 +-
arch/arm/boot/dts/stm32mp157a-stinger96.dtsi | 7 +-
arch/arm/boot/dts/stm32mp157c-dk2.dts | 12 ++-
arch/arm/boot/dts/stm32mp157c-ev1.dts | 5 +-
arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts | 3 +-
.../arm/boot/dts/stm32mp157c-odyssey-som.dtsi | 5 +-
arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi | 5 +-
.../boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 6 +-
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 7 --
arch/arm/boot/dts/stm32mp15xx-osd32.dtsi | 7 +-
29 files changed, 130 insertions(+), 182 deletions(-)

--
2.17.1


2021-04-15 10:12:36

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 03/13] ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings

Prevent warning seen with "make dtbs_check W=1" command:

Warning (avoid_unnecessary_addr_size): /soc/timers@40001c00: unnecessary
address-cells/size-cells without "ranges" or child "reg" property

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi
index 41e0087bdbf9..8748d5850298 100644
--- a/arch/arm/boot/dts/stm32f429.dtsi
+++ b/arch/arm/boot/dts/stm32f429.dtsi
@@ -283,8 +283,6 @@
};

timers13: timers@40001c00 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-timers";
reg = <0x40001C00 0x400>;
clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>;
@@ -299,8 +297,6 @@
};

timers14: timers@40002000 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-timers";
reg = <0x40002000 0x400>;
clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>;
@@ -633,8 +629,6 @@
};

timers10: timers@40014400 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-timers";
reg = <0x40014400 0x400>;
clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>;
@@ -649,8 +643,6 @@
};

timers11: timers@40014800 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-timers";
reg = <0x40014800 0x400>;
clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>;
diff --git a/arch/arm/boot/dts/stm32f746.dtsi b/arch/arm/boot/dts/stm32f746.dtsi
index e1df603fc981..72c1b76684b6 100644
--- a/arch/arm/boot/dts/stm32f746.dtsi
+++ b/arch/arm/boot/dts/stm32f746.dtsi
@@ -265,8 +265,6 @@
};

timers13: timers@40001c00 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-timers";
reg = <0x40001C00 0x400>;
clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
@@ -281,8 +279,6 @@
};

timers14: timers@40002000 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-timers";
reg = <0x40002000 0x400>;
clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
@@ -531,8 +527,6 @@
};

timers10: timers@40014400 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-timers";
reg = <0x40014400 0x400>;
clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
@@ -547,8 +541,6 @@
};

timers11: timers@40014800 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-timers";
reg = <0x40014800 0x400>;
clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
diff --git a/arch/arm/boot/dts/stm32h743.dtsi b/arch/arm/boot/dts/stm32h743.dtsi
index 05ecdf9ff03a..6e42ca2dada2 100644
--- a/arch/arm/boot/dts/stm32h743.dtsi
+++ b/arch/arm/boot/dts/stm32h743.dtsi
@@ -485,8 +485,6 @@
};

lptimer4: timer@58002c00 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-lptimer";
reg = <0x58002c00 0x400>;
clocks = <&rcc LPTIM4_CK>;
@@ -501,8 +499,6 @@
};

lptimer5: timer@58003000 {
- #address-cells = <1>;
- #size-cells = <0>;
compatible = "st,stm32-lptimer";
reg = <0x58003000 0x400>;
clocks = <&rcc LPTIM5_CK>;
--
2.17.1

2021-04-15 10:12:41

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 06/13] ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings

Replace upper case by lower case in i2c nodes name.

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32f746.dtsi b/arch/arm/boot/dts/stm32f746.dtsi
index 72c1b76684b6..014b416f57e6 100644
--- a/arch/arm/boot/dts/stm32f746.dtsi
+++ b/arch/arm/boot/dts/stm32f746.dtsi
@@ -360,9 +360,9 @@
status = "disabled";
};

- i2c3: i2c@40005C00 {
+ i2c3: i2c@40005c00 {
compatible = "st,stm32f7-i2c";
- reg = <0x40005C00 0x400>;
+ reg = <0x40005c00 0x400>;
interrupts = <72>,
<73>;
resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
--
2.17.1

2021-04-15 10:12:45

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 05/13] ARM: dts: stm32: update pinctrl node name on STM32 MCU to prevent warnings

Update node name to avoid a DT schema validation issue seen with
"make dtbs_check W=1". It also cleans picntrl dtsi files for f429/f469 MCU.

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
index 4774163af54b..155d9ffacc83 100644
--- a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
@@ -45,7 +45,7 @@

/ {
soc {
- pinctrl: pin-controller {
+ pinctrl: pin-controller@40020000 {
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x40020000 0x3000>;
diff --git a/arch/arm/boot/dts/stm32f429-pinctrl.dtsi b/arch/arm/boot/dts/stm32f429-pinctrl.dtsi
index 3e7a17d9112e..e10d7a1f3207 100644
--- a/arch/arm/boot/dts/stm32f429-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32f429-pinctrl.dtsi
@@ -42,54 +42,50 @@

#include "stm32f4-pinctrl.dtsi"

-/ {
- soc {
- pinctrl: pin-controller {
- compatible = "st,stm32f429-pinctrl";
+&pinctrl {
+ compatible = "st,stm32f429-pinctrl";

- gpioa: gpio@40020000 {
- gpio-ranges = <&pinctrl 0 0 16>;
- };
+ gpioa: gpio@40020000 {
+ gpio-ranges = <&pinctrl 0 0 16>;
+ };

- gpiob: gpio@40020400 {
- gpio-ranges = <&pinctrl 0 16 16>;
- };
+ gpiob: gpio@40020400 {
+ gpio-ranges = <&pinctrl 0 16 16>;
+ };

- gpioc: gpio@40020800 {
- gpio-ranges = <&pinctrl 0 32 16>;
- };
+ gpioc: gpio@40020800 {
+ gpio-ranges = <&pinctrl 0 32 16>;
+ };

- gpiod: gpio@40020c00 {
- gpio-ranges = <&pinctrl 0 48 16>;
- };
+ gpiod: gpio@40020c00 {
+ gpio-ranges = <&pinctrl 0 48 16>;
+ };

- gpioe: gpio@40021000 {
- gpio-ranges = <&pinctrl 0 64 16>;
- };
+ gpioe: gpio@40021000 {
+ gpio-ranges = <&pinctrl 0 64 16>;
+ };

- gpiof: gpio@40021400 {
- gpio-ranges = <&pinctrl 0 80 16>;
- };
+ gpiof: gpio@40021400 {
+ gpio-ranges = <&pinctrl 0 80 16>;
+ };

- gpiog: gpio@40021800 {
- gpio-ranges = <&pinctrl 0 96 16>;
- };
+ gpiog: gpio@40021800 {
+ gpio-ranges = <&pinctrl 0 96 16>;
+ };

- gpioh: gpio@40021c00 {
- gpio-ranges = <&pinctrl 0 112 16>;
- };
+ gpioh: gpio@40021c00 {
+ gpio-ranges = <&pinctrl 0 112 16>;
+ };

- gpioi: gpio@40022000 {
- gpio-ranges = <&pinctrl 0 128 16>;
- };
+ gpioi: gpio@40022000 {
+ gpio-ranges = <&pinctrl 0 128 16>;
+ };

- gpioj: gpio@40022400 {
- gpio-ranges = <&pinctrl 0 144 16>;
- };
+ gpioj: gpio@40022400 {
+ gpio-ranges = <&pinctrl 0 144 16>;
+ };

- gpiok: gpio@40022800 {
- gpio-ranges = <&pinctrl 0 160 8>;
- };
- };
+ gpiok: gpio@40022800 {
+ gpio-ranges = <&pinctrl 0 160 8>;
};
};
diff --git a/arch/arm/boot/dts/stm32f469-pinctrl.dtsi b/arch/arm/boot/dts/stm32f469-pinctrl.dtsi
index fff542662eea..6bf60263dff8 100644
--- a/arch/arm/boot/dts/stm32f469-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32f469-pinctrl.dtsi
@@ -42,55 +42,51 @@

#include "stm32f4-pinctrl.dtsi"

-/ {
- soc {
- pinctrl: pin-controller {
- compatible = "st,stm32f469-pinctrl";
+&pinctrl {
+ compatible = "st,stm32f469-pinctrl";

- gpioa: gpio@40020000 {
- gpio-ranges = <&pinctrl 0 0 16>;
- };
+ gpioa: gpio@40020000 {
+ gpio-ranges = <&pinctrl 0 0 16>;
+ };

- gpiob: gpio@40020400 {
- gpio-ranges = <&pinctrl 0 16 16>;
- };
+ gpiob: gpio@40020400 {
+ gpio-ranges = <&pinctrl 0 16 16>;
+ };

- gpioc: gpio@40020800 {
- gpio-ranges = <&pinctrl 0 32 16>;
- };
+ gpioc: gpio@40020800 {
+ gpio-ranges = <&pinctrl 0 32 16>;
+ };

- gpiod: gpio@40020c00 {
- gpio-ranges = <&pinctrl 0 48 16>;
- };
+ gpiod: gpio@40020c00 {
+ gpio-ranges = <&pinctrl 0 48 16>;
+ };

- gpioe: gpio@40021000 {
- gpio-ranges = <&pinctrl 0 64 16>;
- };
+ gpioe: gpio@40021000 {
+ gpio-ranges = <&pinctrl 0 64 16>;
+ };

- gpiof: gpio@40021400 {
- gpio-ranges = <&pinctrl 0 80 16>;
- };
+ gpiof: gpio@40021400 {
+ gpio-ranges = <&pinctrl 0 80 16>;
+ };

- gpiog: gpio@40021800 {
- gpio-ranges = <&pinctrl 0 96 16>;
- };
+ gpiog: gpio@40021800 {
+ gpio-ranges = <&pinctrl 0 96 16>;
+ };

- gpioh: gpio@40021c00 {
- gpio-ranges = <&pinctrl 0 112 16>;
- };
+ gpioh: gpio@40021c00 {
+ gpio-ranges = <&pinctrl 0 112 16>;
+ };

- gpioi: gpio@40022000 {
- gpio-ranges = <&pinctrl 0 128 16>;
- };
+ gpioi: gpio@40022000 {
+ gpio-ranges = <&pinctrl 0 128 16>;
+ };

- gpioj: gpio@40022400 {
- gpio-ranges = <&pinctrl 0 144 6>,
- <&pinctrl 12 156 4>;
- };
+ gpioj: gpio@40022400 {
+ gpio-ranges = <&pinctrl 0 144 6>,
+ <&pinctrl 12 156 4>;
+ };

- gpiok: gpio@40022800 {
- gpio-ranges = <&pinctrl 3 163 5>;
- };
- };
+ gpiok: gpio@40022800 {
+ gpio-ranges = <&pinctrl 3 163 5>;
};
};
diff --git a/arch/arm/boot/dts/stm32f7-pinctrl.dtsi b/arch/arm/boot/dts/stm32f7-pinctrl.dtsi
index fe4cfda72a47..1cf8a23c2644 100644
--- a/arch/arm/boot/dts/stm32f7-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32f7-pinctrl.dtsi
@@ -9,7 +9,7 @@

/ {
soc {
- pinctrl: pin-controller {
+ pinctrl: pin-controller@40020000 {
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x40020000 0x3000>;
--
2.17.1

2021-04-15 10:12:45

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 04/13] dt-bindings: mfd: stm32-timers: remove #address/size cells from required properties

address-cells and size-cells can't be declared as "required" properties
as they are not needed if subnodes don't have a "reg" entry.

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
index 0f16c8864a87..dace35362a7a 100644
--- a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
+++ b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
@@ -119,8 +119,6 @@ patternProperties:
- compatible

required:
- - "#address-cells"
- - "#size-cells"
- compatible
- reg
- clocks
--
2.17.1

2021-04-15 10:12:48

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 02/13] ARM: dts: stm32: fix RCC node name on stm32f429 MCU

This prevent warning observed with "make dtbs_check W=1"

Warning (simple_bus_reg): /soc/rcc@40023810: simple-bus unit address format
error, expected "40023800"

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi
index f6530d724d00..41e0087bdbf9 100644
--- a/arch/arm/boot/dts/stm32f429.dtsi
+++ b/arch/arm/boot/dts/stm32f429.dtsi
@@ -709,7 +709,7 @@
status = "disabled";
};

- rcc: rcc@40023810 {
+ rcc: rcc@40023800 {
#reset-cells = <1>;
#clock-cells = <2>;
compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
--
2.17.1

2021-04-15 10:12:52

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 07/13] ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15

It fixes the following warning seen running "make dtbs_check W=1"

Warning (simple_bus_reg): /soc/stmmac-axi-config: missing or empty
reg/ranges property

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32mp151.dtsi b/arch/arm/boot/dts/stm32mp151.dtsi
index fb80d53e6be2..8aa87cb86821 100644
--- a/arch/arm/boot/dts/stm32mp151.dtsi
+++ b/arch/arm/boot/dts/stm32mp151.dtsi
@@ -1409,12 +1409,6 @@
status = "disabled";
};

- stmmac_axi_config_0: stmmac-axi-config {
- snps,wr_osr_lmt = <0x7>;
- snps,rd_osr_lmt = <0x7>;
- snps,blen = <0 0 0 0 16 8 4>;
- };
-
ethernet0: ethernet@5800a000 {
compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
reg = <0x5800a000 0x2000>;
@@ -1440,6 +1434,12 @@
snps,axi-config = <&stmmac_axi_config_0>;
snps,tso;
status = "disabled";
+
+ stmmac_axi_config_0: stmmac-axi-config {
+ snps,wr_osr_lmt = <0x7>;
+ snps,rd_osr_lmt = <0x7>;
+ snps,blen = <0 0 0 0 16 8 4>;
+ };
};

usbh_ohci: usb@5800c000 {
--
2.17.1

2021-04-15 10:13:00

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 12/13] ARM: dts: stm32: fix DSI port node on STM32MP15

Running "make dtbs_check W=1", some warnings are reported concerning
DSI. This patch reorder DSI nodes to avoid:

soc/dsi@5a000000: unnecessary #address-cells/#size-cells without
"ranges" or child "reg" property

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32mp157.dtsi b/arch/arm/boot/dts/stm32mp157.dtsi
index 54e73ccea446..c355fcf26ec3 100644
--- a/arch/arm/boot/dts/stm32mp157.dtsi
+++ b/arch/arm/boot/dts/stm32mp157.dtsi
@@ -24,8 +24,6 @@
clock-names = "pclk", "ref", "px_clk";
resets = <&rcc DSI_R>;
reset-names = "apb";
- #address-cells = <1>;
- #size-cells = <0>;
status = "disabled";

ports {
diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts b/arch/arm/boot/dts/stm32mp157c-dk2.dts
index 19ef475a48fc..763dde1dbbaf 100644
--- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
+++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
@@ -36,6 +36,8 @@
&dsi {
status = "okay";
phy-dsi-supply = <&reg18>;
+ #address-cells = <1>;
+ #size-cells = <0>;

ports {
port@0 {
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
index 6fe5b0fee7c4..4625bb58cc6d 100644
--- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
@@ -102,6 +102,8 @@
&dsi {
phy-dsi-supply = <&reg18>;
status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;

ports {
port@0 {
--
2.17.1

2021-04-15 10:13:04

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 08/13] dt-bindings: net: document ptp_ref clk in dwmac

ptp_ref clk has been added in DT but not documented which makes yaml
validation failed:

ethernet@5800a000: clocks: [[6, 105], [6, 103], [6, 104], [6, 123],
[6, 169], [6, 112]] is too long
ethernet@5800a000: clock-names: ['stmmaceth', 'mac-clk-tx', 'mac-clk-rx',
'eth-ck', 'ptp_ref', 'ethstp'] is too long

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
index 0642b0f59491..0201a879399f 100644
--- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
@@ -89,7 +89,7 @@ properties:

clocks:
minItems: 1
- maxItems: 5
+ maxItems: 6
additionalItems: true
items:
- description: GMAC main clock
@@ -101,7 +101,7 @@ properties:

clock-names:
minItems: 1
- maxItems: 5
+ maxItems: 6
additionalItems: true
contains:
enum:
diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
index 27eb6066793f..a1c490f3af02 100644
--- a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
@@ -46,17 +46,18 @@ properties:

clocks:
minItems: 3
- maxItems: 5
+ maxItems: 6
items:
- description: GMAC main clock
- description: MAC TX clock
- description: MAC RX clock
- description: For MPU family, used for power mode
- description: For MPU family, used for PHY without quartz
+ - description: PTP clock

clock-names:
minItems: 3
- maxItems: 5
+ maxItems: 6
contains:
enum:
- stmmaceth
@@ -64,6 +65,7 @@ properties:
- mac-clk-rx
- ethstp
- eth-ck
+ - ptp_ref

st,syscon:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
--
2.17.1

2021-04-15 10:13:11

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 09/13] ARM: dts: stm32: fix stpmic node for stm32mp1 boards

On some STM32 MP15 boards, stpmic node is not correct which generates
warnings running "make dtbs_check W=1" command. Issues are:

-"regulator-active-discharge" is not a boolean but an uint32.
-"regulator-over-current-protection" is not a valid entry for vref_ddr.
-LDO4 has a fixed voltage (3v3) so min/max entries are not allowed.

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi b/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
index 113c48b2ef93..a4b14ef3caee 100644
--- a/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
+++ b/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
@@ -184,8 +184,6 @@

vdd_usb: ldo4 {
regulator-name = "vdd_usb";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
interrupts = <IT_CURLIM_LDO4 0>;
};

@@ -208,7 +206,6 @@
vref_ddr: vref_ddr {
regulator-name = "vref_ddr";
regulator-always-on;
- regulator-over-current-protection;
};

bst_out: boost {
@@ -219,13 +216,13 @@
vbus_otg: pwr_sw1 {
regulator-name = "vbus_otg";
interrupts = <IT_OCP_OTG 0>;
- regulator-active-discharge;
+ regulator-active-discharge = <1>;
};

vbus_sw: pwr_sw2 {
regulator-name = "vbus_sw";
interrupts = <IT_OCP_SWOUT 0>;
- regulator-active-discharge;
+ regulator-active-discharge = <1>;
};
};

diff --git a/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi b/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi
index 6cf49a0a9e69..0c0b66788ea1 100644
--- a/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi
@@ -173,8 +173,6 @@

vdd_usb: ldo4 {
regulator-name = "vdd_usb";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
interrupts = <IT_CURLIM_LDO4 0>;
};

@@ -197,7 +195,6 @@
vref_ddr: vref_ddr {
regulator-name = "vref_ddr";
regulator-always-on;
- regulator-over-current-protection;
};

bst_out: boost {
@@ -213,7 +210,7 @@
vbus_sw: pwr_sw2 {
regulator-name = "vbus_sw";
interrupts = <IT_OCP_SWOUT 0>;
- regulator-active-discharge;
+ regulator-active-discharge = <1>;
};
};

diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
index 272a1a67a9ad..769fcf74685a 100644
--- a/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
+++ b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
@@ -327,8 +327,6 @@

vdd_usb: ldo4 {
regulator-name = "vdd_usb";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
interrupts = <IT_CURLIM_LDO4 0>;
};

@@ -350,7 +348,6 @@
vref_ddr: vref_ddr {
regulator-name = "vref_ddr";
regulator-always-on;
- regulator-over-current-protection;
};

bst_out: boost {
@@ -366,7 +363,7 @@
vbus_sw: pwr_sw2 {
regulator-name = "vbus_sw";
interrupts = <IT_OCP_SWOUT 0>;
- regulator-active-discharge;
+ regulator-active-discharge = <1>;
};
};

diff --git a/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi b/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
index 713485a95795..6706d8311a66 100644
--- a/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
+++ b/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
@@ -146,8 +146,6 @@

vdd_usb: ldo4 {
regulator-name = "vdd_usb";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
interrupts = <IT_CURLIM_LDO4 0>;
};

@@ -171,7 +169,6 @@
vref_ddr: vref_ddr {
regulator-name = "vref_ddr";
regulator-always-on;
- regulator-over-current-protection;
};

bst_out: boost {
@@ -182,13 +179,13 @@
vbus_otg: pwr_sw1 {
regulator-name = "vbus_otg";
interrupts = <IT_OCP_OTG 0>;
- regulator-active-discharge;
+ regulator-active-discharge = <1>;
};

vbus_sw: pwr_sw2 {
regulator-name = "vbus_sw";
interrupts = <IT_OCP_SWOUT 0>;
- regulator-active-discharge;
+ regulator-active-discharge = <1>;
};
};

--
2.17.1

2021-04-15 10:14:06

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 13/13] ARM: dts: stm32: fix ltdc pinctrl on microdev2.0-of7

It prevents the following warning:

pin-controller@50002000: 'ltdc' does not match any of the regexes:
'-[0-9]*$', '^gpio@[0-9a-f]*$', 'pinctrl-[0-9]+'

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dts b/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dts
index ba1e2d7f06bf..dffd9d588af2 100644
--- a/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dts
+++ b/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dts
@@ -88,7 +88,7 @@
};

&pinctrl {
- ltdc_pins: ltdc {
+ ltdc_pins: ltdc-0 {
pins {
pinmux = <STM32_PINMUX('G', 10, AF14)>, /* LTDC_B2 */
<STM32_PINMUX('H', 12, AF14)>, /* LTDC_R6 */
--
2.17.1

2021-04-15 10:14:47

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 01/13] ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards

Fix following warning observed with "make dtbs_check W=1" command.
It concerns f429 eval and disco boards, f769 disco board.

Warning (unit_address_vs_reg): /gpio_keys/button@0: node has a unit name,
but no reg or ranges property

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts
index 7e10ae744c9d..9ac1ffe53413 100644
--- a/arch/arm/boot/dts/stm32429i-eval.dts
+++ b/arch/arm/boot/dts/stm32429i-eval.dts
@@ -119,17 +119,15 @@
};
};

- gpio_keys {
+ gpio-keys {
compatible = "gpio-keys";
- #address-cells = <1>;
- #size-cells = <0>;
autorepeat;
- button@0 {
+ button-0 {
label = "Wake up";
linux,code = <KEY_WAKEUP>;
gpios = <&gpioa 0 0>;
};
- button@1 {
+ button-1 {
label = "Tamper";
linux,code = <KEY_RESTART>;
gpios = <&gpioc 13 0>;
diff --git a/arch/arm/boot/dts/stm32746g-eval.dts b/arch/arm/boot/dts/stm32746g-eval.dts
index ca8c192449ee..327613fd9666 100644
--- a/arch/arm/boot/dts/stm32746g-eval.dts
+++ b/arch/arm/boot/dts/stm32746g-eval.dts
@@ -81,12 +81,10 @@
};
};

- gpio_keys {
+ gpio-keys {
compatible = "gpio-keys";
- #address-cells = <1>;
- #size-cells = <0>;
autorepeat;
- button@0 {
+ button-0 {
label = "Wake up";
linux,code = <KEY_WAKEUP>;
gpios = <&gpioc 13 0>;
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
index 3dc068b91ca1..075ac57d0bf4 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -81,12 +81,10 @@
};
};

- gpio_keys {
+ gpio-keys {
compatible = "gpio-keys";
- #address-cells = <1>;
- #size-cells = <0>;
autorepeat;
- button@0 {
+ button-0 {
label = "User";
linux,code = <KEY_HOME>;
gpios = <&gpioa 0 0>;
diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts
index 2e1b3bbbe4b5..8c982ae79f43 100644
--- a/arch/arm/boot/dts/stm32f469-disco.dts
+++ b/arch/arm/boot/dts/stm32f469-disco.dts
@@ -104,12 +104,10 @@
};
};

- gpio_keys {
+ gpio-keys {
compatible = "gpio-keys";
- #address-cells = <1>;
- #size-cells = <0>;
autorepeat;
- button@0 {
+ button-0 {
label = "User";
linux,code = <KEY_WAKEUP>;
gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
diff --git a/arch/arm/boot/dts/stm32f769-disco.dts b/arch/arm/boot/dts/stm32f769-disco.dts
index 0ce7fbc20fa4..be943b701980 100644
--- a/arch/arm/boot/dts/stm32f769-disco.dts
+++ b/arch/arm/boot/dts/stm32f769-disco.dts
@@ -75,12 +75,10 @@
};
};

- gpio_keys {
+ gpio-keys {
compatible = "gpio-keys";
- #address-cells = <1>;
- #size-cells = <0>;
autorepeat;
- button@0 {
+ button-0 {
label = "User";
linux,code = <KEY_HOME>;
gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
--
2.17.1

2021-04-15 10:15:00

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 10/13] dt-bindings: mfd: add vref_ddr-supply to st,stpmic1 yaml

Add vref_ddr-supply to the STPMIC1 regulators supplies pattern
list.

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml b/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
index 305123e74a58..ffc32d209496 100644
--- a/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
+++ b/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
@@ -184,7 +184,7 @@ properties:
additionalProperties: false

patternProperties:
- "^(buck[1-4]|ldo[1-6]|boost|pwr_sw[1-2])-supply$":
+ "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])-supply$":
description: STPMIC1 voltage regulators supplies

"^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$":
--
2.17.1

2021-04-15 10:15:42

by Alexandre TORGUE

[permalink] [raw]
Subject: [PATCH 11/13] ARM: dts: stm32: fix LTDC port node on STM32 MCU ad MPU

Running "make dtbs_check W=1", some warnings are reported concerning
LTDC port subnode:

/soc/display-controller@5a001000/port:
unnecessary #address-cells/#size-cells without "ranges" or child "reg"
property
/soc/display-controller@5a001000/port: graph node has single child node
'endpoint', #address-cells/#size-cells are not necessary

Signed-off-by: Alexandre Torgue <[email protected]>

diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts
index 8c982ae79f43..f530f84474ea 100644
--- a/arch/arm/boot/dts/stm32f469-disco.dts
+++ b/arch/arm/boot/dts/stm32f469-disco.dts
@@ -175,7 +175,7 @@
status = "okay";

port {
- ltdc_out_dsi: endpoint@0 {
+ ltdc_out_dsi: endpoint {
remote-endpoint = <&dsi_in>;
};
};
diff --git a/arch/arm/boot/dts/stm32mp151.dtsi b/arch/arm/boot/dts/stm32mp151.dtsi
index 8aa87cb86821..98a703d1c3a0 100644
--- a/arch/arm/boot/dts/stm32mp151.dtsi
+++ b/arch/arm/boot/dts/stm32mp151.dtsi
@@ -1471,11 +1471,7 @@
resets = <&rcc LTDC_R>;
status = "disabled";

- port {
- #address-cells = <1>;
- #size-cells = <0>;
};
- };

iwdg2: watchdog@5a002000 {
compatible = "st,stm32mp1-iwdg";
diff --git a/arch/arm/boot/dts/stm32mp157a-dk1.dts b/arch/arm/boot/dts/stm32mp157a-dk1.dts
index 4c8be9c8eb20..c06763d24890 100644
--- a/arch/arm/boot/dts/stm32mp157a-dk1.dts
+++ b/arch/arm/boot/dts/stm32mp157a-dk1.dts
@@ -26,3 +26,11 @@
stdout-path = "serial0:115200n8";
};
};
+
+&ltdc {
+ port {
+ ltdc_ep0_out: endpoint {
+ remote-endpoint = <&sii9022_in>;
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dts b/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dts
index 674b2d330dc4..ba1e2d7f06bf 100644
--- a/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dts
+++ b/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dts
@@ -81,8 +81,7 @@
status = "okay";

port {
- ltdc_ep0_out: endpoint@0 {
- reg = <0>;
+ ltdc_ep0_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts b/arch/arm/boot/dts/stm32mp157c-dk2.dts
index 2bc92ef3aeb9..19ef475a48fc 100644
--- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
+++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
@@ -82,9 +82,15 @@
};

&ltdc {
- status = "okay";
-
port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ltdc_ep0_out: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&sii9022_in>;
+ };
+
ltdc_ep1_out: endpoint@1 {
reg = <1>;
remote-endpoint = <&dsi_in>;
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
index 5c5b1ddf7bfd..6fe5b0fee7c4 100644
--- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
@@ -239,8 +239,7 @@
status = "okay";

port {
- ltdc_ep0_out: endpoint@0 {
- reg = <0>;
+ ltdc_ep0_out: endpoint {
remote-endpoint = <&dsi_in>;
};
};
diff --git a/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts b/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts
index 1e9bf7eea0f1..70202ef5267c 100644
--- a/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts
@@ -161,8 +161,7 @@
status = "okay";

port {
- ltdc_ep0_out: endpoint@0 {
- reg = <0>;
+ ltdc_ep0_out: endpoint {
remote-endpoint = <&panel_input>;
};
};
diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
index 64dca5b7f748..e7f10975cacf 100644
--- a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
+++ b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
@@ -277,11 +277,7 @@
status = "okay";

port {
- #address-cells = <1>;
- #size-cells = <0>;
-
- ltdc_ep0_out: endpoint@0 {
- reg = <0>;
+ ltdc_ep0_out: endpoint {
remote-endpoint = <&adv7513_in>;
};
};
diff --git a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
index 59f18846cf5d..ca2d21689ecc 100644
--- a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
+++ b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
@@ -458,13 +458,6 @@
pinctrl-0 = <&ltdc_pins_a>;
pinctrl-1 = <&ltdc_sleep_pins_a>;
status = "okay";
-
- port {
- ltdc_ep0_out: endpoint@0 {
- reg = <0>;
- remote-endpoint = <&sii9022_in>;
- };
- };
};

&m4_rproc {
--
2.17.1

2021-04-15 10:44:00

by Ahmad Fatoum

[permalink] [raw]
Subject: Re: [PATCH 12/13] ARM: dts: stm32: fix DSI port node on STM32MP15

Hi,

On 15.04.21 12:10, Alexandre Torgue wrote:
> Running "make dtbs_check W=1", some warnings are reported concerning
> DSI. This patch reorder DSI nodes to avoid:
>
> soc/dsi@5a000000: unnecessary #address-cells/#size-cells without
> "ranges" or child "reg" property

This reverts parts of commit 9c32f980d9 ("ARM: dts: stm32: preset
stm32mp15x video #address- and #size-cells"):

The cell count for address and size is defined by the binding and not
something a board would change. Avoid each board adding this
boilerplate by having the cell size specification in the SoC DTSI.


The DSI can have child nodes with a unit address (e.g. a panel) and ones
without (ports { } container). ports is described in the dtsi, panels are
described in the dts if available.

Apparently, the checker is fine with
ports {
#address-cells = <1>;
#size-cells = <0>;
};

I think my rationale for the patch above was sound, so I think the checker
taking offense at the DSI cells here should be considered a false positive.

Thanks,
Ahmad

>
> Signed-off-by: Alexandre Torgue <[email protected]>
>
> diff --git a/arch/arm/boot/dts/stm32mp157.dtsi b/arch/arm/boot/dts/stm32mp157.dtsi
> index 54e73ccea446..c355fcf26ec3 100644
> --- a/arch/arm/boot/dts/stm32mp157.dtsi
> +++ b/arch/arm/boot/dts/stm32mp157.dtsi
> @@ -24,8 +24,6 @@
> clock-names = "pclk", "ref", "px_clk";
> resets = <&rcc DSI_R>;
> reset-names = "apb";
> - #address-cells = <1>;
> - #size-cells = <0>;
> status = "disabled";
>
> ports {
> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts b/arch/arm/boot/dts/stm32mp157c-dk2.dts
> index 19ef475a48fc..763dde1dbbaf 100644
> --- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
> +++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
> @@ -36,6 +36,8 @@
> &dsi {
> status = "okay";
> phy-dsi-supply = <&reg18>;
> + #address-cells = <1>;
> + #size-cells = <0>;
>
> ports {
> port@0 {
> diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
> index 6fe5b0fee7c4..4625bb58cc6d 100644
> --- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
> +++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
> @@ -102,6 +102,8 @@
> &dsi {
> phy-dsi-supply = <&reg18>;
> status = "okay";
> + #address-cells = <1>;
> + #size-cells = <0>;
>
> ports {
> port@0 {
>

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |

2021-04-15 10:52:45

by Ahmad Fatoum

[permalink] [raw]
Subject: Re: [PATCH 10/13] dt-bindings: mfd: add vref_ddr-supply to st,stpmic1 yaml

Hi,

On 15.04.21 12:10, Alexandre Torgue wrote:
> Add vref_ddr-supply to the STPMIC1 regulators supplies pattern
> list.
>
> Signed-off-by: Alexandre Torgue <[email protected]>
>
> diff --git a/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml b/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
> index 305123e74a58..ffc32d209496 100644
> --- a/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
> +++ b/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
> @@ -184,7 +184,7 @@ properties:
> additionalProperties: false
>
> patternProperties:
> - "^(buck[1-4]|ldo[1-6]|boost|pwr_sw[1-2])-supply$":
> + "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])-supply$":

IIRC, vref-ddr was a hack because a change in the regulator core broke
the STM32MP1 boards. I believe vref-ddr should be removed altogether
instead. It's supplied from BUCK2IN, which is already in the binding,
so it's redundant.

Cheers,
Ahmad

> description: STPMIC1 voltage regulators supplies
>
> "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$":
>

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |

2021-04-15 12:14:20

by Alexandre TORGUE

[permalink] [raw]
Subject: Re: [PATCH 10/13] dt-bindings: mfd: add vref_ddr-supply to st,stpmic1 yaml

Hi Ahmad

On 4/15/21 12:51 PM, Ahmad Fatoum wrote:
> Hi,
>
> On 15.04.21 12:10, Alexandre Torgue wrote:
>> Add vref_ddr-supply to the STPMIC1 regulators supplies pattern
>> list.
>>
>> Signed-off-by: Alexandre Torgue <[email protected]>
>>
>> diff --git a/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml b/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
>> index 305123e74a58..ffc32d209496 100644
>> --- a/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
>> +++ b/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
>> @@ -184,7 +184,7 @@ properties:
>> additionalProperties: false
>>
>> patternProperties:
>> - "^(buck[1-4]|ldo[1-6]|boost|pwr_sw[1-2])-supply$":
>> + "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])-supply$":
>
> IIRC, vref-ddr was a hack because a change in the regulator core broke
> the STM32MP1 boards. I believe vref-ddr should be removed altogether
> instead. It's supplied from BUCK2IN, which is already in the binding,
> so it's redundant.

Correct I forgot this point. We got random crash without this
vddr_ref_supply but I don't know if regulator FW has been updated to fix
it. If yes, I'll drop this one and remove
vddr_ref_supply from DT file.

>
> Cheers,
> Ahmad
>
>> description: STPMIC1 voltage regulators supplies
>>
>> "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$":
>>
>

2021-04-15 12:24:43

by Alexandre TORGUE

[permalink] [raw]
Subject: Re: [PATCH 12/13] ARM: dts: stm32: fix DSI port node on STM32MP15

Hi Ahmad

On 4/15/21 12:43 PM, Ahmad Fatoum wrote:
> Hi,
>
> On 15.04.21 12:10, Alexandre Torgue wrote:
>> Running "make dtbs_check W=1", some warnings are reported concerning
>> DSI. This patch reorder DSI nodes to avoid:
>>
>> soc/dsi@5a000000: unnecessary #address-cells/#size-cells without
>> "ranges" or child "reg" property
>
> This reverts parts of commit 9c32f980d9 ("ARM: dts: stm32: preset
> stm32mp15x video #address- and #size-cells"):
>
> The cell count for address and size is defined by the binding and not
> something a board would change. Avoid each board adding this
> boilerplate by having the cell size specification in the SoC DTSI.
>
>
> The DSI can have child nodes with a unit address (e.g. a panel) and ones
> without (ports { } container). ports is described in the dtsi, panels are
> described in the dts if available.
>
> Apparently, the checker is fine with
> ports {
> #address-cells = <1>;
> #size-cells = <0>;
> };
>
> I think my rationale for the patch above was sound, so I think the checker
> taking offense at the DSI cells here should be considered a false positive.

If it's a "false positive" warning then we need to find a way to not
print it out. Else, it'll be difficult to distinguish which warnings are
"normal" and which are not. This question could also be applied to patch[3].

Arnd, Rob what is your feeling about this case ?

thanks
alex



> Thanks,
> Ahmad
>
>>
>> Signed-off-by: Alexandre Torgue <[email protected]>
>>
>> diff --git a/arch/arm/boot/dts/stm32mp157.dtsi b/arch/arm/boot/dts/stm32mp157.dtsi
>> index 54e73ccea446..c355fcf26ec3 100644
>> --- a/arch/arm/boot/dts/stm32mp157.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp157.dtsi
>> @@ -24,8 +24,6 @@
>> clock-names = "pclk", "ref", "px_clk";
>> resets = <&rcc DSI_R>;
>> reset-names = "apb";
>> - #address-cells = <1>;
>> - #size-cells = <0>;
>> status = "disabled";
>>
>> ports {
>> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> index 19ef475a48fc..763dde1dbbaf 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> +++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> @@ -36,6 +36,8 @@
>> &dsi {
>> status = "okay";
>> phy-dsi-supply = <&reg18>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>>
>> ports {
>> port@0 {
>> diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
>> index 6fe5b0fee7c4..4625bb58cc6d 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
>> +++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
>> @@ -102,6 +102,8 @@
>> &dsi {
>> phy-dsi-supply = <&reg18>;
>> status = "okay";
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>>
>> ports {
>> port@0 {
>>
>

2021-04-15 13:29:52

by Marek Vasut

[permalink] [raw]
Subject: Re: [PATCH 11/13] ARM: dts: stm32: fix LTDC port node on STM32 MCU ad MPU

On 4/15/21 12:10 PM, Alexandre Torgue wrote:
> Running "make dtbs_check W=1", some warnings are reported concerning
> LTDC port subnode:
>
> /soc/display-controller@5a001000/port:
> unnecessary #address-cells/#size-cells without "ranges" or child "reg"
> property
> /soc/display-controller@5a001000/port: graph node has single child node
> 'endpoint', #address-cells/#size-cells are not necessary

btw could you retain diffstat on your patches ? It's useful to see which
files changed right away.

[...]

> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts b/arch/arm/boot/dts/stm32mp157c-dk2.dts
> index 2bc92ef3aeb9..19ef475a48fc 100644
> --- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
> +++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
> @@ -82,9 +82,15 @@
> };
>
> &ltdc {
> - status = "okay";
> -
> port {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ltdc_ep0_out: endpoint@0 {
> + reg = <0>;
> + remote-endpoint = <&sii9022_in>;
> + };
> +
> ltdc_ep1_out: endpoint@1 {
> reg = <1>;
> remote-endpoint = <&dsi_in>;

[...]

> diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
> index 64dca5b7f748..e7f10975cacf 100644
> --- a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
> +++ b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
> @@ -277,11 +277,7 @@
> status = "okay";
>
> port {
> - #address-cells = <1>;
> - #size-cells = <0>;
> -
> - ltdc_ep0_out: endpoint@0 {
> - reg = <0>;
> + ltdc_ep0_out: endpoint {
> remote-endpoint = <&adv7513_in>;
> };
> };

I think this is wrong, the AV96 can have two displays connected to two
ports of the LTDC, just like DK2 for example.

2021-04-15 13:35:54

by Alexandre TORGUE

[permalink] [raw]
Subject: Re: [PATCH 11/13] ARM: dts: stm32: fix LTDC port node on STM32 MCU ad MPU

Hi Marek

On 4/15/21 3:21 PM, Marek Vasut wrote:
> On 4/15/21 12:10 PM, Alexandre Torgue wrote:
>> Running "make dtbs_check W=1", some warnings are reported concerning
>> LTDC port subnode:
>>
>> /soc/display-controller@5a001000/port:
>> unnecessary #address-cells/#size-cells without "ranges" or child "reg"
>> property
>> /soc/display-controller@5a001000/port: graph node has single child node
>> 'endpoint', #address-cells/#size-cells are not necessary
>
> btw could you retain diffstat on your patches ? It's useful to see which
> files changed right away.
> [...]
>
>> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> index 2bc92ef3aeb9..19ef475a48fc 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> +++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>> @@ -82,9 +82,15 @@
>>   };
>>   &ltdc {
>> -    status = "okay";
>> -
>>       port {
>> +        #address-cells = <1>;
>> +        #size-cells = <0>;
>> +
>> +        ltdc_ep0_out: endpoint@0 {
>> +            reg = <0>;
>> +            remote-endpoint = <&sii9022_in>;
>> +        };
>> +
>>           ltdc_ep1_out: endpoint@1 {
>>               reg = <1>;
>>               remote-endpoint = <&dsi_in>;
>
> [...]
>
>> diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>> b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>> index 64dca5b7f748..e7f10975cacf 100644
>> --- a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>> +++ b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>> @@ -277,11 +277,7 @@
>>       status = "okay";
>>       port {
>> -        #address-cells = <1>;
>> -        #size-cells = <0>;
>> -
>> -        ltdc_ep0_out: endpoint@0 {
>> -            reg = <0>;
>> +        ltdc_ep0_out: endpoint {
>>               remote-endpoint = <&adv7513_in>;
>>           };
>>       };
>
> I think this is wrong, the AV96 can have two displays connected to two
> ports of the LTDC, just like DK2 for example.

As for dk2 address/size cells are added only if there are 2 endpoints.
It is for this reason I moved endpoint0 definition from stm32mp15xx-dkx
to stm32mp151a-dk1.dts (dk1 has only one endpoint).

Here it's the same, if you have second endpoint then adress/size will
have to be added.

alex










2021-04-15 14:32:07

by Marek Vasut

[permalink] [raw]
Subject: Re: [PATCH 11/13] ARM: dts: stm32: fix LTDC port node on STM32 MCU ad MPU

On 4/15/21 3:34 PM, Alexandre TORGUE wrote:
> Hi Marek

Hello Alexandre,

>>> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>> b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>> index 2bc92ef3aeb9..19ef475a48fc 100644
>>> --- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>> +++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>> @@ -82,9 +82,15 @@
>>>   };
>>>   &ltdc {
>>> -    status = "okay";
>>> -
>>>       port {
>>> +        #address-cells = <1>;
>>> +        #size-cells = <0>;
>>> +
>>> +        ltdc_ep0_out: endpoint@0 {
>>> +            reg = <0>;
>>> +            remote-endpoint = <&sii9022_in>;
>>> +        };
>>> +
>>>           ltdc_ep1_out: endpoint@1 {
>>>               reg = <1>;
>>>               remote-endpoint = <&dsi_in>;
>>
>> [...]
>>
>>> diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>> b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>> index 64dca5b7f748..e7f10975cacf 100644
>>> --- a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>> +++ b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>> @@ -277,11 +277,7 @@
>>>       status = "okay";
>>>       port {
>>> -        #address-cells = <1>;
>>> -        #size-cells = <0>;
>>> -
>>> -        ltdc_ep0_out: endpoint@0 {
>>> -            reg = <0>;
>>> +        ltdc_ep0_out: endpoint {
>>>               remote-endpoint = <&adv7513_in>;
>>>           };
>>>       };
>>
>> I think this is wrong, the AV96 can have two displays connected to two
>> ports of the LTDC, just like DK2 for example.
>
> As for dk2 address/size cells are added only if there are 2 endpoints.
> It is for this reason I moved endpoint0 definition from stm32mp15xx-dkx
> to stm32mp151a-dk1.dts (dk1 has only one endpoint).
>
> Here it's the same, if you have second endpoint then adress/size will
> have to be added.

That's a bit problematic. Consider either the use case of DTO which adds
the other display, or even a custom board DTS. Without your patch, this
works:

arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
&ltdc {
...
ports {
ltdc_ep0_out: endpoint@0 {
remote-endpoint = <&adv7513_in>;
};
};
};

board-with-display.dts or board-overlay.dts
&ltdc {
ports {
endpoint@1 { // just add another endpoint@1, no problem
remote-endpoint = <&display>;
};
};
};

With your patch, the DTS would have to modify the "endpoint" node to be
"endpoint@0" probably with a whole lot of /detele-node/ etc. magic (DTO
cannot do that, so that's a problem, and I do use DTOs on AV96
extensively for the various expansion cards) and then add the
endpoint@1. That becomes real complicated in custom board DT, and
impossible with DTO.

2021-04-15 14:36:43

by Alexandre TORGUE

[permalink] [raw]
Subject: Re: [PATCH 11/13] ARM: dts: stm32: fix LTDC port node on STM32 MCU ad MPU



On 4/15/21 4:30 PM, Marek Vasut wrote:
> On 4/15/21 3:34 PM, Alexandre TORGUE wrote:
>> Hi Marek
>
> Hello Alexandre,
>
>>>> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>>> b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>>> index 2bc92ef3aeb9..19ef475a48fc 100644
>>>> --- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>>> +++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>>> @@ -82,9 +82,15 @@
>>>>   };
>>>>   &ltdc {
>>>> -    status = "okay";
>>>> -
>>>>       port {
>>>> +        #address-cells = <1>;
>>>> +        #size-cells = <0>;
>>>> +
>>>> +        ltdc_ep0_out: endpoint@0 {
>>>> +            reg = <0>;
>>>> +            remote-endpoint = <&sii9022_in>;
>>>> +        };
>>>> +
>>>>           ltdc_ep1_out: endpoint@1 {
>>>>               reg = <1>;
>>>>               remote-endpoint = <&dsi_in>;
>>>
>>> [...]
>>>
>>>> diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>>> b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>>> index 64dca5b7f748..e7f10975cacf 100644
>>>> --- a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>>> +++ b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>>> @@ -277,11 +277,7 @@
>>>>       status = "okay";
>>>>       port {
>>>> -        #address-cells = <1>;
>>>> -        #size-cells = <0>;
>>>> -
>>>> -        ltdc_ep0_out: endpoint@0 {
>>>> -            reg = <0>;
>>>> +        ltdc_ep0_out: endpoint {
>>>>               remote-endpoint = <&adv7513_in>;
>>>>           };
>>>>       };
>>>
>>> I think this is wrong, the AV96 can have two displays connected to
>>> two ports of the LTDC, just like DK2 for example.
>>
>> As for dk2 address/size cells are added only if there are 2 endpoints.
>> It is for this reason I moved endpoint0 definition from
>> stm32mp15xx-dkx to stm32mp151a-dk1.dts (dk1 has only one endpoint).
>>
>> Here it's the same, if you have second endpoint then adress/size will
>> have to be added.
>
> That's a bit problematic. Consider either the use case of DTO which adds
> the other display, or even a custom board DTS. Without your patch, this
> works:
>
> arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
> &ltdc {
>   ...
>   ports {
>     ltdc_ep0_out: endpoint@0 {
>       remote-endpoint = <&adv7513_in>;
>     };
>   };
> };
>
> board-with-display.dts or board-overlay.dts
> &ltdc {
>   ports {
>     endpoint@1 { // just add another endpoint@1, no problem
>       remote-endpoint = <&display>;
>     };
>   };
> };
>
> With your patch, the DTS would have to modify the "endpoint" node to be
> "endpoint@0" probably with a whole lot of /detele-node/ etc. magic (DTO
> cannot do that, so that's a problem, and I do use DTOs on AV96
> extensively for the various expansion cards) and then add the
> endpoint@1. That becomes real complicated in custom board DT, and
> impossible with DTO.

Yes I agree that it'll be problematic. So maybe so solution would be to
not detect a warning for the initial case (only one endpoint with a reg)

2021-04-15 15:09:41

by Marek Vasut

[permalink] [raw]
Subject: Re: [PATCH 11/13] ARM: dts: stm32: fix LTDC port node on STM32 MCU ad MPU

On 4/15/21 4:35 PM, Alexandre TORGUE wrote:
>
>
> On 4/15/21 4:30 PM, Marek Vasut wrote:
>> On 4/15/21 3:34 PM, Alexandre TORGUE wrote:
>>> Hi Marek
>>
>> Hello Alexandre,
>>
>>>>> diff --git a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>>>> b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>>>> index 2bc92ef3aeb9..19ef475a48fc 100644
>>>>> --- a/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>>>> +++ b/arch/arm/boot/dts/stm32mp157c-dk2.dts
>>>>> @@ -82,9 +82,15 @@
>>>>>   };
>>>>>   &ltdc {
>>>>> -    status = "okay";
>>>>> -
>>>>>       port {
>>>>> +        #address-cells = <1>;
>>>>> +        #size-cells = <0>;
>>>>> +
>>>>> +        ltdc_ep0_out: endpoint@0 {
>>>>> +            reg = <0>;
>>>>> +            remote-endpoint = <&sii9022_in>;
>>>>> +        };
>>>>> +
>>>>>           ltdc_ep1_out: endpoint@1 {
>>>>>               reg = <1>;
>>>>>               remote-endpoint = <&dsi_in>;
>>>>
>>>> [...]
>>>>
>>>>> diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>>>> b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>>>> index 64dca5b7f748..e7f10975cacf 100644
>>>>> --- a/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>>>> +++ b/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>>>>> @@ -277,11 +277,7 @@
>>>>>       status = "okay";
>>>>>       port {
>>>>> -        #address-cells = <1>;
>>>>> -        #size-cells = <0>;
>>>>> -
>>>>> -        ltdc_ep0_out: endpoint@0 {
>>>>> -            reg = <0>;
>>>>> +        ltdc_ep0_out: endpoint {
>>>>>               remote-endpoint = <&adv7513_in>;
>>>>>           };
>>>>>       };
>>>>
>>>> I think this is wrong, the AV96 can have two displays connected to
>>>> two ports of the LTDC, just like DK2 for example.
>>>
>>> As for dk2 address/size cells are added only if there are 2
>>> endpoints. It is for this reason I moved endpoint0 definition from
>>> stm32mp15xx-dkx to stm32mp151a-dk1.dts (dk1 has only one endpoint).
>>>
>>> Here it's the same, if you have second endpoint then adress/size will
>>> have to be added.
>>
>> That's a bit problematic. Consider either the use case of DTO which
>> adds the other display, or even a custom board DTS. Without your
>> patch, this works:
>>
>> arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
>> &ltdc {
>>    ...
>>    ports {
>>      ltdc_ep0_out: endpoint@0 {
>>        remote-endpoint = <&adv7513_in>;
>>      };
>>    };
>> };
>>
>> board-with-display.dts or board-overlay.dts
>> &ltdc {
>>    ports {
>>      endpoint@1 { // just add another endpoint@1, no problem
>>        remote-endpoint = <&display>;
>>      };
>>    };
>> };
>>
>> With your patch, the DTS would have to modify the "endpoint" node to
>> be "endpoint@0" probably with a whole lot of /detele-node/ etc. magic
>> (DTO cannot do that, so that's a problem, and I do use DTOs on AV96
>> extensively for the various expansion cards) and then add the
>> endpoint@1. That becomes real complicated in custom board DT, and
>> impossible with DTO.
>
> Yes I agree that it'll be problematic. So maybe so solution would be to
> not detect a warning for the initial case (only one endpoint with a reg)

That looks OK. Or even better, if the checker warned only on IPs which
cannot have more than one endpoint, but have endpoint@N in DT (where N
in 0..+inf) . On IPs which can have one or more endpoints, the warning
should not be emitted.

2021-04-16 16:18:18

by Fabrice Gasnier

[permalink] [raw]
Subject: Re: [Linux-stm32] [PATCH 04/13] dt-bindings: mfd: stm32-timers: remove #address/size cells from required properties

On 4/15/21 12:10 PM, Alexandre Torgue wrote:
> address-cells and size-cells can't be declared as "required" properties
> as they are not needed if subnodes don't have a "reg" entry.
>
> Signed-off-by: Alexandre Torgue <[email protected]>
>
> diff --git a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> index 0f16c8864a87..dace35362a7a 100644
> --- a/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml
> +++ b/Documentation/devicetree/bindings/mfd/st,stm32-timers.yaml

Hi Alexandre,

Not sure if this matters: patches 3 and 4 could be swapped in the
series. Apart from that:

Reviewed-by: Fabrice Gasnier <[email protected]>

Thanks,
Fabrice
> @@ -119,8 +119,6 @@ patternProperties:
> - compatible
>
> required:
> - - "#address-cells"
> - - "#size-cells"
> - compatible
> - reg
> - clocks
>

2021-04-16 16:18:27

by Fabrice Gasnier

[permalink] [raw]
Subject: Re: [Linux-stm32] [PATCH 03/13] ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings

On 4/15/21 12:10 PM, Alexandre Torgue wrote:
> Prevent warning seen with "make dtbs_check W=1" command:
>
> Warning (avoid_unnecessary_addr_size): /soc/timers@40001c00: unnecessary
> address-cells/size-cells without "ranges" or child "reg" property
>
> Signed-off-by: Alexandre Torgue <[email protected]>

Hi Alexandre,

Reviewed-by: Fabrice Gasnier <[email protected]>

Thanks,
Fabrice
>
> diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi
> index 41e0087bdbf9..8748d5850298 100644
> --- a/arch/arm/boot/dts/stm32f429.dtsi
> +++ b/arch/arm/boot/dts/stm32f429.dtsi
> @@ -283,8 +283,6 @@
> };
>
> timers13: timers@40001c00 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-timers";
> reg = <0x40001C00 0x400>;
> clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>;
> @@ -299,8 +297,6 @@
> };
>
> timers14: timers@40002000 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-timers";
> reg = <0x40002000 0x400>;
> clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>;
> @@ -633,8 +629,6 @@
> };
>
> timers10: timers@40014400 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-timers";
> reg = <0x40014400 0x400>;
> clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>;
> @@ -649,8 +643,6 @@
> };
>
> timers11: timers@40014800 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-timers";
> reg = <0x40014800 0x400>;
> clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>;
> diff --git a/arch/arm/boot/dts/stm32f746.dtsi b/arch/arm/boot/dts/stm32f746.dtsi
> index e1df603fc981..72c1b76684b6 100644
> --- a/arch/arm/boot/dts/stm32f746.dtsi
> +++ b/arch/arm/boot/dts/stm32f746.dtsi
> @@ -265,8 +265,6 @@
> };
>
> timers13: timers@40001c00 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-timers";
> reg = <0x40001C00 0x400>;
> clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
> @@ -281,8 +279,6 @@
> };
>
> timers14: timers@40002000 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-timers";
> reg = <0x40002000 0x400>;
> clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
> @@ -531,8 +527,6 @@
> };
>
> timers10: timers@40014400 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-timers";
> reg = <0x40014400 0x400>;
> clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
> @@ -547,8 +541,6 @@
> };
>
> timers11: timers@40014800 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-timers";
> reg = <0x40014800 0x400>;
> clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
> diff --git a/arch/arm/boot/dts/stm32h743.dtsi b/arch/arm/boot/dts/stm32h743.dtsi
> index 05ecdf9ff03a..6e42ca2dada2 100644
> --- a/arch/arm/boot/dts/stm32h743.dtsi
> +++ b/arch/arm/boot/dts/stm32h743.dtsi
> @@ -485,8 +485,6 @@
> };
>
> lptimer4: timer@58002c00 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-lptimer";
> reg = <0x58002c00 0x400>;
> clocks = <&rcc LPTIM4_CK>;
> @@ -501,8 +499,6 @@
> };
>
> lptimer5: timer@58003000 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> compatible = "st,stm32-lptimer";
> reg = <0x58003000 0x400>;
> clocks = <&rcc LPTIM5_CK>;
>

2021-04-19 16:04:20

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH 12/13] ARM: dts: stm32: fix DSI port node on STM32MP15

On Thu, Apr 15, 2021 at 2:23 PM Alexandre TORGUE
<[email protected]> wrote:
> On 4/15/21 12:43 PM, Ahmad Fatoum wrote:
> > On 15.04.21 12:10, Alexandre Torgue wrote:
> >> Running "make dtbs_check W=1", some warnings are reported concerning
> >> DSI. This patch reorder DSI nodes to avoid:
> >>
> >> soc/dsi@5a000000: unnecessary #address-cells/#size-cells without
> >> "ranges" or child "reg" property
> >
> > This reverts parts of commit 9c32f980d9 ("ARM: dts: stm32: preset
> > stm32mp15x video #address- and #size-cells"):
> >
> > The cell count for address and size is defined by the binding and not
> > something a board would change. Avoid each board adding this
> > boilerplate by having the cell size specification in the SoC DTSI.
> >
> >
> > The DSI can have child nodes with a unit address (e.g. a panel) and ones
> > without (ports { } container). ports is described in the dtsi, panels are
> > described in the dts if available.
> >
> > Apparently, the checker is fine with
> > ports {
> > #address-cells = <1>;
> > #size-cells = <0>;
> > };
> >
> > I think my rationale for the patch above was sound, so I think the checker
> > taking offense at the DSI cells here should be considered a false positive.
>
> If it's a "false positive" warning then we need to find a way to not
> print it out. Else, it'll be difficult to distinguish which warnings are
> "normal" and which are not. This question could also be applied to patch[3].
>
> Arnd, Rob what is your feeling about this case ?

I don't have a strong opinion on this either way, but I would just
not apply this one for 5.13 in this case. Rob, Alexandre, please
let me know if I should apply the other patches before the
merge window, I usually don't mind taking bugfixes late before the
merge window, but I still want some level of confidence that they
are actually correct.

Ahmad, if you feel strongly about this particular issue, would you like
to suggest a patch for the checker?

Arnd

2021-04-19 18:37:47

by Alexandre TORGUE

[permalink] [raw]
Subject: Re: [PATCH 12/13] ARM: dts: stm32: fix DSI port node on STM32MP15



On 4/19/21 3:57 PM, Arnd Bergmann wrote:
> On Thu, Apr 15, 2021 at 2:23 PM Alexandre TORGUE
> <[email protected]> wrote:
>> On 4/15/21 12:43 PM, Ahmad Fatoum wrote:
>>> On 15.04.21 12:10, Alexandre Torgue wrote:
>>>> Running "make dtbs_check W=1", some warnings are reported concerning
>>>> DSI. This patch reorder DSI nodes to avoid:
>>>>
>>>> soc/dsi@5a000000: unnecessary #address-cells/#size-cells without
>>>> "ranges" or child "reg" property
>>>
>>> This reverts parts of commit 9c32f980d9 ("ARM: dts: stm32: preset
>>> stm32mp15x video #address- and #size-cells"):
>>>
>>> The cell count for address and size is defined by the binding and not
>>> something a board would change. Avoid each board adding this
>>> boilerplate by having the cell size specification in the SoC DTSI.
>>>
>>>
>>> The DSI can have child nodes with a unit address (e.g. a panel) and ones
>>> without (ports { } container). ports is described in the dtsi, panels are
>>> described in the dts if available.
>>>
>>> Apparently, the checker is fine with
>>> ports {
>>> #address-cells = <1>;
>>> #size-cells = <0>;
>>> };
>>>
>>> I think my rationale for the patch above was sound, so I think the checker
>>> taking offense at the DSI cells here should be considered a false positive.
>>
>> If it's a "false positive" warning then we need to find a way to not
>> print it out. Else, it'll be difficult to distinguish which warnings are
>> "normal" and which are not. This question could also be applied to patch[3].
>>
>> Arnd, Rob what is your feeling about this case ?
>
> I don't have a strong opinion on this either way, but I would just
> not apply this one for 5.13 in this case. Rob, Alexandre, please
> let me know if I should apply the other patches before the
> merge window, I usually don't mind taking bugfixes late before the
> merge window, but I still want some level of confidence that they
> are actually correct.

For me, we can keep this series for the v5.14 cycle.

regards
alex

>
> Ahmad, if you feel strongly about this particular issue, would you like
> to suggest a patch for the checker?
>
> Arnd
>

2021-04-20 20:06:08

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 04/13] dt-bindings: mfd: stm32-timers: remove #address/size cells from required properties

On Thu, 15 Apr 2021 12:10:28 +0200, Alexandre Torgue wrote:
> address-cells and size-cells can't be declared as "required" properties
> as they are not needed if subnodes don't have a "reg" entry.
>
> Signed-off-by: Alexandre Torgue <[email protected]>
>

Acked-by: Rob Herring <[email protected]>

2021-04-20 20:07:31

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 08/13] dt-bindings: net: document ptp_ref clk in dwmac

On Thu, 15 Apr 2021 12:10:32 +0200, Alexandre Torgue wrote:
> ptp_ref clk has been added in DT but not documented which makes yaml
> validation failed:
>
> ethernet@5800a000: clocks: [[6, 105], [6, 103], [6, 104], [6, 123],
> [6, 169], [6, 112]] is too long
> ethernet@5800a000: clock-names: ['stmmaceth', 'mac-clk-tx', 'mac-clk-rx',
> 'eth-ck', 'ptp_ref', 'ethstp'] is too long
>
> Signed-off-by: Alexandre Torgue <[email protected]>
>

Reviewed-by: Rob Herring <[email protected]>

2021-05-04 13:18:00

by Ahmad Fatoum

[permalink] [raw]
Subject: Re: [PATCH 12/13] ARM: dts: stm32: fix DSI port node on STM32MP15

Hello Arnd,

On 19.04.21 15:57, Arnd Bergmann wrote:
> On Thu, Apr 15, 2021 at 2:23 PM Alexandre TORGUE
> <[email protected]> wrote:
>> On 4/15/21 12:43 PM, Ahmad Fatoum wrote:
>>> I think my rationale for the patch above was sound, so I think the checker
>>> taking offense at the DSI cells here should be considered a false positive.
>>
>> If it's a "false positive" warning then we need to find a way to not
>> print it out. Else, it'll be difficult to distinguish which warnings are
>> "normal" and which are not. This question could also be applied to patch[3].
>>
>> Arnd, Rob what is your feeling about this case ?
>
> I don't have a strong opinion on this either way, but I would just
> not apply this one for 5.13 in this case. Rob, Alexandre, please
> let me know if I should apply the other patches before the
> merge window, I usually don't mind taking bugfixes late before the
> merge window, but I still want some level of confidence that they
> are actually correct.
>
> Ahmad, if you feel strongly about this particular issue, would you like
> to suggest a patch for the checker?

The check is certainly useful. If it's not feasible to fix the checker (e.g.
because it analyzes standalone DTSIs), I am fine with reverting my commit
with an indication that this is to avoid triggering a dt-validate false
positive.

I am not familiar with dt-validate's inner workings to offer a patch.

Cheers,
Ahmad

>
> Arnd
>

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |

2021-06-01 10:38:48

by Alexandre TORGUE

[permalink] [raw]
Subject: Re: [PATCH 00/13] ARM: dts: stm32: fix "make dtbs_check W=1" round1

Hi

On 4/15/21 12:10 PM, Alexandre Torgue wrote:
> Hi,
>
> First round to cleanup warnings and yaml validation issues seen running
> "make dtbs_check W=1" command for STM32 platform. It concerns all SoC
> (MCU: f429/429, f746/769, h743, MPU) and all boards (ST reference boards,
> DH, Engicam, LxA ...).
>
> Main fixes are done in device tree files but some imply a change in yaml
> dt-bindings file.
>
> regards
> Alex
>
> Alexandre Torgue (13):
> ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards
> ARM: dts: stm32: fix RCC node name on stm32f429 MCU
> ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings
> dt-bindings: mfd: stm32-timers: remove #address/size cells from
> required properties
> ARM: dts: stm32: update pinctrl node name on STM32 MCU to prevent
> warnings
> ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings
> ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15
> dt-bindings: net: document ptp_ref clk in dwmac
> ARM: dts: stm32: fix stpmic node for stm32mp1 boards
> dt-bindings: mfd: add vref_ddr-supply to st,stpmic1 yaml
> ARM: dts: stm32: fix LTDC port node on STM32 MCU ad MPU
> ARM: dts: stm32: fix DSI port node on STM32MP15
> ARM: dts: stm32: fix ltdc pinctrl on microdev2.0-of7
>
> .../bindings/mfd/st,stm32-timers.yaml | 2 -
> .../devicetree/bindings/mfd/st,stpmic1.yaml | 2 +-
> .../devicetree/bindings/net/snps,dwmac.yaml | 4 +-
> .../devicetree/bindings/net/stm32-dwmac.yaml | 6 +-
> arch/arm/boot/dts/stm32429i-eval.dts | 8 +-
> arch/arm/boot/dts/stm32746g-eval.dts | 6 +-
> arch/arm/boot/dts/stm32f4-pinctrl.dtsi | 2 +-
> arch/arm/boot/dts/stm32f429-disco.dts | 6 +-
> arch/arm/boot/dts/stm32f429-pinctrl.dtsi | 72 +++++++++---------
> arch/arm/boot/dts/stm32f429.dtsi | 10 +--
> arch/arm/boot/dts/stm32f469-disco.dts | 8 +-
> arch/arm/boot/dts/stm32f469-pinctrl.dtsi | 74 +++++++++----------
> arch/arm/boot/dts/stm32f7-pinctrl.dtsi | 2 +-
> arch/arm/boot/dts/stm32f746.dtsi | 12 +--
> arch/arm/boot/dts/stm32f769-disco.dts | 6 +-
> arch/arm/boot/dts/stm32h743.dtsi | 4 -
> arch/arm/boot/dts/stm32mp151.dtsi | 16 ++--
> arch/arm/boot/dts/stm32mp157.dtsi | 2 -
> arch/arm/boot/dts/stm32mp157a-dk1.dts | 8 ++
> ...157a-microgea-stm32mp1-microdev2.0-of7.dts | 5 +-
> arch/arm/boot/dts/stm32mp157a-stinger96.dtsi | 7 +-
> arch/arm/boot/dts/stm32mp157c-dk2.dts | 12 ++-
> arch/arm/boot/dts/stm32mp157c-ev1.dts | 5 +-
> arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts | 3 +-
> .../arm/boot/dts/stm32mp157c-odyssey-som.dtsi | 5 +-
> arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi | 5 +-
> .../boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 6 +-
> arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 7 --
> arch/arm/boot/dts/stm32mp15xx-osd32.dtsi | 7 +-
> 29 files changed, 130 insertions(+), 182 deletions(-)
>

Patches 1 to 8 and 13 applied on stm32-next. I will send a v2 for
vref-ddr supply. There is still an open point about #adress-size/cells
check for DSI / LTDC ports.

Rob,
Can we consider to have "#adress-size/cells defined even if only one
endpoint (child) is defined ? and then is it possible to update the
checker ? Or do we have to keep patches [11][12]
and update #adress-size/cells in board dts files ?

Thanks
Alex

2021-06-01 16:28:31

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH 04/13] dt-bindings: mfd: stm32-timers: remove #address/size cells from required properties

On Thu, 15 Apr 2021, Alexandre Torgue wrote:

> address-cells and size-cells can't be declared as "required" properties
> as they are not needed if subnodes don't have a "reg" entry.
>
> Signed-off-by: Alexandre Torgue <[email protected]>

Applied, thanks.

--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog

2021-06-10 14:37:03

by Alexandre TORGUE

[permalink] [raw]
Subject: Re: [PATCH 09/13] ARM: dts: stm32: fix stpmic node for stm32mp1 boards

On 4/15/21 12:10 PM, Alexandre Torgue wrote:
> On some STM32 MP15 boards, stpmic node is not correct which generates
> warnings running "make dtbs_check W=1" command. Issues are:
>
> -"regulator-active-discharge" is not a boolean but an uint32.
> -"regulator-over-current-protection" is not a valid entry for vref_ddr.
> -LDO4 has a fixed voltage (3v3) so min/max entries are not allowed.
>
> Signed-off-by: Alexandre Torgue <[email protected]>

Applied on stm32-next.

Thanks.
Alex

>
> diff --git a/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi b/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
> index 113c48b2ef93..a4b14ef3caee 100644
> --- a/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
> +++ b/arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
> @@ -184,8 +184,6 @@
>
> vdd_usb: ldo4 {
> regulator-name = "vdd_usb";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> interrupts = <IT_CURLIM_LDO4 0>;
> };
>
> @@ -208,7 +206,6 @@
> vref_ddr: vref_ddr {
> regulator-name = "vref_ddr";
> regulator-always-on;
> - regulator-over-current-protection;
> };
>
> bst_out: boost {
> @@ -219,13 +216,13 @@
> vbus_otg: pwr_sw1 {
> regulator-name = "vbus_otg";
> interrupts = <IT_OCP_OTG 0>;
> - regulator-active-discharge;
> + regulator-active-discharge = <1>;
> };
>
> vbus_sw: pwr_sw2 {
> regulator-name = "vbus_sw";
> interrupts = <IT_OCP_SWOUT 0>;
> - regulator-active-discharge;
> + regulator-active-discharge = <1>;
> };
> };
>
> diff --git a/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi b/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi
> index 6cf49a0a9e69..0c0b66788ea1 100644
> --- a/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi
> +++ b/arch/arm/boot/dts/stm32mp157c-odyssey-som.dtsi
> @@ -173,8 +173,6 @@
>
> vdd_usb: ldo4 {
> regulator-name = "vdd_usb";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> interrupts = <IT_CURLIM_LDO4 0>;
> };
>
> @@ -197,7 +195,6 @@
> vref_ddr: vref_ddr {
> regulator-name = "vref_ddr";
> regulator-always-on;
> - regulator-over-current-protection;
> };
>
> bst_out: boost {
> @@ -213,7 +210,7 @@
> vbus_sw: pwr_sw2 {
> regulator-name = "vbus_sw";
> interrupts = <IT_OCP_SWOUT 0>;
> - regulator-active-discharge;
> + regulator-active-discharge = <1>;
> };
> };
>
> diff --git a/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
> index 272a1a67a9ad..769fcf74685a 100644
> --- a/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
> +++ b/arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
> @@ -327,8 +327,6 @@
>
> vdd_usb: ldo4 {
> regulator-name = "vdd_usb";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> interrupts = <IT_CURLIM_LDO4 0>;
> };
>
> @@ -350,7 +348,6 @@
> vref_ddr: vref_ddr {
> regulator-name = "vref_ddr";
> regulator-always-on;
> - regulator-over-current-protection;
> };
>
> bst_out: boost {
> @@ -366,7 +363,7 @@
> vbus_sw: pwr_sw2 {
> regulator-name = "vbus_sw";
> interrupts = <IT_OCP_SWOUT 0>;
> - regulator-active-discharge;
> + regulator-active-discharge = <1>;
> };
> };
>
> diff --git a/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi b/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
> index 713485a95795..6706d8311a66 100644
> --- a/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
> +++ b/arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
> @@ -146,8 +146,6 @@
>
> vdd_usb: ldo4 {
> regulator-name = "vdd_usb";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> interrupts = <IT_CURLIM_LDO4 0>;
> };
>
> @@ -171,7 +169,6 @@
> vref_ddr: vref_ddr {
> regulator-name = "vref_ddr";
> regulator-always-on;
> - regulator-over-current-protection;
> };
>
> bst_out: boost {
> @@ -182,13 +179,13 @@
> vbus_otg: pwr_sw1 {
> regulator-name = "vbus_otg";
> interrupts = <IT_OCP_OTG 0>;
> - regulator-active-discharge;
> + regulator-active-discharge = <1>;
> };
>
> vbus_sw: pwr_sw2 {
> regulator-name = "vbus_sw";
> interrupts = <IT_OCP_SWOUT 0>;
> - regulator-active-discharge;
> + regulator-active-discharge = <1>;
> };
> };
>
>