[U-Boot] [PATCH 2/4 v3] doc: bindings: Add description for MDIO MUX dts nodes

Alex Marginean alexm.osslist at gmail.com
Mon Jul 8 14:33:26 UTC 2019


On 7/8/2019 10:40 AM, Bin Meng wrote:
> On Tue, Jun 18, 2019 at 10:58 PM Alexandru Marginean
> <alexandru.marginean at nxp.com> wrote:
>>
>> Adds a short bindings document describing the expected structure of a MDIO
>> MUX dts node.  This is based on Linux binding and the example is in fact
>> copied from there.
>>
>> Signed-off-by: Alex Marginean <alexm.osslist at gmail.com>
>> ---
>>
>> Changes in v2:
>>          - no change
>> Changes in v3:
>>          - no change, just fighting with the email server
>>
>>   doc/device-tree-bindings/net/mdio-mux.txt | 61 +++++++++++++++++++++++
>>   1 file changed, 61 insertions(+)
>>   create mode 100644 doc/device-tree-bindings/net/mdio-mux.txt
>>
>> diff --git a/doc/device-tree-bindings/net/mdio-mux.txt b/doc/device-tree-bindings/net/mdio-mux.txt
>> new file mode 100644
>> index 0000000000..fdf817fd93
>> --- /dev/null
>> +++ b/doc/device-tree-bindings/net/mdio-mux.txt
>> @@ -0,0 +1,61 @@
>> +The expected structure of an MDIO MUX device tree node is described here.  This
>> +is heavily based on current Linux specification.
>> +The MDIO buses downstream of the MUX should be described in the device tree as
>> +child nodes as indicated below.
>> +
>> +Required properties:
>> +mdio-parent-bus = a phandle to the MDIO bus used to perform actual I/O.  This is
>> +                  typically a real MDIO device, unless there are cascaded MUXes.
> 
> In Linux, "mdio-parent-bus" is optional, but in U-Boot this is required?

That was my plan, making it optional requires some extra code that I
didn't put in.  I could put that code in but it would be unused for now.
I can do it, or the change can be done whenever someone adds a MUX which
is driven over parent MDIO.

>> +#address-cells = <1>, each MDIO group is identified by one 32b value.
>> +#size-cells = <0>
>> +
>> +Other properties:
>> +The properties described here are sufficient for MDIO MUX DM class code, but
>> +MUX drivers may define additional properties, either required or optional.
>> +
>> +Required properties in child nodes:
>> +reg = value to be configured on the MUX to select the respective downstream
>> +      MDIO.
>> +
>> +Child nodes should normally contain PHY nodes, referenced by phandle from
>> +ethernet nodes of the eth interfaces using these PHYs.
>> +
>> +Example structure, extracted from Linux bindings document:
>> +
>> +       /* The parent MDIO bus. */
>> +       smi1: mdio at 1180000001900 {
>> +               compatible = "cavium,octeon-3860-mdio";
>> +               #address-cells = <1>;
>> +               #size-cells = <0>;
>> +               reg = <0x11800 0x00001900 0x0 0x40>;
>> +       };
>> +
>> +       /*
>> +          An NXP sn74cbtlv3253 dual 1-of-4 switch controlled by a
>> +          pair of GPIO lines.  Child busses 2 and 3 populated with 4
>> +          PHYs each.
>> +        */
> 
> It looks the example is not complete, which makes it hard for people
> to understand (ie: only bus 2 is listed below) without reading the
> Linux bindings doc.

I did chop it down to the piece I though it's relevant, I can pull in
the full example.  Or I can replace it with the definition of the device
I'm working on, that way the example is practical.  'mdio-mux-gpio' is
not something I was planning to add to u-boot now.

Thank you!
Alex

> 
>> +       mdio-mux {
>> +               compatible = "mdio-mux-gpio";
>> +               gpios = <&gpio1 3 0>, <&gpio1 4 0>;
>> +               mdio-parent-bus = <&smi1>;
>> +               #address-cells = <1>;
>> +               #size-cells = <0>;
>> +
>> +               mdio at 2 {
>> +                       reg = <2>;
>> +                       #address-cells = <1>;
>> +                       #size-cells = <0>;
>> +
>> +                       phy11: ethernet-phy at 1 {
>> +                               reg = <1>;
>> +                               marvell,reg-init = <3 0x10 0 0x5777>,
>> +                                       <3 0x11 0 0x00aa>,
>> +                                       <3 0x12 0 0x4105>,
>> +                                       <3 0x13 0 0x0a60>;
>> +                               interrupt-parent = <&gpio>;
>> +                               interrupts = <10 8>; /* Pin 10, active low */
>> +                       };
>> +               };
>> +       };
>> +
> 
> Regards,
> Bin
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
> 



More information about the U-Boot mailing list