On Sun, Jan 31, 2016 at 09:57:13PM -0800, Andrey Smirnov wrote:
> Add Barebox specific device tree provisions to allow specifying MAC
> addresses for network interfaces via device tree.
> 
> Signed-off-by: Andrey Smirnov <andrew.smir...@gmail.com>
> ---
>  .../bindings/barebox/barebox,mac-address-map.rst   |  27 ++++
>  drivers/misc/Makefile                              |   1 +
>  drivers/misc/mac-address-map.c                     | 142 
> +++++++++++++++++++++
>  3 files changed, 170 insertions(+)
>  create mode 100644 
> Documentation/devicetree/bindings/barebox/barebox,mac-address-map.rst
>  create mode 100644 drivers/misc/mac-address-map.c
> 
> diff --git 
> a/Documentation/devicetree/bindings/barebox/barebox,mac-address-map.rst 
> b/Documentation/devicetree/bindings/barebox/barebox,mac-address-map.rst
> new file mode 100644
> index 0000000..1ac3062
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/barebox/barebox,mac-address-map.rst
> @@ -0,0 +1,27 @@
> +barebox MAC address map
> +=======================
> +
> +This driver allows to specify each network adapter's source of MAC address 
> from the devicetree.
> +
> +Required properties:
> +
> +* ``compatible``: should be ``barebox,mac-address-map``
> +
> +Besides ``compatible`` property the node is expected to contain a
> +number of children nodes each specifing a single "MAC source ->
> +interface" mapping.
> +
> +Child node's required properties:
> +* ``network-interface``: phandle corresponding to network interface
> +* ``mac-location``: a pair of phandle to 'cdev' containing MAC address
> +  and offset withing that 'cdev'
> +
> +Example::
> +
> +  mac-address-map {
> +     compatible = "barebox,mac-address-map";
> +     nic@0 {
> +             network-interface = <&fec>;
> +             mac-location = <&ocotp 0x88>;
> +     };
> +  };

I wonder if the correct way to do this wouldn't be nvmem, see
Documentation/devicetree/bindings/nvmem/nvmem.txt in the Kernel.
This would mandate a binding like:

        ocotp {
                mac1: mac@88 {
                        reg = <0x88 0x6>;
                };
        };

        &fec {
                nvmem-cells = <&mac1>;
                nvmem-cell-names = "mac-address";
        };

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to