mbox series

[v2,0/3] Add standalone ethernet MAC entries for qcs615

Message ID 20241224-schema-v2-0-000ea9044c49@quicinc.com
Headers show
Series Add standalone ethernet MAC entries for qcs615 | expand

Message

Yijie Yang Dec. 24, 2024, 3:07 a.m. UTC
Add separate EMAC entries for qcs615 since its core version is 2.3.1,
compared to sm8150's 2.1.2.

Signed-off-by: Yijie Yang <quic_yijiyang@quicinc.com>
---
Changes in v2:
- Update the subject for the first patch.
- Link to v1: https://lore.kernel.org/r/20241118-schema-v1-0-11b7c1583c0c@quicinc.com

---
Yijie Yang (3):
      dt-bindings: net: qcom,ethqos: Drop fallback compatible for qcom,qcs615-ethqos
      dt-bindings: net: snps,dwmac: add description for qcs615
      net: stmmac: dwmac-qcom-ethqos: add support for EMAC on qcs615 platforms

 Documentation/devicetree/bindings/net/qcom,ethqos.yaml  |  5 +----
 Documentation/devicetree/bindings/net/snps,dwmac.yaml   |  2 ++
 drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 17 +++++++++++++++++
 3 files changed, 20 insertions(+), 4 deletions(-)
---
base-commit: 3664e6c4f4d07fa51834cd59d94b42b7f803e79b
change-id: 20241111-schema-7915779020f5

Best regards,

Comments

Dmitry Baryshkov Dec. 24, 2024, 4:18 a.m. UTC | #1
On Tue, Dec 24, 2024 at 11:07:03AM +0800, Yijie Yang wrote:
> qcs615 uses EMAC version 2.3.1, add the relevant defines and add the new
> compatible.
> 
> Signed-off-by: Yijie Yang <quic_yijiyang@quicinc.com>
> ---
>  drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
> index 901a3c1959fa57efb078da795ad4f92a8b6f71e1..8c76beaee48821eb2853f4e3f8bfd37db8cadf78 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
> @@ -249,6 +249,22 @@ static const struct ethqos_emac_driver_data emac_v2_1_0_data = {
>  	.has_emac_ge_3 = false,
>  };
>  
> +static const struct ethqos_emac_por emac_v2_3_1_por[] = {
> +	{ .offset = RGMII_IO_MACRO_CONFIG,	.value = 0x00C01343 },
> +	{ .offset = SDCC_HC_REG_DLL_CONFIG,	.value = 0x2004642C },

lowercase the hex, please.

> +	{ .offset = SDCC_HC_REG_DDR_CONFIG,	.value = 0x00000000 },
> +	{ .offset = SDCC_HC_REG_DLL_CONFIG2,	.value = 0x00200000 },
> +	{ .offset = SDCC_USR_CTL,		.value = 0x00010800 },
> +	{ .offset = RGMII_IO_MACRO_CONFIG2,	.value = 0x00002060 },
> +};
> +
> +static const struct ethqos_emac_driver_data emac_v2_3_1_data = {
> +	.por = emac_v2_3_1_por,
> +	.num_por = ARRAY_SIZE(emac_v2_3_1_por),
> +	.rgmii_config_loopback_en = true,
> +	.has_emac_ge_3 = false,
> +};

Modulo emac_v2_3_1_por vs emac_v2_3_0_por, this is the same as
emac_v2_3_0_data. Which means that bindings for qcs615-ethqos should be
corrected to use qcom,qcs404-ethqos as as fallback entry, making this
patch unused. Please correct the bindings instead.

> +
>  static const struct ethqos_emac_por emac_v3_0_0_por[] = {
>  	{ .offset = RGMII_IO_MACRO_CONFIG,	.value = 0x40c01343 },
>  	{ .offset = SDCC_HC_REG_DLL_CONFIG,	.value = 0x2004642c },
> @@ -898,6 +914,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
>  
>  static const struct of_device_id qcom_ethqos_match[] = {
>  	{ .compatible = "qcom,qcs404-ethqos", .data = &emac_v2_3_0_data},
> +	{ .compatible = "qcom,qcs615-ethqos", .data = &emac_v2_3_1_data},
>  	{ .compatible = "qcom,sa8775p-ethqos", .data = &emac_v4_0_0_data},
>  	{ .compatible = "qcom,sc8280xp-ethqos", .data = &emac_v3_0_0_data},
>  	{ .compatible = "qcom,sm8150-ethqos", .data = &emac_v2_1_0_data},
> 
> -- 
> 2.34.1
>
Yijie Yang Dec. 24, 2024, 4:36 a.m. UTC | #2
On 2024-12-24 12:18, Dmitry Baryshkov wrote:
> On Tue, Dec 24, 2024 at 11:07:03AM +0800, Yijie Yang wrote:
>> qcs615 uses EMAC version 2.3.1, add the relevant defines and add the new
>> compatible.
>>
>> Signed-off-by: Yijie Yang <quic_yijiyang@quicinc.com>
>> ---
>>   drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 17 +++++++++++++++++
>>   1 file changed, 17 insertions(+)
>>
>> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
>> index 901a3c1959fa57efb078da795ad4f92a8b6f71e1..8c76beaee48821eb2853f4e3f8bfd37db8cadf78 100644
>> --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
>> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
>> @@ -249,6 +249,22 @@ static const struct ethqos_emac_driver_data emac_v2_1_0_data = {
>>   	.has_emac_ge_3 = false,
>>   };
>>   
>> +static const struct ethqos_emac_por emac_v2_3_1_por[] = {
>> +	{ .offset = RGMII_IO_MACRO_CONFIG,	.value = 0x00C01343 },
>> +	{ .offset = SDCC_HC_REG_DLL_CONFIG,	.value = 0x2004642C },
> 
> lowercase the hex, please.

I will take care of it.

> 
>> +	{ .offset = SDCC_HC_REG_DDR_CONFIG,	.value = 0x00000000 },
>> +	{ .offset = SDCC_HC_REG_DLL_CONFIG2,	.value = 0x00200000 },
>> +	{ .offset = SDCC_USR_CTL,		.value = 0x00010800 },
>> +	{ .offset = RGMII_IO_MACRO_CONFIG2,	.value = 0x00002060 },
>> +};
>> +
>> +static const struct ethqos_emac_driver_data emac_v2_3_1_data = {
>> +	.por = emac_v2_3_1_por,
>> +	.num_por = ARRAY_SIZE(emac_v2_3_1_por),
>> +	.rgmii_config_loopback_en = true,
>> +	.has_emac_ge_3 = false,
>> +};
> 
> Modulo emac_v2_3_1_por vs emac_v2_3_0_por, this is the same as
> emac_v2_3_0_data. Which means that bindings for qcs615-ethqos should be
> corrected to use qcom,qcs404-ethqos as as fallback entry, making this
> patch unused. Please correct the bindings instead.

Although they currently share the same data, they are actually two 
different versions. Their differences are not apparent now but will 
become evident once new features are uploaded. If I revert to 
qcom,qcs404-ethqos now, it will be challenging to distinguish between 
them in the future.

> 
>> +
>>   static const struct ethqos_emac_por emac_v3_0_0_por[] = {
>>   	{ .offset = RGMII_IO_MACRO_CONFIG,	.value = 0x40c01343 },
>>   	{ .offset = SDCC_HC_REG_DLL_CONFIG,	.value = 0x2004642c },
>> @@ -898,6 +914,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
>>   
>>   static const struct of_device_id qcom_ethqos_match[] = {
>>   	{ .compatible = "qcom,qcs404-ethqos", .data = &emac_v2_3_0_data},
>> +	{ .compatible = "qcom,qcs615-ethqos", .data = &emac_v2_3_1_data},
>>   	{ .compatible = "qcom,sa8775p-ethqos", .data = &emac_v4_0_0_data},
>>   	{ .compatible = "qcom,sc8280xp-ethqos", .data = &emac_v3_0_0_data},
>>   	{ .compatible = "qcom,sm8150-ethqos", .data = &emac_v2_1_0_data},
>>
>> -- 
>> 2.34.1
>>
>
Yijie Yang Dec. 24, 2024, 5:47 a.m. UTC | #3
On 2024-12-24 12:16, Dmitry Baryshkov wrote:
> On Tue, Dec 24, 2024 at 11:07:00AM +0800, Yijie Yang wrote:
>> Add separate EMAC entries for qcs615 since its core version is 2.3.1,
>> compared to sm8150's 2.1.2.
>>
>> Signed-off-by: Yijie Yang <quic_yijiyang@quicinc.com>
>> ---
>> Changes in v2:
>> - Update the subject for the first patch.
>> - Link to v1: https://lore.kernel.org/r/20241118-schema-v1-0-11b7c1583c0c@quicinc.com
>>
>> ---
>> Yijie Yang (3):
>>        dt-bindings: net: qcom,ethqos: Drop fallback compatible for qcom,qcs615-ethqos
>>        dt-bindings: net: snps,dwmac: add description for qcs615
>>        net: stmmac: dwmac-qcom-ethqos: add support for EMAC on qcs615 platforms
>>
>>   Documentation/devicetree/bindings/net/qcom,ethqos.yaml  |  5 +----
>>   Documentation/devicetree/bindings/net/snps,dwmac.yaml   |  2 ++
>>   drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 17 +++++++++++++++++
>>   3 files changed, 20 insertions(+), 4 deletions(-)
>> ---
>> base-commit: 3664e6c4f4d07fa51834cd59d94b42b7f803e79b
> 
> Which commit is it? I can't find it in linux-next

It's a tag next-20241108, titled 'Add linux-next specific files for 
20241108'.

> 
>> change-id: 20241111-schema-7915779020f5
>>
>> Best regards,
>> -- 
>> Yijie Yang <quic_yijiyang@quicinc.com>
>>
>
Yijie Yang Dec. 24, 2024, 6:02 a.m. UTC | #4
On 2024-12-24 13:53, Dmitry Baryshkov wrote:
> On Tue, 24 Dec 2024 at 07:47, Yijie Yang <quic_yijiyang@quicinc.com> wrote:
>>
>>
>>
>> On 2024-12-24 12:16, Dmitry Baryshkov wrote:
>>> On Tue, Dec 24, 2024 at 11:07:00AM +0800, Yijie Yang wrote:
>>>> Add separate EMAC entries for qcs615 since its core version is 2.3.1,
>>>> compared to sm8150's 2.1.2.
>>>>
>>>> Signed-off-by: Yijie Yang <quic_yijiyang@quicinc.com>
>>>> ---
>>>> Changes in v2:
>>>> - Update the subject for the first patch.
>>>> - Link to v1: https://lore.kernel.org/r/20241118-schema-v1-0-11b7c1583c0c@quicinc.com
>>>>
>>>> ---
>>>> Yijie Yang (3):
>>>>         dt-bindings: net: qcom,ethqos: Drop fallback compatible for qcom,qcs615-ethqos
>>>>         dt-bindings: net: snps,dwmac: add description for qcs615
>>>>         net: stmmac: dwmac-qcom-ethqos: add support for EMAC on qcs615 platforms
>>>>
>>>>    Documentation/devicetree/bindings/net/qcom,ethqos.yaml  |  5 +----
>>>>    Documentation/devicetree/bindings/net/snps,dwmac.yaml   |  2 ++
>>>>    drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 17 +++++++++++++++++
>>>>    3 files changed, 20 insertions(+), 4 deletions(-)
>>>> ---
>>>> base-commit: 3664e6c4f4d07fa51834cd59d94b42b7f803e79b
>>>
>>> Which commit is it? I can't find it in linux-next
>>
>> It's a tag next-20241108, titled 'Add linux-next specific files for
>> 20241108'.
> 
> Nearly two months old? okay...

I will provide an update in the next version.

>
Krzysztof Kozlowski Dec. 24, 2024, 9:03 a.m. UTC | #5
On 24/12/2024 04:07, Yijie Yang wrote:
> Add the necessary compatible entries for qcs615 to ensure its validation.
> 
> Signed-off-by: Yijie Yang <quic_yijiyang@quicinc.com>
> ---
>  Documentation/devicetree/bindings/net/snps,dwmac.yaml | 2 ++
>  1 file changed, 2 insertions(+)
> 
This should be squashed with previous, otherwise patchset is not bisectable.

Best regards,
Krzysztof
Yijie Yang Dec. 25, 2024, 8:47 a.m. UTC | #6
On 2024-12-24 13:05, Dmitry Baryshkov wrote:
> On Tue, Dec 24, 2024 at 12:36:29PM +0800, Yijie Yang wrote:
>>
>>
>> On 2024-12-24 12:18, Dmitry Baryshkov wrote:
>>> On Tue, Dec 24, 2024 at 11:07:03AM +0800, Yijie Yang wrote:
>>>> qcs615 uses EMAC version 2.3.1, add the relevant defines and add the new
>>>> compatible.
>>>>
>>>> Signed-off-by: Yijie Yang <quic_yijiyang@quicinc.com>
>>>> ---
>>>>    drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 17 +++++++++++++++++
>>>>    1 file changed, 17 insertions(+)
>>>>
>>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
>>>> index 901a3c1959fa57efb078da795ad4f92a8b6f71e1..8c76beaee48821eb2853f4e3f8bfd37db8cadf78 100644
>>>> --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
>>>> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
>>>> @@ -249,6 +249,22 @@ static const struct ethqos_emac_driver_data emac_v2_1_0_data = {
>>>>    	.has_emac_ge_3 = false,
>>>>    };
>>>> +static const struct ethqos_emac_por emac_v2_3_1_por[] = {
>>>> +	{ .offset = RGMII_IO_MACRO_CONFIG,	.value = 0x00C01343 },
>>>> +	{ .offset = SDCC_HC_REG_DLL_CONFIG,	.value = 0x2004642C },
>>>
>>> lowercase the hex, please.
>>
>> I will take care of it.
>>
>>>
>>>> +	{ .offset = SDCC_HC_REG_DDR_CONFIG,	.value = 0x00000000 },
>>>> +	{ .offset = SDCC_HC_REG_DLL_CONFIG2,	.value = 0x00200000 },
>>>> +	{ .offset = SDCC_USR_CTL,		.value = 0x00010800 },
>>>> +	{ .offset = RGMII_IO_MACRO_CONFIG2,	.value = 0x00002060 },
>>>> +};
>>>> +
>>>> +static const struct ethqos_emac_driver_data emac_v2_3_1_data = {
>>>> +	.por = emac_v2_3_1_por,
>>>> +	.num_por = ARRAY_SIZE(emac_v2_3_1_por),
>>>> +	.rgmii_config_loopback_en = true,
>>>> +	.has_emac_ge_3 = false,
>>>> +};
>>>
>>> Modulo emac_v2_3_1_por vs emac_v2_3_0_por, this is the same as
>>> emac_v2_3_0_data. Which means that bindings for qcs615-ethqos should be
>>> corrected to use qcom,qcs404-ethqos as as fallback entry, making this
>>> patch unused. Please correct the bindings instead.
>>
>> Although they currently share the same data, they are actually two different
>> versions. Their differences are not apparent now but will become evident
>> once new features are uploaded. If I revert to qcom,qcs404-ethqos now, it
>> will be challenging to distinguish between them in the future.
> 
> Which features? Moreover, note, the use of the fallback doesn't preclude
> you from addign a new compat entry later on. By having a fallback you
> simply declare that the device A is also compatible with the device B.
> 

Yes, you're right. I confirmed with the hardware team that the EMAC of 
qcs615-ride is the same as that of qcs404. I will fall back the 
compatible of qcs615 to the latter and drop the unnecessary patches.

>>
>>>
>>>> +
>>>>    static const struct ethqos_emac_por emac_v3_0_0_por[] = {
>>>>    	{ .offset = RGMII_IO_MACRO_CONFIG,	.value = 0x40c01343 },
>>>>    	{ .offset = SDCC_HC_REG_DLL_CONFIG,	.value = 0x2004642c },
>>>> @@ -898,6 +914,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
>>>>    static const struct of_device_id qcom_ethqos_match[] = {
>>>>    	{ .compatible = "qcom,qcs404-ethqos", .data = &emac_v2_3_0_data},
>>>> +	{ .compatible = "qcom,qcs615-ethqos", .data = &emac_v2_3_1_data},
>>>>    	{ .compatible = "qcom,sa8775p-ethqos", .data = &emac_v4_0_0_data},
>>>>    	{ .compatible = "qcom,sc8280xp-ethqos", .data = &emac_v3_0_0_data},
>>>>    	{ .compatible = "qcom,sm8150-ethqos", .data = &emac_v2_1_0_data},
>>>>
>>>> -- 
>>>> 2.34.1
>>>>
>>>
>>
>> -- 
>> Best Regards,
>> Yijie
>>
>