All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tero Kristo <t-kristo@ti.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"paul@pwsan.com" <paul@pwsan.com>,
	"tony@atomide.com" <tony@atomide.com>, "nm@ti.com" <nm@ti.com>,
	"rnayak@ti.com" <rnayak@ti.com>,
	"mturquette@linaro.org" <mturquette@linaro.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCHv5 05/31] CLK: TI: add support for OMAP gate clock
Date: Mon, 19 Aug 2013 19:19:26 +0300	[thread overview]
Message-ID: <5212458E.906@ti.com> (raw)
In-Reply-To: <20130819155830.GR3719@e106331-lin.cambridge.arm.com>

On 08/19/2013 06:58 PM, Mark Rutland wrote:
> On Mon, Aug 19, 2013 at 03:43:15PM +0100, Tero Kristo wrote:
>> On 08/19/2013 05:29 PM, Mark Rutland wrote:
>>> On Mon, Aug 19, 2013 at 02:42:05PM +0100, Tero Kristo wrote:
>>>> On 08/13/2013 02:04 PM, Mark Rutland wrote:
>>>>> On Fri, Aug 02, 2013 at 05:25:24PM +0100, Tero Kristo wrote:
>>>>>> This node adds support for a clock node which allows control to the
>>>>>> clockdomain enable / disable.
>>>>>>
>>>>>> Signed-off-by: Tero Kristo <t-kristo@ti.com>
>>>>>> ---
>>>>>>     .../devicetree/bindings/clock/ti/gate.txt          |   41 ++++++++
>>>>>>     arch/arm/mach-omap2/clock.h                        |    9 --
>>>>>>     drivers/clk/ti/Makefile                            |    2 +-
>>>>>>     drivers/clk/ti/gate.c                              |  106 ++++++++++++++++++++
>>>>>>     include/linux/clk/ti.h                             |    8 ++
>>>>>>     5 files changed, 156 insertions(+), 10 deletions(-)
>>>>>>     create mode 100644 Documentation/devicetree/bindings/clock/ti/gate.txt
>>>>>>     create mode 100644 drivers/clk/ti/gate.c
>>>>>>
>>>>>> diff --git a/Documentation/devicetree/bindings/clock/ti/gate.txt b/Documentation/devicetree/bindings/clock/ti/gate.txt
>>>>>> new file mode 100644
>>>>>> index 0000000..620a73d
>>>>>> --- /dev/null
>>>>>> +++ b/Documentation/devicetree/bindings/clock/ti/gate.txt
>>>>>> @@ -0,0 +1,41 @@
>>>>>> +Binding for Texas Instruments gate clock.
>>>>>> +
>>>>>> +This binding uses the common clock binding[1]. This clock is
>>>>>> +quite much similar to the basic gate-clock [2], however,
>>>>>> +it supports a number of additional features. If no register
>>>>>> +is provided for this clock, the code assumes that a clockdomain
>>>>>> +will be controlled instead and the corresponding hw-ops for
>>>>>> +that is used.
>>>>>> +
>>>>>> +[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
>>>>>> +[2] Documentation/devicetree/bindings/clock/gate-clock.txt
>>>>>> +
>>>>>> +Required properties:
>>>>>> +- compatible : shall be "ti,gate-clock"
>>>>>> +- #clock-cells : from common clock binding; shall be set to 0
>>>>>> +- clocks : link to phandle of parent clock
>>>>>> +
>>>>>> +Optional properties:
>>>>>> +- reg : base address for register controlling adjustable gate
>>>>>
>>>>> Optional? That's odd. If I have a clock with registers, but don't
>>>>> specify the register, will it still work? i.e. are registerless clocks
>>>>> really compatible with clocks with registers?.
>>>>
>>>> I think I implemented this in somewhat confusing manner. This could be
>>>> split to:
>>>>
>>>> ti,gate-clock:
>>>>      requires reg and ti,enable-bit info
>>>> ti,clkdm-clock:
>>>>      requires ti,clkdm-name
>>>>
>>>> clkdm clock is kind of a master clock for clockdomain, the clock is
>>>> provided always if the clockdomain is active.
>>>
>>> Ok.
>>>
>>>>
>>>>>
>>>>>> +- ti,enable-bit : bit shift for programming the clock gate
>>>>>
>>>>> Why is this needed? Does the hardware vary wildly, or are several clocks
>>>>> sharing the same register(s)?
>>>>
>>>> Yea, same register is shared.
>>>
>>> Ok. Are those gate clocks are part of a larger "gate clocks" block, with
>>> the register that controls them? or are they really independent? Does
>>> the register control other items too?
>>
>> Not really. Typically they only have the clockdomain in common, and the
>> individual clocks are mostly controlled independently from each other.
>> For example on omap3 we have following register:
>
> You say they typically only have the clockdomain in common. Do you mean
> that they always have the same clockdomain, but not necessarily other
> properties, or may they not even have the clockdomain in common?

Currently it seems if the clocks share a register, they are in the same 
clockdomain (I guess this is something that might also change in 
future.) The input clocks can be different (some are using the same), 
and the outputs are routed to different destinations on the SoC. For the 
below example, GPTs can have either sys_ck or 32k_ck as parent, UARTs 
are fed from 48M clock etc.

>
>>
>> CM_FCLKEN_PER
>> Physical Address 0x4800 5000
>> BIT31:19 RESERVED Write 0s for future compatibility. Read returns 0.
>> BIT18 EN_UART4 UART4 functional clock control.
>> BIT17 EN_GPIO6 GPIO6 functional clock control.
>> BIT16 EN_GPIO5 GPIO5 functional clock control.
>> BIT15 EN_GPIO4 GPIO4 functional clock control.
>> BIT14 EN_GPIO3 GPIO3 functional clock control.
>> BIT13 EN_GPIO2 GPIO2 functional clock control.
>> BIT12 EN_WDT3 WDT3 functional clock control.
>> BIT11 EN_UART3 Type UART3 functional clock control.
>> BIT10 EN_GPT9 GPTIMER 9 functional clock control.
>> BIT9 EN_GPT8 GPTIMER 8 functional clock control.
>> BIT8 EN_GPT7 GPTIMER 7 functional clock control.
>> BIT7 EN_GPT6 GPTIMER 6 functional clock control.
>> BIT6 EN_GPT5 GPTIMER 5 functional clock control.
>> BIT5 EN_GPT4 GPTIMER 4 functional clock control.
>> BIT4 EN_GPT3GPTIMER 3 functional clock control.
>> BIT3 EN_GPT2 GPTIMER 2 functional clock control.
>> BIT2 EN_MCBSP4 McBSP 4 functional clock control.
>> BIT1 EN_MCBSP3 McBSP3 functional clock control.
>> BIT0 EN_MCBSP2 McBSP 2 functional clock control.
>>
>> So multiple drivers will be using this register for example.
>
> The point I was trying to get across is that this looks like a single
> logical block which controls the (independent) gating of several clocks,
> along the same lines as multiple swtiches bound together in a DIP
> switch.
>
> It's equally valid to view that as several clock gates which happen to
> have their control bits in close proximity in the memory map, as you
> suggest.

For clarity, I think it is better to have the clocks as separate nodes, 
as otherwise specifying the mapping for individual clocks becomes a pain 
for the layers that are going to use the clock mapping. You would end up 
with obfuscated name for UART3 / GPTIMER5 for example, and this would be 
rather error prone approach also if I understand your point correctly.

-Tero

>
> Thanks,
> Mark.
>


WARNING: multiple messages have this Message-ID (diff)
From: t-kristo@ti.com (Tero Kristo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv5 05/31] CLK: TI: add support for OMAP gate clock
Date: Mon, 19 Aug 2013 19:19:26 +0300	[thread overview]
Message-ID: <5212458E.906@ti.com> (raw)
In-Reply-To: <20130819155830.GR3719@e106331-lin.cambridge.arm.com>

On 08/19/2013 06:58 PM, Mark Rutland wrote:
> On Mon, Aug 19, 2013 at 03:43:15PM +0100, Tero Kristo wrote:
>> On 08/19/2013 05:29 PM, Mark Rutland wrote:
>>> On Mon, Aug 19, 2013 at 02:42:05PM +0100, Tero Kristo wrote:
>>>> On 08/13/2013 02:04 PM, Mark Rutland wrote:
>>>>> On Fri, Aug 02, 2013 at 05:25:24PM +0100, Tero Kristo wrote:
>>>>>> This node adds support for a clock node which allows control to the
>>>>>> clockdomain enable / disable.
>>>>>>
>>>>>> Signed-off-by: Tero Kristo <t-kristo@ti.com>
>>>>>> ---
>>>>>>     .../devicetree/bindings/clock/ti/gate.txt          |   41 ++++++++
>>>>>>     arch/arm/mach-omap2/clock.h                        |    9 --
>>>>>>     drivers/clk/ti/Makefile                            |    2 +-
>>>>>>     drivers/clk/ti/gate.c                              |  106 ++++++++++++++++++++
>>>>>>     include/linux/clk/ti.h                             |    8 ++
>>>>>>     5 files changed, 156 insertions(+), 10 deletions(-)
>>>>>>     create mode 100644 Documentation/devicetree/bindings/clock/ti/gate.txt
>>>>>>     create mode 100644 drivers/clk/ti/gate.c
>>>>>>
>>>>>> diff --git a/Documentation/devicetree/bindings/clock/ti/gate.txt b/Documentation/devicetree/bindings/clock/ti/gate.txt
>>>>>> new file mode 100644
>>>>>> index 0000000..620a73d
>>>>>> --- /dev/null
>>>>>> +++ b/Documentation/devicetree/bindings/clock/ti/gate.txt
>>>>>> @@ -0,0 +1,41 @@
>>>>>> +Binding for Texas Instruments gate clock.
>>>>>> +
>>>>>> +This binding uses the common clock binding[1]. This clock is
>>>>>> +quite much similar to the basic gate-clock [2], however,
>>>>>> +it supports a number of additional features. If no register
>>>>>> +is provided for this clock, the code assumes that a clockdomain
>>>>>> +will be controlled instead and the corresponding hw-ops for
>>>>>> +that is used.
>>>>>> +
>>>>>> +[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
>>>>>> +[2] Documentation/devicetree/bindings/clock/gate-clock.txt
>>>>>> +
>>>>>> +Required properties:
>>>>>> +- compatible : shall be "ti,gate-clock"
>>>>>> +- #clock-cells : from common clock binding; shall be set to 0
>>>>>> +- clocks : link to phandle of parent clock
>>>>>> +
>>>>>> +Optional properties:
>>>>>> +- reg : base address for register controlling adjustable gate
>>>>>
>>>>> Optional? That's odd. If I have a clock with registers, but don't
>>>>> specify the register, will it still work? i.e. are registerless clocks
>>>>> really compatible with clocks with registers?.
>>>>
>>>> I think I implemented this in somewhat confusing manner. This could be
>>>> split to:
>>>>
>>>> ti,gate-clock:
>>>>      requires reg and ti,enable-bit info
>>>> ti,clkdm-clock:
>>>>      requires ti,clkdm-name
>>>>
>>>> clkdm clock is kind of a master clock for clockdomain, the clock is
>>>> provided always if the clockdomain is active.
>>>
>>> Ok.
>>>
>>>>
>>>>>
>>>>>> +- ti,enable-bit : bit shift for programming the clock gate
>>>>>
>>>>> Why is this needed? Does the hardware vary wildly, or are several clocks
>>>>> sharing the same register(s)?
>>>>
>>>> Yea, same register is shared.
>>>
>>> Ok. Are those gate clocks are part of a larger "gate clocks" block, with
>>> the register that controls them? or are they really independent? Does
>>> the register control other items too?
>>
>> Not really. Typically they only have the clockdomain in common, and the
>> individual clocks are mostly controlled independently from each other.
>> For example on omap3 we have following register:
>
> You say they typically only have the clockdomain in common. Do you mean
> that they always have the same clockdomain, but not necessarily other
> properties, or may they not even have the clockdomain in common?

Currently it seems if the clocks share a register, they are in the same 
clockdomain (I guess this is something that might also change in 
future.) The input clocks can be different (some are using the same), 
and the outputs are routed to different destinations on the SoC. For the 
below example, GPTs can have either sys_ck or 32k_ck as parent, UARTs 
are fed from 48M clock etc.

>
>>
>> CM_FCLKEN_PER
>> Physical Address 0x4800 5000
>> BIT31:19 RESERVED Write 0s for future compatibility. Read returns 0.
>> BIT18 EN_UART4 UART4 functional clock control.
>> BIT17 EN_GPIO6 GPIO6 functional clock control.
>> BIT16 EN_GPIO5 GPIO5 functional clock control.
>> BIT15 EN_GPIO4 GPIO4 functional clock control.
>> BIT14 EN_GPIO3 GPIO3 functional clock control.
>> BIT13 EN_GPIO2 GPIO2 functional clock control.
>> BIT12 EN_WDT3 WDT3 functional clock control.
>> BIT11 EN_UART3 Type UART3 functional clock control.
>> BIT10 EN_GPT9 GPTIMER 9 functional clock control.
>> BIT9 EN_GPT8 GPTIMER 8 functional clock control.
>> BIT8 EN_GPT7 GPTIMER 7 functional clock control.
>> BIT7 EN_GPT6 GPTIMER 6 functional clock control.
>> BIT6 EN_GPT5 GPTIMER 5 functional clock control.
>> BIT5 EN_GPT4 GPTIMER 4 functional clock control.
>> BIT4 EN_GPT3GPTIMER 3 functional clock control.
>> BIT3 EN_GPT2 GPTIMER 2 functional clock control.
>> BIT2 EN_MCBSP4 McBSP 4 functional clock control.
>> BIT1 EN_MCBSP3 McBSP3 functional clock control.
>> BIT0 EN_MCBSP2 McBSP 2 functional clock control.
>>
>> So multiple drivers will be using this register for example.
>
> The point I was trying to get across is that this looks like a single
> logical block which controls the (independent) gating of several clocks,
> along the same lines as multiple swtiches bound together in a DIP
> switch.
>
> It's equally valid to view that as several clock gates which happen to
> have their control bits in close proximity in the memory map, as you
> suggest.

For clarity, I think it is better to have the clocks as separate nodes, 
as otherwise specifying the mapping for individual clocks becomes a pain 
for the layers that are going to use the clock mapping. You would end up 
with obfuscated name for UART3 / GPTIMER5 for example, and this would be 
rather error prone approach also if I understand your point correctly.

-Tero

>
> Thanks,
> Mark.
>

  reply	other threads:[~2013-08-19 16:19 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-02 16:25 [PATCHv5 00/31] CLK: OMAP conversion to DT Tero Kristo
2013-08-02 16:25 ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 01/31] CLK: clkdev: add support for looking up clocks from DT Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-03 14:02   ` Tomasz Figa
2013-08-03 14:02     ` Tomasz Figa
2013-08-03 18:35     ` Russell King - ARM Linux
2013-08-03 18:35       ` Russell King - ARM Linux
2013-08-03 18:39       ` Tomasz Figa
2013-08-03 18:39         ` Tomasz Figa
2013-08-03 18:48         ` Russell King - ARM Linux
2013-08-03 18:48           ` Russell King - ARM Linux
2013-08-03 19:04           ` Tomasz Figa
2013-08-03 19:04             ` Tomasz Figa
2013-08-19  9:12             ` Tero Kristo
2013-08-19  9:12               ` Tero Kristo
2013-08-03 18:31   ` Russell King - ARM Linux
2013-08-03 18:31     ` Russell King - ARM Linux
2013-08-26 14:36     ` Tero Kristo
2013-08-26 14:36       ` Tero Kristo
2013-08-26 17:03       ` Russell King - ARM Linux
2013-08-26 17:03         ` Russell King - ARM Linux
2013-08-26 18:12         ` Tero Kristo
2013-08-26 18:12           ` Tero Kristo
2013-08-27  6:55           ` Tony Lindgren
2013-08-27  6:55             ` Tony Lindgren
2013-08-02 16:25 ` [PATCHv5 02/31] CLK: TI: Add DPLL clock support Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-13 10:50   ` Mark Rutland
2013-08-13 10:50     ` Mark Rutland
2013-08-19 13:34     ` Tero Kristo
2013-08-19 13:34       ` Tero Kristo
2013-08-19 14:18       ` Mark Rutland
2013-08-19 14:18         ` Mark Rutland
2013-08-19 15:09         ` Tero Kristo
2013-08-19 15:09           ` Tero Kristo
2013-08-19 16:24           ` Mark Rutland
2013-08-19 16:24             ` Mark Rutland
2013-08-19 17:06             ` Tero Kristo
2013-08-19 17:06               ` Tero Kristo
2013-08-19 22:00               ` Mike Turquette
2013-08-19 22:00                 ` Mike Turquette
2013-08-21 16:16                 ` Tero Kristo
2013-08-21 16:16                   ` Tero Kristo
2013-08-22  8:04                   ` Mike Turquette
2013-08-22  8:04                     ` Mike Turquette
2013-08-02 16:25 ` [PATCHv5 03/31] CLK: TI: add DT alias clock registration mechanism Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 04/31] CLK: TI: add autoidle support Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 05/31] CLK: TI: add support for OMAP gate clock Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-13 11:04   ` Mark Rutland
2013-08-13 11:04     ` Mark Rutland
2013-08-19 13:42     ` Tero Kristo
2013-08-19 13:42       ` Tero Kristo
2013-08-19 14:29       ` Mark Rutland
2013-08-19 14:29         ` Mark Rutland
2013-08-19 14:43         ` Tero Kristo
2013-08-19 14:43           ` Tero Kristo
2013-08-19 15:58           ` Mark Rutland
2013-08-19 15:58             ` Mark Rutland
2013-08-19 16:19             ` Tero Kristo [this message]
2013-08-19 16:19               ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 06/31] ARM: dts: omap4 clock data Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-03 14:16   ` Tomasz Figa
2013-08-03 14:16     ` Tomasz Figa
2013-08-19 13:43     ` Tero Kristo
2013-08-19 13:43       ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 07/31] CLK: TI: add omap4 clock init file Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-05  7:27   ` Tony Lindgren
2013-08-05  7:27     ` Tony Lindgren
2013-08-19 13:46     ` Tero Kristo
2013-08-19 13:46       ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 08/31] ARM: OMAP4: remove old clock data and link in new clock init code Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 09/31] ARM: dts: omap5 clock data Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 10/31] CLK: TI: add omap5 clock init file Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 11/31] CLK: TI: omap5: Initialize USB_DPLL at boot Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 12/31] ARM: dts: dra7 clock data Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 13/31] ARM: dts: clk: Add apll related clocks Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 14/31] ARM: dts: DRA7: Change apll_pcie_m2_ck to fixed factor clock Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 15/31] ARM: dts: DRA7: Add PCIe related clock nodes Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 16/31] CLK: TI: DRA7: Add APLL support Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-13 11:14   ` Mark Rutland
2013-08-13 11:14     ` Mark Rutland
2013-08-19 13:52     ` Tero Kristo
2013-08-19 13:52       ` Tero Kristo
2013-08-20  4:09       ` Keerthy
2013-08-20  4:09         ` Keerthy
2013-08-02 16:25 ` [PATCHv5 17/31] CLK: TI: add dra7 clock init file Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 18/31] CLK: DT: add support for set-rate-parent flag Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-13 11:25   ` Mark Rutland
2013-08-13 11:25     ` Mark Rutland
2013-08-02 16:25 ` [PATCHv5 19/31] ARM: dts: am33xx clock data Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 20/31] CLK: TI: add am33xx clock init file Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 21/31] ARM: AM33xx: remove old clock data and link in new clock init code Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 22/31] CLK: TI: add interface clock support for OMAP3 Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-13 11:30   ` Mark Rutland
2013-08-13 11:30     ` Mark Rutland
2013-08-19 13:54     ` Tero Kristo
2013-08-19 13:54       ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 23/31] ARM: OMAP: hwmod: fix an incorrect clk type cast with _get_clkdm Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 24/31] CLK: TI: gate: add support for OMAP36xx dpllx_mx_ck:s Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 25/31] ARM: OMAP3: hwmod: initialize clkdm from clkdm_name Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 26/31] ARM: dts: omap3 clock data Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 27/31] CLK: TI: add omap3 clock init file Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 28/31] ARM: dts: AM35xx clock data Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 29/31] ARM: dts: AM35xx: use DT " Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 30/31] ARM: OMAP3: use DT clock init if DT data is available Tero Kristo
2013-08-02 16:25   ` Tero Kristo
2013-08-02 16:25 ` [PATCHv5 31/31] ARM: dts: am43xx clock data Tero Kristo
2013-08-02 16:25   ` Tero Kristo

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=5212458E.906@ti.com \
    --to=t-kristo@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mturquette@linaro.org \
    --cc=nm@ti.com \
    --cc=paul@pwsan.com \
    --cc=rnayak@ti.com \
    --cc=tony@atomide.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.