All of lore.kernel.org
 help / color / mirror / Atom feed
From: nicolas.ferre@atmel.com (Nicolas Ferre)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 11/11] ARM: at91: switch Calao QIL-A9260 board to DT
Date: Fri, 13 Dec 2013 12:08:23 +0100	[thread overview]
Message-ID: <52AAEAA7.4030206@atmel.com> (raw)
In-Reply-To: <1384527006-9040-11-git-send-email-plagnioj@jcrosoft.com>

On 15/11/2013 15:50, Jean-Christophe PLAGNIOL-VILLARD :
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>

I corrected several errors: for other patches please check that the same
errors are not applying:
- typo in file header: s/Caloa/Calao/
- DT nodes in address ascending order
- incomplete command line:
  1/ no "mem" parameter, please
  2/ ubi rootfs specification parameters not complete
- node addresses for MTD partitions not aligned with node name
  (I mean, part after the @)

I will not do the same for other patches. So if you identify such
errors, please correct them...

Bye,

> ---
>  arch/arm/boot/dts/Makefile                  |   1 +
>  arch/arm/boot/dts/at91-qil_a9260.dts        | 185 +++++++++++++++++++
>  arch/arm/configs/at91sam9260_9g20_defconfig |   1 -
>  arch/arm/mach-at91/Kconfig.non_dt           |   6 -
>  arch/arm/mach-at91/Makefile                 |   1 -
>  arch/arm/mach-at91/board-qil-a9260.c        | 266 ----------------------------
>  6 files changed, 186 insertions(+), 274 deletions(-)
>  create mode 100644 arch/arm/boot/dts/at91-qil_a9260.dts
>  delete mode 100644 arch/arm/mach-at91/board-qil-a9260.c
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index d042c68..1de1ba2 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_AT91) += at91-rsi-ews.dtb
>  dtb-$(CONFIG_ARCH_AT91) += mpa1600.dtb
>  # sam9260
>  dtb-$(CONFIG_ARCH_AT91) += animeo_ip.dtb
> +dtb-$(CONFIG_ARCH_AT91) += at91-qil_a9260.dtb
>  dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb
>  dtb-$(CONFIG_ARCH_AT91) += ethernut5.dtb
>  dtb-$(CONFIG_ARCH_AT91) += evk-pro3.dtb
> diff --git a/arch/arm/boot/dts/at91-qil_a9260.dts b/arch/arm/boot/dts/at91-qil_a9260.dts
> new file mode 100644
> index 0000000..d3d52dd
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-qil_a9260.dts
> @@ -0,0 +1,185 @@
> +/*
> + * at91-qil_a9260.dts - Device Tree file for Caloa QIL A9260 board
> + *
> + * Copyright (C) 2011-2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> + *
> + * Licensed under GPLv2.
> + */
> +/dts-v1/;
> +#include "at91sam9260.dtsi"
> +/ {
> +	model = "Calao QIL A9260";
> +	compatible = "calao,qil-a9260", "atmel,at91sam9260", "atmel,at91sam9";
> +
> +	chosen {
> +		bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs";
> +	};
> +
> +	memory {
> +		reg = <0x20000000 0x4000000>;
> +	};
> +
> +	clocks {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		main_clock: clock at 0 {
> +			compatible = "atmel,osc", "fixed-clock";
> +			clock-frequency = <12000000>;
> +		};
> +	};
> +
> +	ahb {
> +		apb {
> +			shdwc at fffffd10 {
> +				atmel,wakeup-counter = <10>;
> +				atmel,wakeup-rtt-timer;
> +			};
> +
> +			dbgu: serial at fffff200 {
> +				status = "okay";
> +			};
> +
> +			usart0: serial at fffb0000 {
> +				pinctrl-0 =
> +					<&pinctrl_usart0
> +					 &pinctrl_usart0_rts
> +					 &pinctrl_usart0_cts
> +					 &pinctrl_usart0_dtr_dsr
> +					 &pinctrl_usart0_dcd
> +					 &pinctrl_usart0_ri>;
> +				status = "okay";
> +			};
> +
> +			usart1: serial at fffb4000 {
> +				pinctrl-0 =
> +					<&pinctrl_usart1
> +					 &pinctrl_usart1_rts
> +					 &pinctrl_usart1_cts>;
> +				status = "okay";
> +			};
> +
> +			usart2: serial at fffb8000 {
> +				pinctrl-0 =
> +					<&pinctrl_usart2
> +					 &pinctrl_usart2_rts
> +					 &pinctrl_usart2_cts>;
> +				status = "okay";
> +			};
> +
> +			macb0: ethernet at fffc4000 {
> +				phy-mode = "rmii";
> +				status = "okay";
> +			};
> +
> +			usb1: gadget at fffa4000 {
> +				atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
> +				status = "okay";
> +			};
> +
> +			spi0: spi at fffc8000 {
> +				status = "okay";
> +				cs-gpios = <&pioA 3 GPIO_ACTIVE_HIGH>;
> +
> +				m41t94 at 0 {
> +					compatible = "st,m41t94";
> +					reg = <0>;
> +					spi-max-frequency = <1000000>;
> +				};
> +
> +			};
> +
> +			mmc0: mmc at fffa8000 {
> +				pinctrl-0 = <
> +					&pinctrl_mmc0_clk
> +					&pinctrl_mmc0_slot0_cmd_dat0
> +					&pinctrl_mmc0_slot0_dat1_3>;
> +				status = "okay";
> +				slot at 0 {
> +					reg = <0>;
> +					bus-width = <4>;
> +				};
> +			};
> +		};
> +
> +		nand0: nand at 40000000 {
> +			nand-bus-width = <8>;
> +			nand-ecc-mode = "soft";
> +			nand-on-flash-bbt;
> +			status = "okay";
> +
> +			at91bootstrap at 0 {
> +				label = "at91bootstrap";
> +				reg = <0x0 0x20000>;
> +			};
> +
> +			barebox at 20000 {
> +				label = "barebox";
> +				reg = <0x20000 0x40000>;
> +			};
> +
> +			bareboxenv at 60000 {
> +				label = "bareboxenv";
> +				reg = <0x60000 0x20000>;
> +			};
> +
> +			bareboxenv2 at 80000 {
> +				label = "bareboxenv2";
> +				reg = <0x80000 0x20000>;
> +			};
> +
> +			oftree at 80000 {
> +				label = "oftree";
> +				reg = <0xa0000 0x20000>;
> +			};
> +
> +			kernel at a0000 {
> +				label = "kernel";
> +				reg = <0xc0000 0x400000>;
> +			};
> +
> +			rootfs at 4a0000 {
> +				label = "rootfs";
> +				reg = <0x4c0000 0x7800000>;
> +			};
> +
> +			data at 7ca0000 {
> +				label = "data";
> +				reg = <0x7cc0000 0x8340000>;
> +			};
> +		};
> +
> +		usb0: ohci at 00500000 {
> +			num-ports = <2>;
> +			status = "okay";
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		user_led {
> +			label = "user_led";
> +			gpios = <&pioB 21 GPIO_ACTIVE_HIGH>;
> +			linux,default-trigger = "heartbeat";
> +		};
> +	};
> +
> +	gpio_keys {
> +		compatible = "gpio-keys";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		user_pb {
> +			label = "user_pb";
> +			gpios = <&pioB 10 GPIO_ACTIVE_LOW>;
> +			linux,code = <28>;
> +			gpio-key,wakeup;
> +		};
> +	};
> +
> +	i2c at 0 {
> +		status = "okay";
> +	};
> +};
> diff --git a/arch/arm/configs/at91sam9260_9g20_defconfig b/arch/arm/configs/at91sam9260_9g20_defconfig
> index ab66867..64700c31 100644
> --- a/arch/arm/configs/at91sam9260_9g20_defconfig
> +++ b/arch/arm/configs/at91sam9260_9g20_defconfig
> @@ -15,7 +15,6 @@ CONFIG_MACH_AT91SAM9260EK=y
>  CONFIG_MACH_CAM60=y
>  CONFIG_MACH_SAM9_L9260=y
>  CONFIG_MACH_AFEB9260=y
> -CONFIG_MACH_QIL_A9260=y
>  CONFIG_MACH_CPU9260=y
>  CONFIG_MACH_AT91SAM9G20EK=y
>  CONFIG_MACH_AT91SAM9G20EK_2MMC=y
> diff --git a/arch/arm/mach-at91/Kconfig.non_dt b/arch/arm/mach-at91/Kconfig.non_dt
> index c193a13..d16075a 100644
> --- a/arch/arm/mach-at91/Kconfig.non_dt
> +++ b/arch/arm/mach-at91/Kconfig.non_dt
> @@ -128,12 +128,6 @@ config MACH_AFEB9260
>  	  <svn://194.85.238.22/home/users/george/svn/arm9eb>
>  	  <http://groups.google.com/group/arm9fpga-evolution-board>
>  
> -config MACH_QIL_A9260
> -	bool "CALAO QIL-A9260 board"
> -	help
> -	  Select this if you are using a Calao Systems QIL-A9260 Board.
> -	  <http://www.calao-systems.com>
> -
>  config MACH_CPU9260
>  	bool "Eukrea CPU9260 board"
>  	help
> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
> index 8eda4b0..fb9ecd4 100644
> --- a/arch/arm/mach-at91/Makefile
> +++ b/arch/arm/mach-at91/Makefile
> @@ -44,7 +44,6 @@ obj-$(CONFIG_MACH_ECO920)	+= board-eco920.o
>  obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o
>  obj-$(CONFIG_MACH_CAM60)	+= board-cam60.o
>  obj-$(CONFIG_MACH_SAM9_L9260)	+= board-sam9-l9260.o
> -obj-$(CONFIG_MACH_QIL_A9260)	+= board-qil-a9260.o
>  obj-$(CONFIG_MACH_AFEB9260)	+= board-afeb-9260v1.o
>  obj-$(CONFIG_MACH_CPU9260)	+= board-cpu9krea.o
>  
> diff --git a/arch/arm/mach-at91/board-qil-a9260.c b/arch/arm/mach-at91/board-qil-a9260.c
> deleted file mode 100644
> index aa3bc9b..0000000
> --- a/arch/arm/mach-at91/board-qil-a9260.c
> +++ /dev/null
> @@ -1,266 +0,0 @@
> -/*
> - * linux/arch/arm/mach-at91/board-qil-a9260.c
> - *
> - *  Copyright (C) 2005 SAN People
> - *  Copyright (C) 2006 Atmel
> - *  Copyright (C) 2007 Calao-systems
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> - */
> -
> -#include <linux/types.h>
> -#include <linux/gpio.h>
> -#include <linux/init.h>
> -#include <linux/mm.h>
> -#include <linux/module.h>
> -#include <linux/platform_device.h>
> -#include <linux/spi/spi.h>
> -#include <linux/gpio_keys.h>
> -#include <linux/input.h>
> -#include <linux/clk.h>
> -
> -#include <asm/setup.h>
> -#include <asm/mach-types.h>
> -#include <asm/irq.h>
> -
> -#include <asm/mach/arch.h>
> -#include <asm/mach/map.h>
> -#include <asm/mach/irq.h>
> -
> -#include <mach/hardware.h>
> -#include <mach/at91sam9_smc.h>
> -
> -#include "at91_aic.h"
> -#include "at91_shdwc.h"
> -#include "board.h"
> -#include "sam9_smc.h"
> -#include "generic.h"
> -
> -
> -static void __init ek_init_early(void)
> -{
> -	/* Initialize processor: 12.000 MHz crystal */
> -	at91_initialize(12000000);
> -}
> -
> -/*
> - * USB Host port
> - */
> -static struct at91_usbh_data __initdata ek_usbh_data = {
> -	.ports		= 2,
> -	.vbus_pin	= {-EINVAL, -EINVAL},
> -	.overcurrent_pin= {-EINVAL, -EINVAL},
> -};
> -
> -/*
> - * USB Device port
> - */
> -static struct at91_udc_data __initdata ek_udc_data = {
> -	.vbus_pin	= AT91_PIN_PC5,
> -	.pullup_pin	= -EINVAL,		/* pull-up driven by UDC */
> -};
> -
> -/*
> - * SPI devices.
> - */
> -static struct spi_board_info ek_spi_devices[] = {
> -#if defined(CONFIG_RTC_DRV_M41T94)
> -	{	/* M41T94 RTC */
> -		.modalias	= "m41t94",
> -		.chip_select	= 0,
> -		.max_speed_hz	= 1 * 1000 * 1000,
> -		.bus_num	= 0,
> -	}
> -#endif
> -};
> -
> -/*
> - * MACB Ethernet device
> - */
> -static struct macb_platform_data __initdata ek_macb_data = {
> -	.phy_irq_pin	= AT91_PIN_PA31,
> -	.is_rmii	= 1,
> -};
> -
> -/*
> - * NAND flash
> - */
> -static struct mtd_partition __initdata ek_nand_partition[] = {
> -	{
> -		.name	= "Uboot & Kernel",
> -		.offset	= 0,
> -		.size	= SZ_16M,
> -	},
> -	{
> -		.name	= "Root FS",
> -		.offset	= MTDPART_OFS_NXTBLK,
> -		.size	= 120 * SZ_1M,
> -	},
> -	{
> -		.name	= "FS",
> -		.offset	= MTDPART_OFS_NXTBLK,
> -		.size	= 120 * SZ_1M,
> -	},
> -};
> -
> -static struct atmel_nand_data __initdata ek_nand_data = {
> -	.ale		= 21,
> -	.cle		= 22,
> -	.det_pin	= -EINVAL,
> -	.rdy_pin	= AT91_PIN_PC13,
> -	.enable_pin	= AT91_PIN_PC14,
> -	.ecc_mode	= NAND_ECC_SOFT,
> -	.on_flash_bbt	= 1,
> -	.parts		= ek_nand_partition,
> -	.num_parts	= ARRAY_SIZE(ek_nand_partition),
> -};
> -
> -static struct sam9_smc_config __initdata ek_nand_smc_config = {
> -	.ncs_read_setup		= 0,
> -	.nrd_setup		= 1,
> -	.ncs_write_setup	= 0,
> -	.nwe_setup		= 1,
> -
> -	.ncs_read_pulse		= 3,
> -	.nrd_pulse		= 3,
> -	.ncs_write_pulse	= 3,
> -	.nwe_pulse		= 3,
> -
> -	.read_cycle		= 5,
> -	.write_cycle		= 5,
> -
> -	.mode			= AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE | AT91_SMC_DBW_8,
> -	.tdf_cycles		= 2,
> -};
> -
> -static void __init ek_add_device_nand(void)
> -{
> -	/* configure chip-select 3 (NAND) */
> -	sam9_smc_configure(0, 3, &ek_nand_smc_config);
> -
> -	at91_add_device_nand(&ek_nand_data);
> -}
> -
> -/*
> - * MCI (SD/MMC)
> - */
> -static struct mci_platform_data __initdata ek_mci0_data = {
> -	.slot[0] = {
> -		.bus_width	= 4,
> -		.detect_pin	= -EINVAL,
> -		.wp_pin		= -EINVAL,
> -	},
> -};
> -
> -/*
> - * GPIO Buttons
> - */
> -#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
> -static struct gpio_keys_button ek_buttons[] = {
> -	{	/* USER PUSH BUTTON */
> -		.code		= KEY_ENTER,
> -		.gpio		= AT91_PIN_PB10,
> -		.active_low	= 1,
> -		.desc		= "user_pb",
> -		.wakeup		= 1,
> -	}
> -};
> -
> -static struct gpio_keys_platform_data ek_button_data = {
> -	.buttons	= ek_buttons,
> -	.nbuttons	= ARRAY_SIZE(ek_buttons),
> -};
> -
> -static struct platform_device ek_button_device = {
> -	.name		= "gpio-keys",
> -	.id		= -1,
> -	.num_resources	= 0,
> -	.dev		= {
> -		.platform_data	= &ek_button_data,
> -	}
> -};
> -
> -static void __init ek_add_device_buttons(void)
> -{
> -	at91_set_GPIO_periph(AT91_PIN_PB10, 1);	/* user push button, pull up enabled */
> -	at91_set_deglitch(AT91_PIN_PB10, 1);
> -
> -	platform_device_register(&ek_button_device);
> -}
> -#else
> -static void __init ek_add_device_buttons(void) {}
> -#endif
> -
> -/*
> - * LEDs
> - */
> -static struct gpio_led ek_leds[] = {
> -	{	/* user_led (green) */
> -		.name			= "user_led",
> -		.gpio			= AT91_PIN_PB21,
> -		.active_low		= 0,
> -		.default_trigger	= "heartbeat",
> -	}
> -};
> -
> -static void __init ek_board_init(void)
> -{
> -	/* Serial */
> -	/* DBGU on ttyS0. (Rx & Tx only) */
> -	at91_register_uart(0, 0, 0);
> -
> -	/* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
> -	at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
> -			   | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
> -			   | ATMEL_UART_RI);
> -
> -	/* USART1 on ttyS2. (Rx, Tx, CTS, RTS) */
> -	at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
> -
> -	/* USART2 on ttyS3. (Rx, Tx, CTS, RTS) */
> -	at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_CTS | ATMEL_UART_RTS);
> -	at91_add_device_serial();
> -	/* USB Host */
> -	at91_add_device_usbh(&ek_usbh_data);
> -	/* USB Device */
> -	at91_add_device_udc(&ek_udc_data);
> -	/* SPI */
> -	at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
> -	/* NAND */
> -	ek_add_device_nand();
> -	/* I2C */
> -	at91_add_device_i2c(NULL, 0);
> -	/* Ethernet */
> -	at91_add_device_eth(&ek_macb_data);
> -	/* MMC */
> -	at91_add_device_mci(0, &ek_mci0_data);
> -	/* Push Buttons */
> -	ek_add_device_buttons();
> -	/* LEDs */
> -	at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
> -	/* shutdown controller, wakeup button (5 msec low) */
> -	at91_shdwc_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10) | AT91_SHDW_WKMODE0_LOW
> -				| AT91_SHDW_RTTWKEN);
> -}
> -
> -MACHINE_START(QIL_A9260, "CALAO QIL_A9260")
> -	/* Maintainer: calao-systems */
> -	.init_time	= at91sam926x_pit_init,
> -	.map_io		= at91_map_io,
> -	.handle_irq	= at91_aic_handle_irq,
> -	.init_early	= ek_init_early,
> -	.init_irq	= at91_init_irq_default,
> -	.init_machine	= ek_board_init,
> -MACHINE_END
> 


