Re: [PATCH v5 2/4] Documentation: Bindings: Add STM32 DWMAC glue
From: Chen-Yu Tsai
Date: Mon Mar 21 2016 - 07:09:15 EST
On Mon, Mar 21, 2016 at 6:45 PM, Alexandre Torgue
<alexandre.torgue@xxxxxxxxx> wrote:
> Hi,
>
> 2016-03-18 17:00 GMT+01:00 Chen-Yu Tsai <wens@xxxxxxxx>:
>> Hi,
>>
>> On Fri, Mar 18, 2016 at 11:37 PM, Alexandre TORGUE
>> <alexandre.torgue@xxxxxxxxx> wrote:
>>> Signed-off-by: Alexandre TORGUE <alexandre.torgue@xxxxxxxxx>
>>>
>>> diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.txt b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
>>> new file mode 100644
>>> index 0000000..ada2aa4
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
>>> @@ -0,0 +1,32 @@
>>> +STMicroelectronics STM32 / MCU DWMAC glue layer controller
>>> +
>>> +This file documents platform glue layer for stmmac.
>>> +Please see stmmac.txt for the other unchanged properties.
>>> +
>>> +The device node has following properties.
>>> +
>>> +Required properties:
>>> +- compatible: Should be "st,stm32-dwmac" to select glue, and
>>> + "snps,dwmac-3.50a" to select IP vesrion.
>>
>> If you need have sort of hardware glue, then it is not compatible.
>>
>
> We could have the case where the glue is set by a bootloader.
> In this case, we will select IP version in compatible and we will use
> generic dwmac glue to probe stmmac driver.
It seems most platforms using DWMAC follow this design set by
the original stmmac bindings. I'm arguing that the requirement
of setting up the glue makes them incompatible.
What happens when the bootloader didn't setup the glue? And one
forgets to build the STM32 driver, only the generic one? The
generic driver even matches to some, but not all, version
strings.
Maybe it would've been better if the versioned strings were
only used to indicate functionality, and not used to bind
the drivers. But the bindings were set some time ago.
Regards
ChenYu
> Regards
>
> Alex.
>
>> ChenYu
>>
>>> +- clocks: Must contain a phandle for each entry in clock-names.
>>> +- clock-names: Should be "stmmaceth" for the host clock.
>>> + Should be "tx-clk" for the MAC TX clock.
>>> + Should be "rx-clk" for the MAC RX clock.
>>> +- st,syscon : Should be phandle/offset pair. The phandle to the syscon node which
>>> + encompases the glue register, and the offset of the control register.
>>> +Example:
>>> +
>>> + ethernet0: dwmac@40028000 {
>>> + compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
>>> + status = "disabled";
>>> + reg = <0x40028000 0x8000>;
>>> + reg-names = "stmmaceth";
>>> + interrupts = <0 61 0>, <0 62 0>;
>>> + interrupt-names = "macirq", "eth_wake_irq";
>>> + clock-names = "stmmaceth", "tx-clk", "rx-clk";
>>> + clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
>>> + st,syscon = <&syscfg 0x4>;
>>> + snps,pbl = <8>;
>>> + snps,mixed-burst;
>>> + dma-ranges;
>>> + };
>>> --
>>> 1.9.1
>>>
>>>
>>> _______________________________________________
>>> linux-arm-kernel mailing list
>>> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel