From: claudiu beznea <claudiu.beznea@tuxon.dev>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: geert+renesas@glider.be, mturquette@baylibre.com,
sboyd@kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
ulf.hansson@linaro.org, linus.walleij@linaro.org,
gregkh@linuxfoundation.org, jirislaby@kernel.org,
magnus.damm@gmail.com, catalin.marinas@arm.com, will@kernel.org,
prabhakar.mahadev-lad.rj@bp.renesas.com,
biju.das.jz@bp.renesas.com, quic_bjorande@quicinc.com,
arnd@arndb.de, konrad.dybcio@linaro.org,
neil.armstrong@linaro.org, nfraprado@collabora.com,
rafal@milecki.pl, wsa+renesas@sang-engineering.com,
linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-gpio@vger.kernel.org,
linux-serial@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Subject: Re: [PATCH 22/37] clk: renesas: add minimal boot support for RZ/G3S SoC
Date: Mon, 18 Sep 2023 09:20:53 +0300 [thread overview]
Message-ID: <e8d3f59a-fa1d-9993-6e84-99d976eb05fa@tuxon.dev> (raw)
In-Reply-To: <CAMuHMdUCpbPA3cDjNAq1irvr6z4Jux-5-tVDBuyr6nx_qOQGpg@mail.gmail.com>
Hi, Geert,
On 15.09.2023 15:52, Geert Uytterhoeven wrote:
> Hi Claudiu,
>
> On Tue, Sep 12, 2023 at 6:53 AM Claudiu <claudiu.beznea@tuxon.dev> wrote:
>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>>
>> Add minimal clock and reset support for RZ/G3S SoC to be able to boot
>> Linux from SD Card/eMMC. This includes necessary core clocks for booting
>> and GIC, SCIF, GPIO, SD0 mod clocks and resets.
>>
>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>
> Thanks for your patch!
>
>> --- /dev/null
>> +++ b/drivers/clk/renesas/r9a08g045-cpg.c
>> @@ -0,0 +1,217 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/*
>> + * RZ/G3S CPG driver
>> + *
>> + * Copyright (C) 2023 Renesas Electronics Corp.
>> + */
>> +
>> +#include <linux/clk-provider.h>
>> +#include <linux/device.h>
>> +#include <linux/init.h>
>> +#include <linux/kernel.h>
>> +
>> +#include <dt-bindings/clock/r9a08g045-cpg.h>
>> +
>> +#include "rzg2l-cpg.h"
>> +
>> +/* RZ/G3S Specific registers. */
>> +#define G3S_CPG_PL2_DDIV (0x204)
>> +#define G3S_CPG_SDHI_DDIV (0x218)
>> +#define G3S_CPG_PLL_DSEL (0x240)
>> +#define G3S_CPG_SDHI_DSEL (0x244)
>> +#define G3S_CLKSELSTATUS (0x284)
>> +
>> +/* RZ/G3S Specific division configuration. */
>> +#define G3S_DIVPL2B DDIV_PACK(G3S_CPG_PL2_DDIV, 4, 3)
>> +#define G3S_DIV_SDHI0 DDIV_PACK(G3S_CPG_SDHI_DDIV, 0, 1)
>> +
>> +/* RZ/G3S Clock status configuration. */
>> +#define G3S_DIVPL1A_STS DDIV_PACK(CPG_CLKSTATUS, 0, 1)
>> +#define G3S_DIVPL2B_STS DDIV_PACK(CPG_CLKSTATUS, 5, 1)
>> +#define G3S_DIVPL3A_STS DDIV_PACK(CPG_CLKSTATUS, 8, 1)
>> +#define G3S_DIVPL3B_STS DDIV_PACK(CPG_CLKSTATUS, 9, 1)
>> +#define G3S_DIVPL3C_STS DDIV_PACK(CPG_CLKSTATUS, 10, 1)
>> +#define G3S_DIV_SDHI0_STS DDIV_PACK(CPG_CLKSTATUS, 24, 1)
>
> The register at offset 0x280 is called CPG_CLKDIVSTATUS, so
> you probably want to add and use a G3S-specific definition.
I just used the already definition as there is no conflict at the moment,
it points to the same offset and is almost identical in name. With this
would you still prefer to have it separately ?
>
>> +#define G3S_SEL_PLL4_STS SEL_PLL_PACK(G3S_CLKSELSTATUS, 6, 1)
>> +#define G3S_SEL_SDHI0_STS SEL_PLL_PACK(G3S_CLKSELSTATUS, 16, 1)
>> +
>> +/* RZ/G3S Specific clocks select. */
>> +#define G3S_SEL_PLL4 SEL_PLL_PACK(G3S_CPG_PLL_DSEL, 6, 1)
>> +#define G3S_SEL_SDHI0 SEL_PLL_PACK(G3S_CPG_SDHI_DSEL, 0, 2)
>> +
>> +/* PLL 1/4/6 configuration registers macro. */
>> +#define G3S_PLL146_CONF(clk1, clk2) ((clk1) << 22 | (clk2) << 12)
>> +
>> +#define DEF_G3S_MUX(_name, _id, _conf, _parent_names, _mux_flags, _clk_flags) \
>> + DEF_TYPE(_name, _id, CLK_TYPE_MUX, .conf = (_conf), \
>> + .parent_names = (_parent_names), \
>> + .num_parents = ARRAY_SIZE((_parent_names)), \
>> + .mux_flags = CLK_MUX_HIWORD_MASK | (_mux_flags), \
>> + .flag = (_clk_flags))
>> +
>> +enum clk_ids {
>> + /* Core Clock Outputs exported to DT */
>> + LAST_DT_CORE_CLK = R9A08G045_SWD,
>> +
>> + /* External Input Clocks */
>> + CLK_EXTAL,
>> +
>> + /* Internal Core Clocks */
>> + CLK_OSC_DIV1000,
>> + CLK_PLL1,
>> + CLK_PLL2,
>> + CLK_PLL2_DIV2,
>> + CLK_PLL2_DIV2_8,
>> + CLK_PLL2_DIV6,
>> + CLK_PLL3,
>> + CLK_PLL3_DIV2,
>> + CLK_PLL3_DIV2_2,
>
> Do you need CLK_PLL3_DIV2_2?
> When adding support for R9A07G043_CLK_AT later, you can define it
> as CLK_PLL3_DIV2 / 2.
That's true. I kept it here as I saw it as a core clock. I can remove it.
>
>> + CLK_PLL3_DIV2_4,
>> + CLK_PLL3_DIV2_8,
>> + CLK_PLL3_DIV6,
>> + CLK_PLL4,
>> + CLK_PLL6,
>> + CLK_PLL6_DIV2,
>> + CLK_SEL_SDHI0,
>> + CLK_SEL_PLL4,
>> + CLK_P1_DIV2,
>> + CLK_P3_DIV2,
>
> Do you need CLK_P1_DIV2 and CLK_P3_DIV2?
> I don't see them in Figure 7.3 ("Clock System Diagram (2)").
>
>> + CLK_SD0_DIV,
>
> CLK_SD0_DIV is unused.
Ok, I'll remove it.
>
>> + CLK_SD0_DIV4,
>> + CLK_S0_DIV2,
>
> CLK_S0_DIV2 is unused.
ok.
>
>> +
>> + /* Module Clocks */
>> + MOD_CLK_BASE,
>> +};
>> +
>> +/* Divider tables */
>> +static const struct clk_div_table dtable_1_2[] = {
>> + {0, 1},
>
> "{ 0, 1 }," etc...
ok.
>
>> + {1, 2},
>> + {0, 0},
>> +};
>> +
>> +static const struct clk_div_table dtable_1_8[] = {
>> + {0, 1},
>> + {1, 2},
>> + {2, 4},
>> + {3, 8},
>> + {0, 0},
>> +};
>> +
>> +static const struct clk_div_table dtable_1_32[] = {
>> + {0, 1},
>> + {1, 2},
>> + {2, 4},
>> + {3, 8},
>> + {4, 32},
>> + {0, 0},
>> +};
>> +
>> +/* Mux clock names tables. */
>> +static const char * const sel_sdhi[] = { ".pll2_div2", ".pll6", ".pll2_div6" };
>> +static const char * const sel_pll4[] = { ".osc_div1000", ".pll4" };
>> +
>> +/* Mux clock indexes tables. */
>
> indices
>
>> +static const u32 mtable_sd[] = { 0, 2, 3 };
>> +static const u32 mtable_pll4[] = { 0, 1 };
>> +
>> +static const struct cpg_core_clk r9a08g045_core_clks[] __initconst = {
>> + /* External Clock Inputs */
>> + DEF_INPUT("extal", CLK_EXTAL),
>> +
>> + /* Internal Core Clocks */
>> + DEF_FIXED(".osc", R9A08G045_OSCCLK, CLK_EXTAL, 1, 1),
>
> "OSC", as this is not an internal core clock.
ok, I wasn't aware of this convention.
>
>> + DEF_FIXED(".osc2", R9A08G045_OSCCLK2, CLK_EXTAL, 1, 3),
>
> "OSC2"
ok.
>
>> + DEF_FIXED(".osc_div1000", CLK_OSC_DIV1000, CLK_EXTAL, 1, 1000),
>> + DEF_G3S_SAMPLL(".pll1", CLK_PLL1, CLK_EXTAL, G3S_PLL146_CONF(0x4, 0x8)),
>> + DEF_FIXED(".pll2", CLK_PLL2, CLK_EXTAL, 200, 3),
>> + DEF_FIXED(".pll3", CLK_PLL3, CLK_EXTAL, 200, 3),
>> + DEF_FIXED(".pll4", CLK_PLL4, CLK_EXTAL, 100, 3),
>> + DEF_FIXED(".pll6", CLK_PLL6, CLK_EXTAL, 125, 6),
>> + DEF_FIXED(".pll2_div2", CLK_PLL2_DIV2, CLK_PLL2, 1, 2),
>> + DEF_FIXED(".pll2_div2_8", CLK_PLL2_DIV2_8, CLK_PLL2_DIV2, 1, 8),
>> + DEF_FIXED(".pll2_div6", CLK_PLL2_DIV6, CLK_PLL2, 1, 6),
>> + DEF_FIXED(".pll3_div2", CLK_PLL3_DIV2, CLK_PLL3, 1, 2),
>> + DEF_FIXED(".pll3_div2_2", CLK_PLL3_DIV2_2, CLK_PLL3_DIV2, 1, 2),
>> + DEF_FIXED(".pll3_div2_4", CLK_PLL3_DIV2_4, CLK_PLL3_DIV2, 1, 4),
>> + DEF_FIXED(".pll3_div2_8", CLK_PLL3_DIV2_8, CLK_PLL3_DIV2, 1, 8),
>> + DEF_FIXED(".pll3_div6", CLK_PLL3_DIV6, CLK_PLL3, 1, 6),
>> + DEF_FIXED(".pll6_div2", CLK_PLL6_DIV2, CLK_PLL6, 1, 2),
>> + DEF_SD_MUX(".sel_sd0", CLK_SEL_SDHI0, G3S_SEL_SDHI0, G3S_SEL_SDHI0_STS, sel_sdhi,
>> + mtable_sd, 0, NULL),
>> + DEF_SD_MUX(".sel_pll4", CLK_SEL_PLL4, G3S_SEL_PLL4, G3S_SEL_PLL4_STS, sel_pll4,
>> + mtable_pll4, CLK_SET_PARENT_GATE, NULL),
>> +
>> + /* Core output clk */
>> + DEF_G3S_DIV("I", R9A08G045_CLK_I, CLK_PLL1, DIVPL1A, G3S_DIVPL1A_STS, dtable_1_8,
>> + 0, 0, NULL),
>> + DEF_G3S_DIV("P0", R9A08G045_CLK_P0, CLK_PLL2_DIV2_8, G3S_DIVPL2B, G3S_DIVPL2B_STS,
>> + dtable_1_32, 0, 0, NULL),
>> + DEF_G3S_DIV("SD0", R9A08G045_CLK_SD0, CLK_SEL_SDHI0, G3S_DIV_SDHI0, G3S_DIV_SDHI0_STS,
>> + dtable_1_2, 800000000UL, CLK_SET_RATE_PARENT, DIV_NOTIF),
>> + DEF_FIXED("SD0_DIV4", CLK_SD0_DIV4, R9A08G045_CLK_SD0, 1, 4),
>
> ".sd0_div4", as this is not a public core clock.
ok.
>
>> + DEF_FIXED("M0", R9A08G045_CLK_M0, CLK_PLL3_DIV2_4, 1, 1),
>> + DEF_G3S_DIV("P1", R9A08G045_CLK_P1, CLK_PLL3_DIV2_4, DIVPL3A, G3S_DIVPL3A_STS,
>> + dtable_1_32, 0, 0, NULL),
>> + DEF_FIXED("P1_DIV2", CLK_P1_DIV2, R9A08G045_CLK_P1, 1, 2),
>> + DEF_G3S_DIV("P2", R9A08G045_CLK_P2, CLK_PLL3_DIV2_8, DIVPL3B, G3S_DIVPL3B_STS,
>> + dtable_1_32, 0, 0, NULL),
>> + DEF_G3S_DIV("P3", R9A08G045_CLK_P3, CLK_PLL3_DIV2_4, DIVPL3C, G3S_DIVPL3C_STS,
>> + dtable_1_32, 0, 0, NULL),
>> + DEF_FIXED("P3_DIV2", CLK_P3_DIV2, R9A08G045_CLK_P3, 1, 2),
>> + DEF_FIXED("S0", R9A08G045_CLK_S0, CLK_SEL_PLL4, 1, 2),
>> + DEF_FIXED("S0_DIV2", CLK_S0_DIV2, R9A08G045_CLK_S0, 1, 2),
>> +};
>
> Gr{oetje,eeting}s,
>
> Geert
>
next prev parent reply other threads:[~2023-09-18 6:21 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-12 4:51 [PATCH 00/37] Add new Renesas RZ/G3S SoC and RZ/G3S SMARC EVK Claudiu
2023-09-12 4:51 ` [PATCH 01/37] dt-bindings: serial: renesas,scif: document r9a08g045 support Claudiu
2023-09-12 16:00 ` Rob Herring
2023-09-14 9:35 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 02/37] dt-bindings: soc: renesas: document Renesas RZ/G3S SoC variants Claudiu
2023-09-12 16:01 ` Rob Herring
2023-09-14 9:49 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 03/37] dt-bindings: soc: renesas: renesas,rzg2l-sysc: document RZ/G3S SoC Claudiu
2023-09-12 16:01 ` Rob Herring
2023-09-14 9:49 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 04/37] soc: renesas: identify " Claudiu
2023-09-14 9:49 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 05/37] soc: renesas: remove blank lines Claudiu
2023-09-14 9:49 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 06/37] clk: renesas: rzg2l: wait for status bit of SD mux before continuing Claudiu
2023-09-14 11:42 ` Geert Uytterhoeven
2023-09-15 5:35 ` claudiu beznea
2023-09-12 4:51 ` [PATCH 07/37] clk: renesas: rzg2l: lock around writes to mux register Claudiu
2023-09-14 12:13 ` Geert Uytterhoeven
2023-09-15 5:46 ` claudiu beznea
2023-09-12 4:51 ` [PATCH 08/37] clk: renesas: rzg2l: trust value returned by hardware Claudiu
2023-09-12 16:43 ` Sergey Shtylyov
2023-09-14 12:18 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 09/37] clk: renesas: rzg2l: fix computation formula Claudiu
2023-09-14 12:55 ` Geert Uytterhoeven
2023-09-26 11:47 ` claudiu beznea
2023-09-26 14:44 ` Geert Uytterhoeven
2023-09-27 8:00 ` Geert Uytterhoeven
2023-09-28 4:55 ` claudiu beznea
2023-09-12 4:51 ` [PATCH 10/37] clk: renesas: rzg2l: use core->name for clock name Claudiu
2023-09-14 13:04 ` Geert Uytterhoeven
2023-09-15 5:47 ` claudiu beznea
2023-09-18 8:03 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 11/37] clk: renesas: rzg2l: simplify a bit the logic in rzg2l_mod_clock_endisable() Claudiu
2023-09-14 13:06 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 12/37] clk: renesas: rzg2l: reduce the critical area Claudiu
2023-09-14 13:12 ` Geert Uytterhoeven
2023-09-15 5:51 ` claudiu beznea
2023-09-15 7:05 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 13/37] clk: renesas: rzg2l: use FIELD_GET() for PLL register fields Claudiu
2023-09-14 13:19 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 14/37] clk: renesas: rzg2l: use u32 for flag and mux_flags Claudiu
2023-09-14 13:29 ` Geert Uytterhoeven
2023-09-18 8:03 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 15/37] clk: renesas: rzg2l: add support for RZ/G3S PLL Claudiu
2023-09-14 13:58 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 16/37] clk: renesas: rzg2l: add struct clk_hw_data Claudiu
2023-09-14 15:17 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 17/37] clk: renesas: rzg2l: remove CPG_SDHI_DSEL from generic header Claudiu
2023-09-14 15:18 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 18/37] clk: renesas: rzg2l: refactor sd mux driver Claudiu
2023-09-14 15:18 ` Geert Uytterhoeven
2023-09-15 7:30 ` claudiu beznea
2023-09-15 8:06 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 19/37] clk: renesas: rzg2l: add a divider clock for RZ/G3S Claudiu
2023-09-12 4:51 ` [PATCH 20/37] dt-bindings: clock: renesas,rzg2l-cpg: document RZ/G3S SoC Claudiu
2023-09-12 16:02 ` Rob Herring
2023-09-15 11:58 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 21/37] dt-bindings: clock: add r9a08g045 CPG clocks and resets definitions Claudiu
2023-09-12 16:03 ` Rob Herring
2023-09-14 15:26 ` Geert Uytterhoeven
2023-09-15 7:24 ` Krzysztof Kozlowski
2023-09-15 7:38 ` Geert Uytterhoeven
2023-09-15 7:42 ` Krzysztof Kozlowski
2023-09-15 11:59 ` Geert Uytterhoeven
2023-09-28 4:54 ` claudiu beznea
2023-09-28 7:25 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 22/37] clk: renesas: add minimal boot support for RZ/G3S SoC Claudiu
2023-09-15 12:52 ` Geert Uytterhoeven
2023-09-18 6:20 ` claudiu beznea [this message]
2023-09-18 7:00 ` Geert Uytterhoeven
2023-09-18 7:50 ` claudiu beznea
2023-09-18 9:05 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 23/37] pinctrl: renesas: rzg2l: index all registers based on port offset Claudiu
2023-09-20 13:20 ` Geert Uytterhoeven
2023-09-20 13:43 ` Lad, Prabhakar
2023-09-12 4:51 ` [PATCH 24/37] pinctrl: renesas: rzg2l: adapt for different SD, PWPR register offsets Claudiu
2023-09-21 12:07 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 25/37] pinctrl: renesas: rzg2l: adapt function number for RZ/G3S Claudiu
2023-09-21 12:51 ` Geert Uytterhoeven
2023-09-26 9:55 ` claudiu beznea
2023-09-26 14:23 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 26/37] pinctrl: renesas: rzg2l: move ds and oi to SoC specific configuration Claudiu
2023-09-21 12:54 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 27/37] pinctrl: renesas: rzg2l: add support for different ds values on different groups Claudiu
2023-09-21 13:07 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 28/37] pinctrl: renesas: rzg2l: make struct rzg2l_pinctrl_data::dedicated_pins constant Claudiu
2023-09-21 13:08 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 29/37] dt-bindings: pinctrl: renesas: document RZ/G3S SoC Claudiu
2023-09-12 16:13 ` Rob Herring
2023-09-21 15:00 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 30/37] pinctrl: renesas: rzg2l: add support for " Claudiu
2023-09-21 14:58 ` Geert Uytterhoeven
2023-09-26 10:58 ` claudiu beznea
2023-09-26 14:29 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 31/37] dt-bindings: mmc: renesas,sdhi: Document RZ/G3S support Claudiu
2023-09-12 16:13 ` Rob Herring
2023-09-14 14:47 ` Ulf Hansson
2023-09-14 15:35 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 32/37] arm64: dts: renesas: add initial DTSI for RZ/G3S SoC Claudiu
2023-09-15 13:17 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 33/37] arm64: dts: renesas: rzg3l-smarc-som: add initial support for RZ/G3S SMARC Carrier-II SoM Claudiu
2023-09-15 14:28 ` Geert Uytterhoeven
2023-09-18 6:02 ` claudiu beznea
2023-09-12 4:51 ` [PATCH 34/37] arm64: dts: renesas: rzg3s-smarc: add initial device tree for RZ SMARC Carrier-II board Claudiu
2023-09-15 14:32 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 35/37] dt-bindings: arm: renesas: document SMARC Carrier-II EVK Claudiu
2023-09-12 16:16 ` Rob Herring
2023-09-13 5:32 ` claudiu beznea
2023-09-13 15:16 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 36/37] arm64: dts: renesas: r9a08g045s33-smarc: add initial device tree for RZ/G3S SMARC EVK board Claudiu
2023-09-21 15:02 ` Geert Uytterhoeven
2023-09-12 4:51 ` [PATCH 37/37] arm64: defconfig: enable RZ/G3S (R9A08G045) SoC Claudiu
2023-09-15 14:34 ` Geert Uytterhoeven
2023-09-12 8:55 ` [PATCH 00/37] Add new Renesas RZ/G3S SoC and RZ/G3S SMARC EVK Linus Walleij
2023-09-12 9:03 ` Geert Uytterhoeven
2023-09-12 9:05 ` Linus Walleij
2023-09-13 5:40 ` claudiu beznea
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=e8d3f59a-fa1d-9993-6e84-99d976eb05fa@tuxon.dev \
--to=claudiu.beznea@tuxon.dev \
--cc=arnd@arndb.de \
--cc=biju.das.jz@bp.renesas.com \
--cc=catalin.marinas@arm.com \
--cc=claudiu.beznea.uj@bp.renesas.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=mturquette@baylibre.com \
--cc=neil.armstrong@linaro.org \
--cc=nfraprado@collabora.com \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=quic_bjorande@quicinc.com \
--cc=rafal@milecki.pl \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=ulf.hansson@linaro.org \
--cc=will@kernel.org \
--cc=wsa+renesas@sang-engineering.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).