All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Protsenko <semen.protsenko@linaro.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Rob Herring <robh+dt@kernel.org>,
	Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Jaewon Kim <jaewon02.kim@samsung.com>,
	Chanho Park <chanho61.park@samsung.com>,
	David Virag <virag.david003@gmail.com>,
	Youngmin Nam <youngmin.nam@samsung.com>,
	Tomasz Figa <tomasz.figa@gmail.com>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Daniel Palmer <daniel@0x0f.com>, Hao Fang <fanghao11@huawei.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org
Subject: Re: [PATCH v2 7/7] arm64: dts: exynos: Add initial E850-96 board support
Date: Fri, 17 Dec 2021 03:37:14 +0200	[thread overview]
Message-ID: <CAPLW+4nSAjugncJkr49k=nkWiKXs-mo16_qfq1KRGkaaWu-R7Q@mail.gmail.com> (raw)
In-Reply-To: <20211217013005.16646-8-semen.protsenko@linaro.org>

On Fri, 17 Dec 2021 at 03:30, Sam Protsenko <semen.protsenko@linaro.org> wrote:
>
> E850-96 is a 96boards development board manufactured by WinLink. It
> incorporates Samsung Exynos850 SoC, and is compatible with 96boards
> mezzanine boards [1], as it follows 96boards standards.
>
> This patch adds minimal support for E850-96 board. Next features are
> enabled in board dts file and verified with minimal BusyBox rootfs:
>
>  * User buttons
>  * LEDs
>  * Serial console
>  * Watchdog timers
>  * RTC
>  * eMMC
>
> [1] https://www.96boards.org/products/mezzanine/
>
> Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
> ---
> Changes in v2:
>   - Removed board_id and board_rev properties
>   - Removed BOARD_ID and BOARD_REV constants
>   - Put dtb in alphabetical order in Makefile
>   - Added "color" and "function" properties to LED nodes
>   - Sorted all phandle overrides by phandle name
>   - Removed 'broken-cd' property in eMMC node
>   - Added memory node
>
>  arch/arm64/boot/dts/exynos/Makefile           |   1 +
>  .../boot/dts/exynos/exynos850-e850-96.dts     | 175 ++++++++++++++++++
>  2 files changed, 176 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/exynos/exynos850-e850-96.dts
>
> diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile
> index b41e86df0a84..be9df8e85c59 100644
> --- a/arch/arm64/boot/dts/exynos/Makefile
> +++ b/arch/arm64/boot/dts/exynos/Makefile
> @@ -3,4 +3,5 @@ dtb-$(CONFIG_ARCH_EXYNOS) += \
>         exynos5433-tm2.dtb      \
>         exynos5433-tm2e.dtb     \
>         exynos7-espresso.dtb    \
> +       exynos850-e850-96.dtb   \
>         exynosautov9-sadk.dtb
> diff --git a/arch/arm64/boot/dts/exynos/exynos850-e850-96.dts b/arch/arm64/boot/dts/exynos/exynos850-e850-96.dts
> new file mode 100644
> index 000000000000..952a47c417d4
> --- /dev/null
> +++ b/arch/arm64/boot/dts/exynos/exynos850-e850-96.dts
> @@ -0,0 +1,175 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * WinLink E850-96 board device tree source
> + *
> + * Copyright (C) 2018 Samsung Electronics Co., Ltd.
> + * Copyright (C) 2021 Linaro Ltd.
> + *
> + * Device tree source file for WinLink's E850-96 board which is based on
> + * Samsung Exynos850 SoC.
> + */
> +
> +/dts-v1/;
> +
> +#include "exynos850.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +
> +/ {
> +       model = "WinLink E850-96 board";
> +       compatible = "winlink,e850-96", "samsung,exynos850";
> +
> +       chosen {
> +               stdout-path = &serial_0;
> +       };
> +
> +       /*
> +        * 4 GiB eMCP:
> +        *   - 2 GiB at 0x80000000
> +        *   - 2 GiB at 0x880000000
> +        *
> +        * 0xbab00000..0xbfffffff: secure memory (85 MiB).
> +        */
> +       memory@80000000 {
> +               device_type = "memory";
> +               reg = <0x0 0x80000000 0x3ab00000>,
> +                     <0x0 0xc0000000 0x40000000>,
> +                     <0x8 0x80000000 0x80000000>;
> +       };
> +
> +       gpio-keys {
> +               compatible = "gpio-keys";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&key_voldown_pins &key_volup_pins>;
> +
> +               volume-down-key {
> +                       label = "Volume Down";
> +                       linux,code = <KEY_VOLUMEDOWN>;
> +                       gpios = <&gpa1 0 GPIO_ACTIVE_LOW>;
> +               };
> +
> +               volume-up-key {
> +                       label = "Volume Up";
> +                       linux,code = <KEY_VOLUMEUP>;
> +                       gpios = <&gpa0 7 GPIO_ACTIVE_LOW>;
> +               };
> +       };
> +
> +       leds {
> +               compatible = "gpio-leds";
> +
> +               /* HEART_BEAT_LED */
> +               user_led1: led-1 {
> +                       label = "yellow:user1";
> +                       gpios = <&gpg2 2 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_YELLOW>;
> +                       function = LED_FUNCTION_HEARTBEAT;
> +                       linux,default-trigger = "heartbeat";
> +               };
> +
> +               /* eMMC_LED */
> +               user_led2: led-2 {
> +                       label = "yellow:user2";
> +                       gpios = <&gpg2 3 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_YELLOW>;
> +                       linux,default-trigger = "mmc0";
> +               };
> +
> +               /* SD_LED */
> +               user_led3: led-3 {
> +                       label = "white:user3";
> +                       gpios = <&gpg2 4 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_WHITE>;
> +                       function = LED_FUNCTION_SD;
> +                       linux,default-trigger = "mmc2";
> +               };
> +
> +               /* WIFI_LED */
> +               wlan_active_led: led-4 {
> +                       label = "yellow:wlan";
> +                       gpios = <&gpg2 6 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_YELLOW>;
> +                       function = LED_FUNCTION_WLAN;
> +                       linux,default-trigger = "phy0tx";
> +                       default-state = "off";
> +               };
> +
> +               /* BLUETOOTH_LED */
> +               bt_active_led: led-5 {
> +                       label = "blue:bt";
> +                       gpios = <&gpg2 7 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_BLUE>;
> +                       function = LED_FUNCTION_BLUETOOTH;
> +                       linux,default-trigger = "hci0rx";
> +                       default-state = "off";
> +               };
> +       };
> +};
> +
> +&mmc_0 {
> +       status = "okay";
> +       mmc-hs200-1_8v;
> +       mmc-hs400-1_8v;
> +       cap-mmc-highspeed;
> +       non-removable;
> +       mmc-hs400-enhanced-strobe;
> +       card-detect-delay = <200>;
> +       clock-frequency = <800000000>;
> +       bus-width = <8>;
> +       samsung,dw-mshc-ciu-div = <3>;
> +       samsung,dw-mshc-sdr-timing = <0 4>;
> +       samsung,dw-mshc-ddr-timing = <2 4>;
> +       samsung,dw-mshc-hs400-timing = <0 2>;
> +
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&sd0_clk_pins &sd0_cmd_pins &sd0_rdqs_pins &sd0_nreset_pins
> +                    &sd0_bus1_pins &sd0_bus4_pins &sd0_bus8_pins>;
> +};
> +
> +&oscclk {
> +       clock-frequency = <26000000>;
> +};
> +
> +&rtc {
> +       status = "okay";
> +};
> +
> +&rtcclk {
> +       clock-frequency = <32768>;
> +};
> +
> +&serial_0 {
> +       status = "okay";
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&uart1_pins>;
> +};
> +
> +&usi_uart {
> +       samsung,clkreq-on; /* needed for UART mode */
> +       status = "okay";
> +};
> +
> +&watchdog_cl0 {
> +       status = "okay";
> +};
> +
> +&watchdog_cl1 {
> +       status = "okay";
> +};
> +
> +&pinctrl_alive {

Forgot to order pinctrl node. Will send v3 soon, sorry for the noise.

> +       key_voldown_pins: key-voldown-pins {
> +               samsung,pins = "gpa1-0";
> +               samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
> +               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
> +       };
> +
> +       key_volup_pins: key-volup-pins {
> +               samsung,pins = "gpa0-7";
> +               samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
> +               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
> +       };
> +};
> --
> 2.30.2
>

