From: Krzysztof Kozlowski <krzk@kernel.org>
To: Shawn Guo <shawnguo@kernel.org>
Cc: devicetree@vger.kernel.org, Anson Huang <Anson.Huang@nxp.com>,
Sascha Hauer <s.hauer@pengutronix.de>,
linux-kernel@vger.kernel.org, Li Yang <leoyang.li@nxp.com>,
Rob Herring <robh+dt@kernel.org>,
NXP Linux Team <linux-imx@nxp.com>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Fabio Estevam <festevam@gmail.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 4/4] arm64: dts: imx8mm-var-som-symphony: Add Variscite Symphony board with VAR-SOM-MX8MM
Date: Sun, 23 Aug 2020 10:58:47 +0200 [thread overview]
Message-ID: <20200823085847.GC2886@kozik-lap> (raw)
In-Reply-To: <20200823020051.GJ30094@dragon>
On Sun, Aug 23, 2020 at 10:00:51AM +0800, Shawn Guo wrote:
> On Mon, Aug 17, 2020 at 09:01:20AM +0200, Krzysztof Kozlowski wrote:
> > Add a DTS for Variscite Symphony evaluation kit with VAR-SOM-MX8MM
> > System on Module.
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> >
> > ---
> >
> > Changes since v1:
> > 1. Remove duplicated "leds" node,
> > 2. Fix heartbeat to active low,
> > 3. Add nxp,ptn5150 extcon.
> > ---
> > arch/arm64/boot/dts/freescale/Makefile | 1 +
> > .../dts/freescale/imx8mm-var-som-symphony.dts | 248 ++++++++++++++++++
> > 2 files changed, 249 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts
> >
> > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> > index a39f0a1723e0..dcfb8750cd78 100644
> > --- a/arch/arm64/boot/dts/freescale/Makefile
> > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > @@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
> > dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
> >
> > dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
> > +dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts b/arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts
> > new file mode 100644
> > index 000000000000..2d3c30ac5e04
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts
> > @@ -0,0 +1,248 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright (C) 2020 Krzysztof Kozlowski <krzk@kernel.org>
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "imx8mm-var-som.dtsi"
> > +
> > +/ {
> > + model = "Variscite VAR-SOM-MX8MM Symphony evaluation board";
> > + compatible = "variscite,var-som-mx8mm-symphony", "variscite,var-som-mx8mm", "fsl,imx8mm";
> > +
> > + reg_usdhc2_vmmc: regulator-1 {
>
> regulator-usdhc2-vmmc
You mean the node name? If so, it's not correct with device tree
specification:
"The node-name (...) should describe the general class of device.:
If appropriate, the name should be one of the following choices:
(...)
- regulator"
Adding specific function/type/usage to the name of the node is a
opposite choice to "general class".
>
> > + compatible = "regulator-fixed";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
> > + regulator-name = "VSD_3V3";
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > + };
> > +
> > + reg_usb_otg2_vbus: regulator-2 {
>
> regulator-usb-otg2-vbus
>
> > + compatible = "regulator-fixed";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_reg_usb_otg2_vbus>;
> > + regulator-name = "usb_otg2_vbus";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > + };
> > +
> > + gpio-keys {
> > + compatible = "gpio-keys";
> > +
> > + back {
> > + label = "Back";
> > + gpios = <&pca9534 1 GPIO_ACTIVE_LOW>;
> > + linux,code = <KEY_BACK>;
> > + };
> > +
> > + home {
> > + label = "Home";
> > + gpios = <&pca9534 2 GPIO_ACTIVE_LOW>;
> > + linux,code = <KEY_HOME>;
> > + };
> > +
> > + menu {
> > + label = "Menu";
> > + gpios = <&pca9534 3 GPIO_ACTIVE_LOW>;
> > + linux,code = <KEY_MENU>;
> > + };
> > + };
> > +
> > + leds {
> > + compatible = "gpio-leds";
> > +
> > + heartbeat {
> > + label = "Heartbeat";
> > + gpios = <&pca9534 0 GPIO_ACTIVE_LOW>;
> > + linux,default-trigger = "heartbeat";
> > + };
> > + };
> > +};
> > +
> > +ðphy {
> > + reset-gpios = <&pca9534 5 GPIO_ACTIVE_HIGH>;
> > +};
> > +
> > +&i2c2 {
> > + clock-frequency = <400000>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_i2c2>;
> > + status = "okay";
> > +
> > + pca9534: gpio@20 {
> > + compatible = "nxp,pca9534";
> > + reg = <0x20>;
> > + gpio-controller;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_pca9534>;
> > + interrupt-parent = <&gpio1>;
> > + interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
> > + #gpio-cells = <2>;
> > + wakeup-source;
> > +
> > + /* USB 3.0 OTG (usbotg1) / SATA port switch, set to USB 3.0 */
> > + usb3-sata-sel-hog {
> > + gpio-hog;
> > + gpios = <4 GPIO_ACTIVE_HIGH>;
> > + output-low;
> > + line-name = "usb3_sata_sel";
> > + };
> > +
> > + som-vselect-hog {
> > + gpio-hog;
> > + gpios = <6 GPIO_ACTIVE_HIGH>;
> > + output-low;
> > + line-name = "som_vselect";
> > + };
> > +
> > + enet-sel-hog {
> > + gpio-hog;
> > + gpios = <7 GPIO_ACTIVE_HIGH>;
> > + output-low;
> > + line-name = "enet_sel";
> > + };
> > + };
> > +
> > + extcon_usbotg1: typec@3d {
> > + compatible = "nxp,ptn5150";
> > + reg = <0x3d>;
> > + int-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_ptn5150>;
> > + status = "okay";
> > + };
> > +};
> > +
> > +&i2c3 {
> > + clock-frequency = <400000>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_i2c3>;
> > + status = "okay";
> > +
> > + /* Capacitive touch controller */
> > + ft5x06_ts: touchscreen@38 {
> > + compatible = "edt,edt-ft5406";
> > + reg = <0x38>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_captouch>;
> > + interrupt-parent = <&gpio5>;
> > + interrupts = <4 GPIO_ACTIVE_HIGH>;
> > +
> > + touchscreen-size-x = <800>;
> > + touchscreen-size-y = <480>;
> > + touchscreen-inverted-x;
> > + touchscreen-inverted-y;
> > + };
> > +
> > + rtc@68 {
> > + compatible = "dallas,ds1337";
> > + reg = <0x68>;
> > + wakeup-source;
> > + };
> > +};
> > +
> > +/* Header */
> > +&uart1 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_uart1>;
> > + status = "okay";
> > +};
> > +
> > +/* Header */
> > +&uart3 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_uart3>;
> > + status = "okay";
> > +};
> > +
> > +&usbotg1 {
> > + disable-over-current;
> > + extcon = <&extcon_usbotg1>, <&extcon_usbotg1>;
> > +};
> > +
> > +&usbotg2 {
> > + dr_mode = "host";
> > + vbus-supply = <®_usb_otg2_vbus>;
> > + srp-disable;
> > + hnp-disable;
> > + adp-disable;
> > + disable-over-current;
> > + /delete-property/ usb-role-switch;
> > + /*
> > + * FIXME: having USB2 enabled hangs the boot just after:
> > + * [ 1.943365] ci_hdrc ci_hdrc.1: EHCI Host Controller
> > + * [ 1.948287] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
> > + * [ 1.971006] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
> > + * [ 1.977203] hub 1-0:1.0: USB hub found
> > + * [ 1.980987] hub 1-0:1.0: 1 port detected
> > + */
> > + status = "disabled";
> > +};
> > +
> > +&iomuxc {
> > + pinctrl-names = "default";
>
> Drop this.
Indeed, thanks.
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Shawn Guo <shawnguo@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>,
Sascha Hauer <s.hauer@pengutronix.de>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Fabio Estevam <festevam@gmail.com>,
NXP Linux Team <linux-imx@nxp.com>,
Anson Huang <Anson.Huang@nxp.com>, Li Yang <leoyang.li@nxp.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 4/4] arm64: dts: imx8mm-var-som-symphony: Add Variscite Symphony board with VAR-SOM-MX8MM
Date: Sun, 23 Aug 2020 10:58:47 +0200 [thread overview]
Message-ID: <20200823085847.GC2886@kozik-lap> (raw)
In-Reply-To: <20200823020051.GJ30094@dragon>
On Sun, Aug 23, 2020 at 10:00:51AM +0800, Shawn Guo wrote:
> On Mon, Aug 17, 2020 at 09:01:20AM +0200, Krzysztof Kozlowski wrote:
> > Add a DTS for Variscite Symphony evaluation kit with VAR-SOM-MX8MM
> > System on Module.
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> >
> > ---
> >
> > Changes since v1:
> > 1. Remove duplicated "leds" node,
> > 2. Fix heartbeat to active low,
> > 3. Add nxp,ptn5150 extcon.
> > ---
> > arch/arm64/boot/dts/freescale/Makefile | 1 +
> > .../dts/freescale/imx8mm-var-som-symphony.dts | 248 ++++++++++++++++++
> > 2 files changed, 249 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts
> >
> > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> > index a39f0a1723e0..dcfb8750cd78 100644
> > --- a/arch/arm64/boot/dts/freescale/Makefile
> > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > @@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
> > dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
> >
> > dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
> > +dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts b/arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts
> > new file mode 100644
> > index 000000000000..2d3c30ac5e04
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts
> > @@ -0,0 +1,248 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright (C) 2020 Krzysztof Kozlowski <krzk@kernel.org>
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "imx8mm-var-som.dtsi"
> > +
> > +/ {
> > + model = "Variscite VAR-SOM-MX8MM Symphony evaluation board";
> > + compatible = "variscite,var-som-mx8mm-symphony", "variscite,var-som-mx8mm", "fsl,imx8mm";
> > +
> > + reg_usdhc2_vmmc: regulator-1 {
>
> regulator-usdhc2-vmmc
You mean the node name? If so, it's not correct with device tree
specification:
"The node-name (...) should describe the general class of device.:
If appropriate, the name should be one of the following choices:
(...)
- regulator"
Adding specific function/type/usage to the name of the node is a
opposite choice to "general class".
>
> > + compatible = "regulator-fixed";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
> > + regulator-name = "VSD_3V3";
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > + };
> > +
> > + reg_usb_otg2_vbus: regulator-2 {
>
> regulator-usb-otg2-vbus
>
> > + compatible = "regulator-fixed";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_reg_usb_otg2_vbus>;
> > + regulator-name = "usb_otg2_vbus";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > + };
> > +
> > + gpio-keys {
> > + compatible = "gpio-keys";
> > +
> > + back {
> > + label = "Back";
> > + gpios = <&pca9534 1 GPIO_ACTIVE_LOW>;
> > + linux,code = <KEY_BACK>;
> > + };
> > +
> > + home {
> > + label = "Home";
> > + gpios = <&pca9534 2 GPIO_ACTIVE_LOW>;
> > + linux,code = <KEY_HOME>;
> > + };
> > +
> > + menu {
> > + label = "Menu";
> > + gpios = <&pca9534 3 GPIO_ACTIVE_LOW>;
> > + linux,code = <KEY_MENU>;
> > + };
> > + };
> > +
> > + leds {
> > + compatible = "gpio-leds";
> > +
> > + heartbeat {
> > + label = "Heartbeat";
> > + gpios = <&pca9534 0 GPIO_ACTIVE_LOW>;
> > + linux,default-trigger = "heartbeat";
> > + };
> > + };
> > +};
> > +
> > +ðphy {
> > + reset-gpios = <&pca9534 5 GPIO_ACTIVE_HIGH>;
> > +};
> > +
> > +&i2c2 {
> > + clock-frequency = <400000>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_i2c2>;
> > + status = "okay";
> > +
> > + pca9534: gpio@20 {
> > + compatible = "nxp,pca9534";
> > + reg = <0x20>;
> > + gpio-controller;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_pca9534>;
> > + interrupt-parent = <&gpio1>;
> > + interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
> > + #gpio-cells = <2>;
> > + wakeup-source;
> > +
> > + /* USB 3.0 OTG (usbotg1) / SATA port switch, set to USB 3.0 */
> > + usb3-sata-sel-hog {
> > + gpio-hog;
> > + gpios = <4 GPIO_ACTIVE_HIGH>;
> > + output-low;
> > + line-name = "usb3_sata_sel";
> > + };
> > +
> > + som-vselect-hog {
> > + gpio-hog;
> > + gpios = <6 GPIO_ACTIVE_HIGH>;
> > + output-low;
> > + line-name = "som_vselect";
> > + };
> > +
> > + enet-sel-hog {
> > + gpio-hog;
> > + gpios = <7 GPIO_ACTIVE_HIGH>;
> > + output-low;
> > + line-name = "enet_sel";
> > + };
> > + };
> > +
> > + extcon_usbotg1: typec@3d {
> > + compatible = "nxp,ptn5150";
> > + reg = <0x3d>;
> > + int-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_ptn5150>;
> > + status = "okay";
> > + };
> > +};
> > +
> > +&i2c3 {
> > + clock-frequency = <400000>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_i2c3>;
> > + status = "okay";
> > +
> > + /* Capacitive touch controller */
> > + ft5x06_ts: touchscreen@38 {
> > + compatible = "edt,edt-ft5406";
> > + reg = <0x38>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_captouch>;
> > + interrupt-parent = <&gpio5>;
> > + interrupts = <4 GPIO_ACTIVE_HIGH>;
> > +
> > + touchscreen-size-x = <800>;
> > + touchscreen-size-y = <480>;
> > + touchscreen-inverted-x;
> > + touchscreen-inverted-y;
> > + };
> > +
> > + rtc@68 {
> > + compatible = "dallas,ds1337";
> > + reg = <0x68>;
> > + wakeup-source;
> > + };
> > +};
> > +
> > +/* Header */
> > +&uart1 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_uart1>;
> > + status = "okay";
> > +};
> > +
> > +/* Header */
> > +&uart3 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_uart3>;
> > + status = "okay";
> > +};
> > +
> > +&usbotg1 {
> > + disable-over-current;
> > + extcon = <&extcon_usbotg1>, <&extcon_usbotg1>;
> > +};
> > +
> > +&usbotg2 {
> > + dr_mode = "host";
> > + vbus-supply = <®_usb_otg2_vbus>;
> > + srp-disable;
> > + hnp-disable;
> > + adp-disable;
> > + disable-over-current;
> > + /delete-property/ usb-role-switch;
> > + /*
> > + * FIXME: having USB2 enabled hangs the boot just after:
> > + * [ 1.943365] ci_hdrc ci_hdrc.1: EHCI Host Controller
> > + * [ 1.948287] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
> > + * [ 1.971006] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
> > + * [ 1.977203] hub 1-0:1.0: USB hub found
> > + * [ 1.980987] hub 1-0:1.0: 1 port detected
> > + */
> > + status = "disabled";
> > +};
> > +
> > +&iomuxc {
> > + pinctrl-names = "default";
>
> Drop this.
Indeed, thanks.
Best regards,
Krzysztof
next prev parent reply other threads:[~2020-08-23 9:00 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-17 7:01 [PATCH v2 1/4] dt-bindings: arm: fsl: Add binding for Variscite VAR-SOM-MX8MM module Krzysztof Kozlowski
2020-08-17 7:01 ` Krzysztof Kozlowski
2020-08-17 7:01 ` [PATCH v2 2/4] dt-bindings: arm: fsl: Add binding for Variscite Symphony board with VAR-SOM-MX8MM Krzysztof Kozlowski
2020-08-17 7:01 ` Krzysztof Kozlowski
2020-08-17 7:01 ` [PATCH v2 3/4] arm64: dts: imx8mm-var-som: Add Variscite VAR-SOM-MX8MM System on Module Krzysztof Kozlowski
2020-08-17 7:01 ` Krzysztof Kozlowski
2020-08-23 1:56 ` Shawn Guo
2020-08-23 1:56 ` Shawn Guo
2020-08-23 8:48 ` Krzysztof Kozlowski
2020-08-23 8:48 ` Krzysztof Kozlowski
2020-08-17 7:01 ` [PATCH v2 4/4] arm64: dts: imx8mm-var-som-symphony: Add Variscite Symphony board with VAR-SOM-MX8MM Krzysztof Kozlowski
2020-08-17 7:01 ` Krzysztof Kozlowski
2020-08-23 2:00 ` Shawn Guo
2020-08-23 2:00 ` Shawn Guo
2020-08-23 8:58 ` Krzysztof Kozlowski [this message]
2020-08-23 8:58 ` Krzysztof Kozlowski
2020-08-24 10:47 ` Shawn Guo
2020-08-24 10:47 ` Shawn Guo
2020-08-24 10:53 ` Krzysztof Kozlowski
2020-08-24 10:53 ` Krzysztof Kozlowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200823085847.GC2886@kozik-lap \
--to=krzk@kernel.org \
--cc=Anson.Huang@nxp.com \
--cc=devicetree@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=kernel@pengutronix.de \
--cc=leoyang.li@nxp.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.