From: Roger Quadros <rogerq@kernel.org>
To: Siddharth Vadapalli <s-vadapalli@ti.com>,
robh+dt@kernel.org, lee.jones@linaro.org,
krzysztof.kozlowski@linaro.org,
krzysztof.kozlowski+dt@linaro.org, kishon@ti.com,
vkoul@kernel.org, dan.carpenter@oracle.com,
grygorii.strashko@ti.com
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-phy@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, sjakhade@cadence.com
Subject: Re: [PATCH 3/6] phy: ti: gmii-sel: Add support for CPSW9G GMII SEL in J721e
Date: Wed, 14 Sep 2022 14:34:50 +0300 [thread overview]
Message-ID: <dfb88c31-b6ae-32d4-2b8a-db6027ed19c8@kernel.org> (raw)
In-Reply-To: <20220914093911.187764-4-s-vadapalli@ti.com>
Hi Siddharth,
On 14/09/2022 12:39, Siddharth Vadapalli wrote:
> Each of the CPSW9G ports in J721e support additional modes like QSGMII.
> Add a new compatible for J721e to support the additional modes.
>
> In TI's J721e, each of the CPSW9G ethernet interfaces can act as a
> QSGMII main or QSGMII-SUB port. The QSGMII main interface is responsible
> for performing auto-negotiation between the MAC and the PHY while the rest
> of the interfaces are designated as QSGMII-SUB interfaces, indicating that
> they will not be taking part in the auto-negotiation process.
>
> Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
> ---
> drivers/phy/ti/phy-gmii-sel.c | 47 +++++++++++++++++++++++++++--------
> 1 file changed, 37 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/phy/ti/phy-gmii-sel.c b/drivers/phy/ti/phy-gmii-sel.c
> index f0b2ba7a9c96..fdb1a7db123d 100644
> --- a/drivers/phy/ti/phy-gmii-sel.c
> +++ b/drivers/phy/ti/phy-gmii-sel.c
> @@ -223,6 +223,13 @@ struct phy_gmii_sel_soc_data phy_gmii_sel_cpsw5g_soc_j7200 = {
> .extra_modes = BIT(PHY_INTERFACE_MODE_QSGMII) | BIT(PHY_INTERFACE_MODE_SGMII),
> };
>
> +static const
> +struct phy_gmii_sel_soc_data phy_gmii_sel_cpsw9g_soc_j721e = {
> + .use_of_data = true,
> + .regfields = phy_gmii_sel_fields_am654,
> + .extra_modes = BIT(PHY_INTERFACE_MODE_QSGMII),
> +};
> +
> static const struct of_device_id phy_gmii_sel_id_table[] = {
> {
> .compatible = "ti,am3352-phy-gmii-sel",
> @@ -248,6 +255,10 @@ static const struct of_device_id phy_gmii_sel_id_table[] = {
> .compatible = "ti,j7200-cpsw5g-phy-gmii-sel",
> .data = &phy_gmii_sel_cpsw5g_soc_j7200,
> },
> + {
> + .compatible = "ti,j721e-cpsw9g-phy-gmii-sel",
> + .data = &phy_gmii_sel_cpsw9g_soc_j721e,
> + },
> {}
> };
> MODULE_DEVICE_TABLE(of, phy_gmii_sel_id_table);
> @@ -389,7 +400,7 @@ static int phy_gmii_sel_probe(struct platform_device *pdev)
> struct device_node *node = dev->of_node;
> const struct of_device_id *of_id;
> struct phy_gmii_sel_priv *priv;
> - u32 main_ports = 1;
> + u32 main_ports[2] = {1, 1};
> int ret;
>
> of_id = of_match_node(phy_gmii_sel_id_table, pdev->dev.of_node);
> @@ -403,15 +414,31 @@ static int phy_gmii_sel_probe(struct platform_device *pdev)
> priv->dev = &pdev->dev;
> priv->soc_data = of_id->data;
> priv->num_ports = priv->soc_data->num_ports;
> - of_property_read_u32(node, "ti,qsgmii-main-ports", &main_ports);
> - /*
> - * Ensure that main_ports is within bounds. If the property
> - * ti,qsgmii-main-ports is not mentioned, or the value mentioned
> - * is out of bounds, default to 1.
> - */
> - if (main_ports < 1 || main_ports > 4)
> - main_ports = 1;
> - priv->qsgmii_main_ports = PHY_GMII_PORT(main_ports);
> + /* Differentiate between J7200 CPSW5G and J721e CPSW9G */
> + if (of_device_is_compatible(node, "ti,j7200-cpsw5g-phy-gmii-sel") > 0) {
Why not just "if (of_device_is_compatible())" ?
> + of_property_read_u32(node, "ti,qsgmii-main-ports", &main_ports[0]);
> + /*
> + * Ensure that main_ports is within bounds. If the property
> + * ti,qsgmii-main-ports is not mentioned, or the value mentioned
> + * is out of bounds, default to 1.
> + */
> + if (main_ports[0] < 1 || main_ports[0] > 4)
> + main_ports[0] = 1;
how about printing this issue with dev_err()?
> + priv->qsgmii_main_ports = PHY_GMII_PORT(main_ports[0]);
> + } else if (of_device_is_compatible(node, "ti,j721e-cpsw9g-phy-gmii-sel") > 0) {
> + of_property_read_u32_array(node, "ti,qsgmii-main-ports", &main_ports[0], 2);
> + /*
> + * Ensure that main_ports is within bounds. If the property
> + * ti,qsgmii-main-ports is not mentioned, or the value mentioned
> + * is out of bounds, default to 1.
> + */
> + if (main_ports[0] < 1 || main_ports[0] > 8)
> + main_ports[0] = 1;
> + if (main_ports[1] < 1 || main_ports[1] > 8)
> + main_ports[1] = 1;
> + priv->qsgmii_main_ports = PHY_GMII_PORT(main_ports[0]);
> + priv->qsgmii_main_ports |= PHY_GMII_PORT(main_ports[1]);
> + }
The whole if/else logic can be got rid of if you store num_qsgmii_main_ports in priv data structure
after obtaining it from of_data.
Then all the above reduces to
for (i = 0; i < priv->num_qsgmii_main_ports; i++) {
if (main_ports[i] ...)
}
It will also make it very easy to scale later on for future platforms.
>
> priv->regmap = syscon_node_to_regmap(node->parent);
> if (IS_ERR(priv->regmap)) {
cheers,
-roger
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
WARNING: multiple messages have this Message-ID (diff)
From: Roger Quadros <rogerq@kernel.org>
To: Siddharth Vadapalli <s-vadapalli@ti.com>,
robh+dt@kernel.org, lee.jones@linaro.org,
krzysztof.kozlowski@linaro.org,
krzysztof.kozlowski+dt@linaro.org, kishon@ti.com,
vkoul@kernel.org, dan.carpenter@oracle.com,
grygorii.strashko@ti.com
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-phy@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, sjakhade@cadence.com
Subject: Re: [PATCH 3/6] phy: ti: gmii-sel: Add support for CPSW9G GMII SEL in J721e
Date: Wed, 14 Sep 2022 14:34:50 +0300 [thread overview]
Message-ID: <dfb88c31-b6ae-32d4-2b8a-db6027ed19c8@kernel.org> (raw)
In-Reply-To: <20220914093911.187764-4-s-vadapalli@ti.com>
Hi Siddharth,
On 14/09/2022 12:39, Siddharth Vadapalli wrote:
> Each of the CPSW9G ports in J721e support additional modes like QSGMII.
> Add a new compatible for J721e to support the additional modes.
>
> In TI's J721e, each of the CPSW9G ethernet interfaces can act as a
> QSGMII main or QSGMII-SUB port. The QSGMII main interface is responsible
> for performing auto-negotiation between the MAC and the PHY while the rest
> of the interfaces are designated as QSGMII-SUB interfaces, indicating that
> they will not be taking part in the auto-negotiation process.
>
> Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
> ---
> drivers/phy/ti/phy-gmii-sel.c | 47 +++++++++++++++++++++++++++--------
> 1 file changed, 37 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/phy/ti/phy-gmii-sel.c b/drivers/phy/ti/phy-gmii-sel.c
> index f0b2ba7a9c96..fdb1a7db123d 100644
> --- a/drivers/phy/ti/phy-gmii-sel.c
> +++ b/drivers/phy/ti/phy-gmii-sel.c
> @@ -223,6 +223,13 @@ struct phy_gmii_sel_soc_data phy_gmii_sel_cpsw5g_soc_j7200 = {
> .extra_modes = BIT(PHY_INTERFACE_MODE_QSGMII) | BIT(PHY_INTERFACE_MODE_SGMII),
> };
>
> +static const
> +struct phy_gmii_sel_soc_data phy_gmii_sel_cpsw9g_soc_j721e = {
> + .use_of_data = true,
> + .regfields = phy_gmii_sel_fields_am654,
> + .extra_modes = BIT(PHY_INTERFACE_MODE_QSGMII),
> +};
> +
> static const struct of_device_id phy_gmii_sel_id_table[] = {
> {
> .compatible = "ti,am3352-phy-gmii-sel",
> @@ -248,6 +255,10 @@ static const struct of_device_id phy_gmii_sel_id_table[] = {
> .compatible = "ti,j7200-cpsw5g-phy-gmii-sel",
> .data = &phy_gmii_sel_cpsw5g_soc_j7200,
> },
> + {
> + .compatible = "ti,j721e-cpsw9g-phy-gmii-sel",
> + .data = &phy_gmii_sel_cpsw9g_soc_j721e,
> + },
> {}
> };
> MODULE_DEVICE_TABLE(of, phy_gmii_sel_id_table);
> @@ -389,7 +400,7 @@ static int phy_gmii_sel_probe(struct platform_device *pdev)
> struct device_node *node = dev->of_node;
> const struct of_device_id *of_id;
> struct phy_gmii_sel_priv *priv;
> - u32 main_ports = 1;
> + u32 main_ports[2] = {1, 1};
> int ret;
>
> of_id = of_match_node(phy_gmii_sel_id_table, pdev->dev.of_node);
> @@ -403,15 +414,31 @@ static int phy_gmii_sel_probe(struct platform_device *pdev)
> priv->dev = &pdev->dev;
> priv->soc_data = of_id->data;
> priv->num_ports = priv->soc_data->num_ports;
> - of_property_read_u32(node, "ti,qsgmii-main-ports", &main_ports);
> - /*
> - * Ensure that main_ports is within bounds. If the property
> - * ti,qsgmii-main-ports is not mentioned, or the value mentioned
> - * is out of bounds, default to 1.
> - */
> - if (main_ports < 1 || main_ports > 4)
> - main_ports = 1;
> - priv->qsgmii_main_ports = PHY_GMII_PORT(main_ports);
> + /* Differentiate between J7200 CPSW5G and J721e CPSW9G */
> + if (of_device_is_compatible(node, "ti,j7200-cpsw5g-phy-gmii-sel") > 0) {
Why not just "if (of_device_is_compatible())" ?
> + of_property_read_u32(node, "ti,qsgmii-main-ports", &main_ports[0]);
> + /*
> + * Ensure that main_ports is within bounds. If the property
> + * ti,qsgmii-main-ports is not mentioned, or the value mentioned
> + * is out of bounds, default to 1.
> + */
> + if (main_ports[0] < 1 || main_ports[0] > 4)
> + main_ports[0] = 1;
how about printing this issue with dev_err()?
> + priv->qsgmii_main_ports = PHY_GMII_PORT(main_ports[0]);
> + } else if (of_device_is_compatible(node, "ti,j721e-cpsw9g-phy-gmii-sel") > 0) {
> + of_property_read_u32_array(node, "ti,qsgmii-main-ports", &main_ports[0], 2);
> + /*
> + * Ensure that main_ports is within bounds. If the property
> + * ti,qsgmii-main-ports is not mentioned, or the value mentioned
> + * is out of bounds, default to 1.
> + */
> + if (main_ports[0] < 1 || main_ports[0] > 8)
> + main_ports[0] = 1;
> + if (main_ports[1] < 1 || main_ports[1] > 8)
> + main_ports[1] = 1;
> + priv->qsgmii_main_ports = PHY_GMII_PORT(main_ports[0]);
> + priv->qsgmii_main_ports |= PHY_GMII_PORT(main_ports[1]);
> + }
The whole if/else logic can be got rid of if you store num_qsgmii_main_ports in priv data structure
after obtaining it from of_data.
Then all the above reduces to
for (i = 0; i < priv->num_qsgmii_main_ports; i++) {
if (main_ports[i] ...)
}
It will also make it very easy to scale later on for future platforms.
>
> priv->regmap = syscon_node_to_regmap(node->parent);
> if (IS_ERR(priv->regmap)) {
cheers,
-roger
_______________________________________________
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: Roger Quadros <rogerq@kernel.org>
To: Siddharth Vadapalli <s-vadapalli@ti.com>,
robh+dt@kernel.org, lee.jones@linaro.org,
krzysztof.kozlowski@linaro.org,
krzysztof.kozlowski+dt@linaro.org, kishon@ti.com,
vkoul@kernel.org, dan.carpenter@oracle.com,
grygorii.strashko@ti.com
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-phy@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, sjakhade@cadence.com
Subject: Re: [PATCH 3/6] phy: ti: gmii-sel: Add support for CPSW9G GMII SEL in J721e
Date: Wed, 14 Sep 2022 14:34:50 +0300 [thread overview]
Message-ID: <dfb88c31-b6ae-32d4-2b8a-db6027ed19c8@kernel.org> (raw)
In-Reply-To: <20220914093911.187764-4-s-vadapalli@ti.com>
Hi Siddharth,
On 14/09/2022 12:39, Siddharth Vadapalli wrote:
> Each of the CPSW9G ports in J721e support additional modes like QSGMII.
> Add a new compatible for J721e to support the additional modes.
>
> In TI's J721e, each of the CPSW9G ethernet interfaces can act as a
> QSGMII main or QSGMII-SUB port. The QSGMII main interface is responsible
> for performing auto-negotiation between the MAC and the PHY while the rest
> of the interfaces are designated as QSGMII-SUB interfaces, indicating that
> they will not be taking part in the auto-negotiation process.
>
> Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
> ---
> drivers/phy/ti/phy-gmii-sel.c | 47 +++++++++++++++++++++++++++--------
> 1 file changed, 37 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/phy/ti/phy-gmii-sel.c b/drivers/phy/ti/phy-gmii-sel.c
> index f0b2ba7a9c96..fdb1a7db123d 100644
> --- a/drivers/phy/ti/phy-gmii-sel.c
> +++ b/drivers/phy/ti/phy-gmii-sel.c
> @@ -223,6 +223,13 @@ struct phy_gmii_sel_soc_data phy_gmii_sel_cpsw5g_soc_j7200 = {
> .extra_modes = BIT(PHY_INTERFACE_MODE_QSGMII) | BIT(PHY_INTERFACE_MODE_SGMII),
> };
>
> +static const
> +struct phy_gmii_sel_soc_data phy_gmii_sel_cpsw9g_soc_j721e = {
> + .use_of_data = true,
> + .regfields = phy_gmii_sel_fields_am654,
> + .extra_modes = BIT(PHY_INTERFACE_MODE_QSGMII),
> +};
> +
> static const struct of_device_id phy_gmii_sel_id_table[] = {
> {
> .compatible = "ti,am3352-phy-gmii-sel",
> @@ -248,6 +255,10 @@ static const struct of_device_id phy_gmii_sel_id_table[] = {
> .compatible = "ti,j7200-cpsw5g-phy-gmii-sel",
> .data = &phy_gmii_sel_cpsw5g_soc_j7200,
> },
> + {
> + .compatible = "ti,j721e-cpsw9g-phy-gmii-sel",
> + .data = &phy_gmii_sel_cpsw9g_soc_j721e,
> + },
> {}
> };
> MODULE_DEVICE_TABLE(of, phy_gmii_sel_id_table);
> @@ -389,7 +400,7 @@ static int phy_gmii_sel_probe(struct platform_device *pdev)
> struct device_node *node = dev->of_node;
> const struct of_device_id *of_id;
> struct phy_gmii_sel_priv *priv;
> - u32 main_ports = 1;
> + u32 main_ports[2] = {1, 1};
> int ret;
>
> of_id = of_match_node(phy_gmii_sel_id_table, pdev->dev.of_node);
> @@ -403,15 +414,31 @@ static int phy_gmii_sel_probe(struct platform_device *pdev)
> priv->dev = &pdev->dev;
> priv->soc_data = of_id->data;
> priv->num_ports = priv->soc_data->num_ports;
> - of_property_read_u32(node, "ti,qsgmii-main-ports", &main_ports);
> - /*
> - * Ensure that main_ports is within bounds. If the property
> - * ti,qsgmii-main-ports is not mentioned, or the value mentioned
> - * is out of bounds, default to 1.
> - */
> - if (main_ports < 1 || main_ports > 4)
> - main_ports = 1;
> - priv->qsgmii_main_ports = PHY_GMII_PORT(main_ports);
> + /* Differentiate between J7200 CPSW5G and J721e CPSW9G */
> + if (of_device_is_compatible(node, "ti,j7200-cpsw5g-phy-gmii-sel") > 0) {
Why not just "if (of_device_is_compatible())" ?
> + of_property_read_u32(node, "ti,qsgmii-main-ports", &main_ports[0]);
> + /*
> + * Ensure that main_ports is within bounds. If the property
> + * ti,qsgmii-main-ports is not mentioned, or the value mentioned
> + * is out of bounds, default to 1.
> + */
> + if (main_ports[0] < 1 || main_ports[0] > 4)
> + main_ports[0] = 1;
how about printing this issue with dev_err()?
> + priv->qsgmii_main_ports = PHY_GMII_PORT(main_ports[0]);
> + } else if (of_device_is_compatible(node, "ti,j721e-cpsw9g-phy-gmii-sel") > 0) {
> + of_property_read_u32_array(node, "ti,qsgmii-main-ports", &main_ports[0], 2);
> + /*
> + * Ensure that main_ports is within bounds. If the property
> + * ti,qsgmii-main-ports is not mentioned, or the value mentioned
> + * is out of bounds, default to 1.
> + */
> + if (main_ports[0] < 1 || main_ports[0] > 8)
> + main_ports[0] = 1;
> + if (main_ports[1] < 1 || main_ports[1] > 8)
> + main_ports[1] = 1;
> + priv->qsgmii_main_ports = PHY_GMII_PORT(main_ports[0]);
> + priv->qsgmii_main_ports |= PHY_GMII_PORT(main_ports[1]);
> + }
The whole if/else logic can be got rid of if you store num_qsgmii_main_ports in priv data structure
after obtaining it from of_data.
Then all the above reduces to
for (i = 0; i < priv->num_qsgmii_main_ports; i++) {
if (main_ports[i] ...)
}
It will also make it very easy to scale later on for future platforms.
>
> priv->regmap = syscon_node_to_regmap(node->parent);
> if (IS_ERR(priv->regmap)) {
cheers,
-roger
next prev parent reply other threads:[~2022-09-14 11:35 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-14 9:39 [PATCH 0/6] Add support for J721e CPSW9G and SGMII mode Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` [PATCH 1/6] dt-bindings: phy: ti: phy-gmii-sel: Add bindings for J721e Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 16:15 ` Rob Herring
2022-09-14 16:15 ` Rob Herring
2022-09-14 16:15 ` Rob Herring
2022-09-15 5:28 ` Siddharth Vadapalli
2022-09-15 5:28 ` Siddharth Vadapalli
2022-09-15 5:28 ` Siddharth Vadapalli
2022-09-19 10:17 ` Krzysztof Kozlowski
2022-09-19 10:17 ` Krzysztof Kozlowski
2022-09-19 10:17 ` Krzysztof Kozlowski
2022-09-20 4:56 ` Siddharth Vadapalli
2022-09-20 4:56 ` Siddharth Vadapalli
2022-09-20 4:56 ` Siddharth Vadapalli
2022-09-21 6:36 ` Krzysztof Kozlowski
2022-09-21 6:36 ` Krzysztof Kozlowski
2022-09-21 6:36 ` Krzysztof Kozlowski
2022-09-19 10:15 ` Krzysztof Kozlowski
2022-09-19 10:15 ` Krzysztof Kozlowski
2022-09-19 10:15 ` Krzysztof Kozlowski
2022-09-20 4:27 ` Siddharth Vadapalli
2022-09-20 4:27 ` Siddharth Vadapalli
2022-09-20 4:27 ` Siddharth Vadapalli
2022-09-21 6:39 ` Krzysztof Kozlowski
2022-09-21 6:39 ` Krzysztof Kozlowski
2022-09-21 6:39 ` Krzysztof Kozlowski
2022-09-21 7:23 ` Siddharth Vadapalli
2022-09-21 7:23 ` Siddharth Vadapalli
2022-09-21 7:23 ` Siddharth Vadapalli
2022-09-14 9:39 ` [PATCH 2/6] phy: ti: gmii-sel: Add support for configuring CPSW5G ports in SGMII mode Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` [PATCH 3/6] phy: ti: gmii-sel: Add support for CPSW9G GMII SEL in J721e Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 11:34 ` Roger Quadros [this message]
2022-09-14 11:34 ` Roger Quadros
2022-09-14 11:34 ` Roger Quadros
2022-09-15 6:19 ` Siddharth Vadapalli
2022-09-15 6:19 ` Siddharth Vadapalli
2022-09-15 6:19 ` Siddharth Vadapalli
2022-09-14 9:39 ` [PATCH 4/6] phy: ti: gmii-sel: Enable SGMII mode configuration for J721E Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` [PATCH 5/6] phy: ti: phy-j721e-wiz: Add SGMII support in wiz driver " Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` [PATCH 6/6] phy: cadence: Sierra: Add PCIe + SGMII PHY multilink configuration Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
2022-09-14 9:39 ` Siddharth Vadapalli
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=dfb88c31-b6ae-32d4-2b8a-db6027ed19c8@kernel.org \
--to=rogerq@kernel.org \
--cc=dan.carpenter@oracle.com \
--cc=devicetree@vger.kernel.org \
--cc=grygorii.strashko@ti.com \
--cc=kishon@ti.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=robh+dt@kernel.org \
--cc=s-vadapalli@ti.com \
--cc=sjakhade@cadence.com \
--cc=vkoul@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.