* [PATCH 1/4] arm64: dts: rockchip: move rk3588 serial aliases to soc dtsi
2023-12-01 16:58 [PATCH 0/4] arm64: dts: rockchip: aliases for core busses in main dtsi Heiko Stuebner
@ 2023-12-01 16:58 ` Heiko Stuebner
2023-12-01 16:58 ` [PATCH 2/4] arm64: dts: rockchip: add rk3588 i2c " Heiko Stuebner
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Heiko Stuebner @ 2023-12-01 16:58 UTC (permalink / raw)
To: linux-rockchip; +Cc: linux-arm-kernel, quentin.schulz, heiko, Heiko Stuebner
From: Heiko Stuebner <heiko.stuebner@cherry.de>
The serial ports on rk3588 are named uart0 - uart9. Board schematics
also use these exact numbers and we want those names to also reflect
in the OS devices because everything else would just cause confusion.
So instead of having each board repeating their list of serial aliases
move them to the soc dtsi, as all previous Rockchip soc do already.
Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
---
.../boot/dts/rockchip/rk3588-edgeble-neu6a-io.dts | 4 ----
.../boot/dts/rockchip/rk3588-edgeble-neu6b-io.dts | 4 ----
arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts | 1 -
arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts | 1 -
.../boot/dts/rockchip/rk3588-orangepi-5-plus.dts | 1 -
arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts | 1 -
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 1 -
arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi | 2 --
.../boot/dts/rockchip/rk3588s-indiedroid-nova.dts | 1 -
.../boot/dts/rockchip/rk3588s-khadas-edge2.dts | 1 -
arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts | 1 -
arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts | 1 -
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 13 +++++++++++++
13 files changed, 13 insertions(+), 19 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6a-io.dts b/arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6a-io.dts
index b51543892078..be6a4f4f90f6 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6a-io.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6a-io.dts
@@ -12,10 +12,6 @@ / {
compatible = "edgeble,neural-compute-module-6a-io",
"edgeble,neural-compute-module-6a", "rockchip,rk3588";
- aliases {
- serial2 = &uart2;
- };
-
chosen {
stdout-path = "serial2:1500000n8";
};
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6b-io.dts b/arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6b-io.dts
index 9933765e4097..96a18077f26f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6b-io.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6b-io.dts
@@ -12,10 +12,6 @@ / {
compatible = "edgeble,neural-compute-module-6b-io",
"edgeble,neural-compute-module-6b", "rockchip,rk3588";
- aliases {
- serial2 = &uart2;
- };
-
chosen {
stdout-path = "serial2:1500000n8";
};
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts
index b9d789d57862..a36d4fcd9b1d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts
@@ -17,7 +17,6 @@ / {
aliases {
mmc0 = &sdhci;
- serial2 = &uart2;
};
chosen {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts
index 97af4f912828..612107615e66 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts
@@ -19,7 +19,6 @@ / {
aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc;
- serial2 = &uart2;
};
chosen {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
index 298c183d6f4f..3e660ff6cd5f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
@@ -19,7 +19,6 @@ / {
aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc;
- serial2 = &uart2;
};
chosen {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts b/arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts
index 5c59f9571dce..c7cd57609bc2 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts
@@ -19,7 +19,6 @@ / {
aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc;
- serial2 = &uart2;
};
chosen {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
index 741f631db345..e302eeb6ce5a 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
@@ -14,7 +14,6 @@ aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc;
mmc2 = &sdio;
- serial2 = &uart2;
};
chosen {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
index 9570b34aca2e..25a0ca73a8f7 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
@@ -19,8 +19,6 @@ / {
aliases {
ethernet0 = &gmac1;
mmc0 = &sdhci;
- serial2 = &uart2;
- serial9 = &uart9;
};
fan: pwm-fan {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts b/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
index 60f00ceb630e..dc677f29a9c7 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
@@ -44,7 +44,6 @@ aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc;
mmc2 = &sdio;
- serial2 = &uart2;
};
chosen {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts b/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts
index 82478a452533..f53e993c785e 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts
@@ -12,7 +12,6 @@ / {
aliases {
mmc0 = &sdhci;
- serial2 = &uart2;
};
chosen {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts
index 8f399c4317bd..52ec9cb38f57 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts
@@ -14,7 +14,6 @@ / {
aliases {
mmc0 = &sdmmc;
- serial2 = &uart2;
};
chosen {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts b/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts
index 8347adcbd003..73cf97062a09 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts
@@ -14,7 +14,6 @@ / {
aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc;
- serial2 = &uart2;
};
analog-sound {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
index 8aa0499f9b03..d854536a44b8 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
@@ -18,6 +18,19 @@ / {
#address-cells = <2>;
#size-cells = <2>;
+ aliases {
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ serial4 = &uart4;
+ serial5 = &uart5;
+ serial6 = &uart6;
+ serial7 = &uart7;
+ serial8 = &uart8;
+ serial9 = &uart9;
+ };
+
cpus {
#address-cells = <1>;
#size-cells = <0>;
--
2.39.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 2/4] arm64: dts: rockchip: add rk3588 i2c aliases to soc dtsi
2023-12-01 16:58 [PATCH 0/4] arm64: dts: rockchip: aliases for core busses in main dtsi Heiko Stuebner
2023-12-01 16:58 ` [PATCH 1/4] arm64: dts: rockchip: move rk3588 serial aliases to soc dtsi Heiko Stuebner
@ 2023-12-01 16:58 ` Heiko Stuebner
2023-12-01 16:58 ` [PATCH 3/4] arm64: dts: rockchip: add rk3588 gpio " Heiko Stuebner
` (2 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Heiko Stuebner @ 2023-12-01 16:58 UTC (permalink / raw)
To: linux-rockchip; +Cc: linux-arm-kernel, quentin.schulz, heiko, Heiko Stuebner
From: Heiko Stuebner <heiko.stuebner@cherry.de>
The i2c controllers on rk3588 are named i2c0 - i2c8. Board schematics
also use these exact numbers and we want those names to also reflect
in the OS devices because everything else would just cause confusion.
Userspace i2c access is a thing afterall.
So instead of having each board repeating their list of i2c aliases
move them to the soc dtsi, as all previous Rockchip soc do already.
Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
---
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
index d854536a44b8..47512c39e55a 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
@@ -19,6 +19,15 @@ / {
#size-cells = <2>;
aliases {
+ i2c0 = &i2c0;
+ i2c1 = &i2c1;
+ i2c2 = &i2c2;
+ i2c3 = &i2c3;
+ i2c4 = &i2c4;
+ i2c5 = &i2c5;
+ i2c6 = &i2c6;
+ i2c7 = &i2c7;
+ i2c8 = &i2c8;
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
--
2.39.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 3/4] arm64: dts: rockchip: add rk3588 gpio aliases to soc dtsi
2023-12-01 16:58 [PATCH 0/4] arm64: dts: rockchip: aliases for core busses in main dtsi Heiko Stuebner
2023-12-01 16:58 ` [PATCH 1/4] arm64: dts: rockchip: move rk3588 serial aliases to soc dtsi Heiko Stuebner
2023-12-01 16:58 ` [PATCH 2/4] arm64: dts: rockchip: add rk3588 i2c " Heiko Stuebner
@ 2023-12-01 16:58 ` Heiko Stuebner
2023-12-01 17:23 ` Diederik de Haas
2023-12-01 16:58 ` [PATCH 4/4] arm64: dts: rockchip: add rk3588 spi " Heiko Stuebner
2023-12-01 17:19 ` [PATCH 0/4] arm64: dts: rockchip: aliases for core busses in main dtsi Dragan Simic
4 siblings, 1 reply; 8+ messages in thread
From: Heiko Stuebner @ 2023-12-01 16:58 UTC (permalink / raw)
To: linux-rockchip; +Cc: linux-arm-kernel, quentin.schulz, heiko, Heiko Stuebner
From: Heiko Stuebner <heiko.stuebner@cherry.de>
The gpio controllers on rk3588 are named gpio0 - gpio4. Board schematics
also use these exact numbers and we want those names to also reflect
in the OS devices because everything else would just cause confusion.
Userspace gpio access is a thing afterall.
So instead of having each board repeating their list of gpio aliases move
them to the soc dtsi, as previous Rockchip soc like the rk356x do already.
Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
---
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
index 47512c39e55a..a59407466746 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
@@ -19,6 +19,11 @@ / {
#size-cells = <2>;
aliases {
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ gpio2 = &gpio2;
+ gpio3 = &gpio3;
+ gpio4 = &gpio4;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
--
2.39.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 3/4] arm64: dts: rockchip: add rk3588 gpio aliases to soc dtsi
2023-12-01 16:58 ` [PATCH 3/4] arm64: dts: rockchip: add rk3588 gpio " Heiko Stuebner
@ 2023-12-01 17:23 ` Diederik de Haas
2023-12-01 17:25 ` Heiko Stübner
0 siblings, 1 reply; 8+ messages in thread
From: Diederik de Haas @ 2023-12-01 17:23 UTC (permalink / raw)
To: linux-rockchip, Heiko Stuebner
Cc: linux-arm-kernel, quentin.schulz, Heiko Stuebner
[-- Attachment #1.1: Type: text/plain, Size: 399 bytes --]
On Friday, 1 December 2023 17:58:09 CET Heiko Stuebner wrote:
> So instead of having each board repeating their list of gpio aliases move
> them to the soc dtsi
Nit:
To prevent each board repeating their list of gpio aliases, define them in the
soc dtsi
Patch 1 did in fact *move* items, but patch 2-4 only added them to the soc
dtsi, which I assume is to prevent them being added to each board.
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/4] arm64: dts: rockchip: add rk3588 gpio aliases to soc dtsi
2023-12-01 17:23 ` Diederik de Haas
@ 2023-12-01 17:25 ` Heiko Stübner
0 siblings, 0 replies; 8+ messages in thread
From: Heiko Stübner @ 2023-12-01 17:25 UTC (permalink / raw)
To: linux-rockchip, Heiko Stuebner, Diederik de Haas
Cc: linux-arm-kernel, quentin.schulz
Am Freitag, 1. Dezember 2023, 18:23:27 CET schrieb Diederik de Haas:
> On Friday, 1 December 2023 17:58:09 CET Heiko Stuebner wrote:
> > So instead of having each board repeating their list of gpio aliases move
> > them to the soc dtsi
>
> Nit:
> To prevent each board repeating their list of gpio aliases, define them in the
> soc dtsi
>
> Patch 1 did in fact *move* items, but patch 2-4 only added them to the soc
> dtsi, which I assume is to prevent them being added to each board.
ah yes, the magic of doing similar things in bulk, thanks for catching that :-)
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 4/4] arm64: dts: rockchip: add rk3588 spi aliases to soc dtsi
2023-12-01 16:58 [PATCH 0/4] arm64: dts: rockchip: aliases for core busses in main dtsi Heiko Stuebner
` (2 preceding siblings ...)
2023-12-01 16:58 ` [PATCH 3/4] arm64: dts: rockchip: add rk3588 gpio " Heiko Stuebner
@ 2023-12-01 16:58 ` Heiko Stuebner
2023-12-01 17:19 ` [PATCH 0/4] arm64: dts: rockchip: aliases for core busses in main dtsi Dragan Simic
4 siblings, 0 replies; 8+ messages in thread
From: Heiko Stuebner @ 2023-12-01 16:58 UTC (permalink / raw)
To: linux-rockchip; +Cc: linux-arm-kernel, quentin.schulz, heiko, Heiko Stuebner
From: Heiko Stuebner <heiko.stuebner@cherry.de>
The spi controllers on rk3588 are named spi0 - spi4. Board schematics
also use these exact numbers and we want those names to also reflect
in the OS devices because everything else would just cause confusion.
Userspace spi access is a thing afterall.
So instead of having each board repeating their list of spi aliases, move
them to the soc dtsi, as previous Rockchip soc like the rk356x do already.
Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
---
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
index a59407466746..7863aded672b 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
@@ -43,6 +43,11 @@ aliases {
serial7 = &uart7;
serial8 = &uart8;
serial9 = &uart9;
+ spi0 = &spi0;
+ spi1 = &spi1;
+ spi2 = &spi2;
+ spi3 = &spi3;
+ spi4 = &spi4;
};
cpus {
--
2.39.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 0/4] arm64: dts: rockchip: aliases for core busses in main dtsi
2023-12-01 16:58 [PATCH 0/4] arm64: dts: rockchip: aliases for core busses in main dtsi Heiko Stuebner
` (3 preceding siblings ...)
2023-12-01 16:58 ` [PATCH 4/4] arm64: dts: rockchip: add rk3588 spi " Heiko Stuebner
@ 2023-12-01 17:19 ` Dragan Simic
4 siblings, 0 replies; 8+ messages in thread
From: Dragan Simic @ 2023-12-01 17:19 UTC (permalink / raw)
To: Heiko Stuebner; +Cc: linux-rockchip, linux-arm-kernel, quentin.schulz
On 2023-12-01 17:58, Heiko Stuebner wrote:
> Placement of aliases is cause for a lot of discussion :-).
> Most recently in [0]. And while devices such as mmc controllers do have
> names not following any numbers, this is different for the core
> busses/devices like serial, i2c, gpio, spi.
>
> All of those start at number 0 and increment then. And all pieces of
> documentation like soc manuals, device schematics as well as pin-header
> descriptions for SBCs also use these numbers to identify the controller
> instance.
>
> All previous Rockchip socs also carry those core busses in the main
> dtsi
> so that not every board needs to have the exact same aliases defined.
>
> [0] https://lore.kernel.org/all/4762834.KRxA6XjA2N@diego/
>
> Heiko Stuebner (4):
> arm64: dts: rockchip: move rk3588 serial aliases to soc dtsi
> arm64: dts: rockchip: add rk3588 i2c aliases to soc dtsi
> arm64: dts: rockchip: add rk3588 gpio aliases to soc dtsi
> arm64: dts: rockchip: add rk3588 spi aliases to soc dtsi
>
> .../dts/rockchip/rk3588-edgeble-neu6a-io.dts | 4 ---
> .../dts/rockchip/rk3588-edgeble-neu6b-io.dts | 4 ---
> .../boot/dts/rockchip/rk3588-evb1-v10.dts | 1 -
> .../boot/dts/rockchip/rk3588-nanopc-t6.dts | 1 -
> .../dts/rockchip/rk3588-orangepi-5-plus.dts | 1 -
> .../boot/dts/rockchip/rk3588-quartzpro64.dts | 1 -
> .../boot/dts/rockchip/rk3588-rock-5b.dts | 1 -
> .../boot/dts/rockchip/rk3588-turing-rk1.dtsi | 2 --
> .../dts/rockchip/rk3588s-indiedroid-nova.dts | 1 -
> .../dts/rockchip/rk3588s-khadas-edge2.dts | 1 -
> .../boot/dts/rockchip/rk3588s-orangepi-5.dts | 1 -
> .../boot/dts/rockchip/rk3588s-rock-5a.dts | 1 -
> arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 32 +++++++++++++++++++
> 13 files changed, 32 insertions(+), 19 deletions(-)
Thank you for cleaning this up. Here's my Reviewed-by for the entire
series:
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread