[PATCH v3 2/9] dt-bindings: net: starfive,jh7110-dwmac: Add JH7100 SoC compatible

Cristian Ciocaltea cristian.ciocaltea at collabora.com
Mon Dec 18 04:02:06 PST 2023


On 12/17/23 23:09, Conor Dooley wrote:
> On Fri, Dec 15, 2023 at 11:03:24PM +0200, Cristian Ciocaltea wrote:
>> On 12/15/23 22:59, Samuel Holland wrote:
>>> On 2023-12-15 2:47 PM, Jessica Clarke wrote:
>>>> On 15 Dec 2023, at 20:40, Cristian Ciocaltea <cristian.ciocaltea at collabora.com> wrote:
>>>>>
>>>>> The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly
>>>>> similar to the newer JH7110, but it requires only two interrupts and a
>>>>> single reset line, which is 'ahb' instead of the commonly used
>>>>> 'stmmaceth'.
>>>>>
>>>>> Since the common binding 'snps,dwmac' allows selecting 'ahb' only in
>>>>> conjunction with 'stmmaceth', extend the logic to also permit exclusive
>>>>> usage of the 'ahb' reset name.  This ensures the following use cases are
>>>>> supported:
>>>>>
>>>>>  JH7110: reset-names = "stmmaceth", "ahb";
>>>>>  JH7100: reset-names = "ahb";
>>>>>  other:  reset-names = "stmmaceth";
>>>>>
>>>>> Also note the need to use a different dwmac fallback, as v5.20 applies
>>>>> to JH7110 only, while JH7100 relies on v3.7x.
>>>>>
>>>>> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea at collabora.com>
>>>>> ---
>>>>> .../devicetree/bindings/net/snps,dwmac.yaml   |  3 +-
>>>>> .../bindings/net/starfive,jh7110-dwmac.yaml   | 74 +++++++++++++------
>>>>> 2 files changed, 55 insertions(+), 22 deletions(-)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>>>>> index 5c2769dc689a..c1380ff1c054 100644
>>>>> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>>>>> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>>>>> @@ -95,6 +95,7 @@ properties:
>>>>>         - snps,dwmac-5.20
>>>>>         - snps,dwxgmac
>>>>>         - snps,dwxgmac-2.10
>>>>> +        - starfive,jh7100-dwmac
>>>>>         - starfive,jh7110-dwmac
>>>>>
>>>>>   reg:
>>>>> @@ -146,7 +147,7 @@ properties:
>>>>>   reset-names:
>>>>>     minItems: 1
>>>>>     items:
>>>>> -      - const: stmmaceth
>>>>> +      - enum: [stmmaceth, ahb]
>>>>>       - const: ahb
>>>>
>>>> I’m not so well-versed in the YAML bindings, but would this not allow
>>>> reset-names = "ahb", "ahb"?
>>>
>>> Yes, it would. You need something like:
>>>
>>> reset-names:
>>>   oneOf:
>>>     - enum: [stmmaceth, ahb]
>>>     - items:
>>>         - const: stmmaceth
>>>         - const: ahb
>>
>> Oh yes, I always forget about the "oneOf" thing. Thanks!
> 
> Won't this also relax the naming for all devices that allow a single
> reset, but expect the stmmaceth one? I'm not sure that that actually
> matters, I think the consumer bindings have constraints themselves.

Before commit 843f603762a5 ("dt-bindings: net: snps,dwmac: Add 'ahb'
reset/reset-name"), the 'stmmaceth' was the only possible option, hence
there was no need for any constraints on the consumer bindings.  But
afterwards it was allowed to use both resets, hence I think the bindings
should have been updated at that time by adding 'maxItems: 1' to prevent
using the 2nd reset.

I could fix this in a separate series, if it's not something mandatory
to be handled here.

Thanks for reviewing,
Cristian



More information about the linux-riscv mailing list