-- 
Nicolas Ferre

  reply	other threads:[~2013-12-13 11:08 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-15 14:38 [PATCH 00/11] ARM: at91: DT: switch C board to DT Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:49 ` [PATCH 01/11] ARM: at91: dt: at91rm9200ek: add emac and nor flash support Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:49   ` [PATCH 02/11] ARM: at91: switch 1arm to DT Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 16:10     ` boris brezillon
2013-11-15 17:41       ` Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 18:27         ` boris brezillon
2013-11-15 18:33           ` Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 17:27     ` boris brezillon
2013-11-15 14:49   ` [PATCH 03/11] ARM: at91: switch carmeva " Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:49   ` [PATCH 04/11] ARM: at91: switch kafa board " Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:50   ` [PATCH 05/11] ARM: at91: switch flexibity " Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:50   ` [PATCH 06/11] ARM: at91: switch RSI EWS board " Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:50   ` [PATCH 07/11] ARM: at91: switch Picotux 200 " Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:50   ` [PATCH 08/11] ARM: at91: switch ecbat91 " Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:50   ` [PATCH 09/11] ARM: at91: switch kb9202 " Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:50   ` [PATCH 10/11] ARM: at91: switch csb637 " Jean-Christophe PLAGNIOL-VILLARD
2013-11-15 14:50   ` [PATCH 11/11] ARM: at91: switch Calao QIL-A9260 " Jean-Christophe PLAGNIOL-VILLARD
2013-12-13 11:08     ` Nicolas Ferre [this message]
2013-12-13 11:12     ` [PATCH v2 " Nicolas Ferre
2013-11-15 16:03   ` [PATCH 01/11] ARM: at91: dt: at91rm9200ek: add emac and nor flash support boris brezillon
2013-12-09 11:42 ` [PATCH 00/11] ARM: at91: DT: switch C board to DT Nicolas Ferre

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=52AAEAA7.4030206@atmel.com \
    --to=nicolas.ferre@atmel.com \
    --cc=linux-arm-kernel@lists.infradead.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.