WARNING: multiple messages have this Message-ID (diff)
From: Sam Protsenko <semen.protsenko@linaro.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Rob Herring <robh+dt@kernel.org>,
	 Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Jaewon Kim <jaewon02.kim@samsung.com>,
	Chanho Park <chanho61.park@samsung.com>,
	 David Virag <virag.david003@gmail.com>,
	Youngmin Nam <youngmin.nam@samsung.com>,
	Tomasz Figa <tomasz.figa@gmail.com>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	 Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	 Linus Walleij <linus.walleij@linaro.org>,
	Daniel Palmer <daniel@0x0f.com>,  Hao Fang <fanghao11@huawei.com>,
	linux-arm-kernel@lists.infradead.org,
	 linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org,
	 linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org
Subject: Re: [PATCH v2 7/7] arm64: dts: exynos: Add initial E850-96 board support
Date: Fri, 17 Dec 2021 03:37:14 +0200	[thread overview]
Message-ID: <CAPLW+4nSAjugncJkr49k=nkWiKXs-mo16_qfq1KRGkaaWu-R7Q@mail.gmail.com> (raw)
In-Reply-To: <20211217013005.16646-8-semen.protsenko@linaro.org>

On Fri, 17 Dec 2021 at 03:30, Sam Protsenko <semen.protsenko@linaro.org> wrote:
>
> E850-96 is a 96boards development board manufactured by WinLink. It
> incorporates Samsung Exynos850 SoC, and is compatible with 96boards
> mezzanine boards [1], as it follows 96boards standards.
>
> This patch adds minimal support for E850-96 board. Next features are
> enabled in board dts file and verified with minimal BusyBox rootfs:
>
>  * User buttons
>  * LEDs
>  * Serial console
>  * Watchdog timers
>  * RTC
>  * eMMC
>
> [1] https://www.96boards.org/products/mezzanine/
>
> Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
> ---
> Changes in v2:
>   - Removed board_id and board_rev properties
>   - Removed BOARD_ID and BOARD_REV constants
>   - Put dtb in alphabetical order in Makefile
>   - Added "color" and "function" properties to LED nodes
>   - Sorted all phandle overrides by phandle name
>   - Removed 'broken-cd' property in eMMC node
>   - Added memory node
>
>  arch/arm64/boot/dts/exynos/Makefile           |   1 +
>  .../boot/dts/exynos/exynos850-e850-96.dts     | 175 ++++++++++++++++++
>  2 files changed, 176 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/exynos/exynos850-e850-96.dts
>
> diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile
> index b41e86df0a84..be9df8e85c59 100644
> --- a/arch/arm64/boot/dts/exynos/Makefile
> +++ b/arch/arm64/boot/dts/exynos/Makefile
> @@ -3,4 +3,5 @@ dtb-$(CONFIG_ARCH_EXYNOS) += \
>         exynos5433-tm2.dtb      \
>         exynos5433-tm2e.dtb     \
>         exynos7-espresso.dtb    \
> +       exynos850-e850-96.dtb   \
>         exynosautov9-sadk.dtb
> diff --git a/arch/arm64/boot/dts/exynos/exynos850-e850-96.dts b/arch/arm64/boot/dts/exynos/exynos850-e850-96.dts
> new file mode 100644
> index 000000000000..952a47c417d4
> --- /dev/null
> +++ b/arch/arm64/boot/dts/exynos/exynos850-e850-96.dts
> @@ -0,0 +1,175 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * WinLink E850-96 board device tree source
> + *
> + * Copyright (C) 2018 Samsung Electronics Co., Ltd.
> + * Copyright (C) 2021 Linaro Ltd.
> + *
> + * Device tree source file for WinLink's E850-96 board which is based on
> + * Samsung Exynos850 SoC.
> + */
> +
> +/dts-v1/;
> +
> +#include "exynos850.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +
> +/ {
> +       model = "WinLink E850-96 board";
> +       compatible = "winlink,e850-96", "samsung,exynos850";
> +
> +       chosen {
> +               stdout-path = &serial_0;
> +       };
> +
> +       /*
> +        * 4 GiB eMCP:
> +        *   - 2 GiB at 0x80000000
> +        *   - 2 GiB at 0x880000000
> +        *
> +        * 0xbab00000..0xbfffffff: secure memory (85 MiB).
> +        */
> +       memory@80000000 {
> +               device_type = "memory";
> +               reg = <0x0 0x80000000 0x3ab00000>,
> +                     <0x0 0xc0000000 0x40000000>,
> +                     <0x8 0x80000000 0x80000000>;
> +       };
> +
> +       gpio-keys {
> +               compatible = "gpio-keys";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&key_voldown_pins &key_volup_pins>;
> +
> +               volume-down-key {
> +                       label = "Volume Down";
> +                       linux,code = <KEY_VOLUMEDOWN>;
> +                       gpios = <&gpa1 0 GPIO_ACTIVE_LOW>;
> +               };
> +
> +               volume-up-key {
> +                       label = "Volume Up";
> +                       linux,code = <KEY_VOLUMEUP>;
> +                       gpios = <&gpa0 7 GPIO_ACTIVE_LOW>;
> +               };
> +       };
> +
> +       leds {
> +               compatible = "gpio-leds";
> +
> +               /* HEART_BEAT_LED */
> +               user_led1: led-1 {
> +                       label = "yellow:user1";
> +                       gpios = <&gpg2 2 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_YELLOW>;
> +                       function = LED_FUNCTION_HEARTBEAT;
> +                       linux,default-trigger = "heartbeat";
> +               };
> +
> +               /* eMMC_LED */
> +               user_led2: led-2 {
> +                       label = "yellow:user2";
> +                       gpios = <&gpg2 3 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_YELLOW>;
> +                       linux,default-trigger = "mmc0";
> +               };
> +
> +               /* SD_LED */
> +               user_led3: led-3 {
> +                       label = "white:user3";
> +                       gpios = <&gpg2 4 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_WHITE>;
> +                       function = LED_FUNCTION_SD;
> +                       linux,default-trigger = "mmc2";
> +               };
> +
> +               /* WIFI_LED */
> +               wlan_active_led: led-4 {
> +                       label = "yellow:wlan";
> +                       gpios = <&gpg2 6 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_YELLOW>;
> +                       function = LED_FUNCTION_WLAN;
> +                       linux,default-trigger = "phy0tx";
> +                       default-state = "off";
> +               };
> +
> +               /* BLUETOOTH_LED */
> +               bt_active_led: led-5 {
> +                       label = "blue:bt";
> +                       gpios = <&gpg2 7 GPIO_ACTIVE_HIGH>;
> +                       color = <LED_COLOR_ID_BLUE>;
> +                       function = LED_FUNCTION_BLUETOOTH;
> +                       linux,default-trigger = "hci0rx";
> +                       default-state = "off";
> +               };
> +       };
> +};
> +
> +&mmc_0 {
> +       status = "okay";
> +       mmc-hs200-1_8v;
> +       mmc-hs400-1_8v;
> +       cap-mmc-highspeed;
> +       non-removable;
> +       mmc-hs400-enhanced-strobe;
> +       card-detect-delay = <200>;
> +       clock-frequency = <800000000>;
> +       bus-width = <8>;
> +       samsung,dw-mshc-ciu-div = <3>;
> +       samsung,dw-mshc-sdr-timing = <0 4>;
> +       samsung,dw-mshc-ddr-timing = <2 4>;
> +       samsung,dw-mshc-hs400-timing = <0 2>;
> +
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&sd0_clk_pins &sd0_cmd_pins &sd0_rdqs_pins &sd0_nreset_pins
> +                    &sd0_bus1_pins &sd0_bus4_pins &sd0_bus8_pins>;
> +};
> +
> +&oscclk {
> +       clock-frequency = <26000000>;
> +};
> +
> +&rtc {
> +       status = "okay";
> +};
> +
> +&rtcclk {
> +       clock-frequency = <32768>;
> +};
> +
> +&serial_0 {
> +       status = "okay";
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&uart1_pins>;
> +};
> +
> +&usi_uart {
> +       samsung,clkreq-on; /* needed for UART mode */
> +       status = "okay";
> +};
> +
> +&watchdog_cl0 {
> +       status = "okay";
> +};
> +
> +&watchdog_cl1 {
> +       status = "okay";
> +};
> +
> +&pinctrl_alive {

Forgot to order pinctrl node. Will send v3 soon, sorry for the noise.

> +       key_voldown_pins: key-voldown-pins {
> +               samsung,pins = "gpa1-0";
> +               samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
> +               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
> +       };
> +
> +       key_volup_pins: key-volup-pins {
> +               samsung,pins = "gpa0-7";
> +               samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
> +               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
> +       };
> +};
> --
> 2.30.2
>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-12-17  1:37 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-17  1:29 [PATCH v2 0/7] arm64: dts: exynos: Add E850-96 board support Sam Protsenko
2021-12-17  1:29 ` Sam Protsenko
2021-12-17  1:29 ` [PATCH v2 1/7] dt-bindings: clock: exynos850: Add bindings for Exynos850 sysreg clocks Sam Protsenko
2021-12-17  1:29   ` Sam Protsenko
2021-12-17  1:30 ` [PATCH v2 2/7] clk: samsung: exynos850: Add missing " Sam Protsenko
2021-12-17  1:30   ` Sam Protsenko
2021-12-17  1:30 ` [PATCH v2 3/7] dt-bindings: Add vendor prefix for WinLink Sam Protsenko
2021-12-17  1:30   ` Sam Protsenko
2021-12-17  1:30 ` [PATCH v2 4/7] dt-bindings: arm: samsung: Document E850-96 board binding Sam Protsenko
2021-12-17  1:30   ` Sam Protsenko
2021-12-17  1:30 ` [PATCH v2 5/7] dt-bindings: pinctrl: samsung: Add pin drive definitions for Exynos850 Sam Protsenko
2021-12-17  1:30   ` Sam Protsenko
2021-12-17  1:30 ` [PATCH v2 6/7] arm64: dts: exynos: Add initial Exynos850 SoC support Sam Protsenko
2021-12-17  1:30   ` Sam Protsenko
2021-12-17  1:30 ` [PATCH v2 7/7] arm64: dts: exynos: Add initial E850-96 board support Sam Protsenko
2021-12-17  1:30   ` Sam Protsenko
2021-12-17  1:37   ` Sam Protsenko [this message]
2021-12-17  1:37     ` Sam Protsenko

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='CAPLW+4nSAjugncJkr49k=nkWiKXs-mo16_qfq1KRGkaaWu-R7Q@mail.gmail.com' \
    --to=semen.protsenko@linaro.org \
    --cc=chanho61.park@samsung.com \
    --cc=cw00.choi@samsung.com \
    --cc=daniel@0x0f.com \
    --cc=devicetree@vger.kernel.org \
    --cc=fanghao11@huawei.com \
    --cc=jaewon02.kim@samsung.com \
    --cc=krzysztof.kozlowski@canonical.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=robh+dt@kernel.org \
    --cc=s.nawrocki@samsung.com \
    --cc=sboyd@kernel.org \
    --cc=tomasz.figa@gmail.com \
    --cc=virag.david003@gmail.com \
    --cc=youngmin.nam@samsung.com \
    /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.