Commit 5d1c5594 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by David S. Miller
Browse files

dt-bindings: net: brcm,unimac-mdio: convert to the json-schema



This helps validating DTS files.

Introduced example binding changes:
1. Fixed reg formatting
2. Swapped #address-cells and #size-cells incorrect values
3. Renamed node: s/phy/ethernet-phy/

Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9b60ac54
Loading
Loading
Loading
Loading
+0 −43
Original line number Diff line number Diff line
* Broadcom UniMAC MDIO bus controller

Required properties:
- compatible: should one from "brcm,genet-mdio-v1", "brcm,genet-mdio-v2",
  "brcm,genet-mdio-v3", "brcm,genet-mdio-v4", "brcm,genet-mdio-v5" or
  "brcm,unimac-mdio"
- reg: address and length of the register set for the device, first one is the
  base register, and the second one is optional and for indirect accesses to
  larger than 16-bits MDIO transactions
- reg-names: name(s) of the register must be "mdio" and optional "mdio_indir_rw"
- #size-cells: must be 1
- #address-cells: must be 0

Optional properties:
- interrupts: must be one if the interrupt is shared with the Ethernet MAC or
  Ethernet switch this MDIO block is integrated from, or must be two, if there
  are two separate interrupts, first one must be "mdio done" and second must be
  for "mdio error"
- interrupt-names: must be "mdio_done_error" when there is a share interrupt fed
  to this hardware block, or must be "mdio_done" for the first interrupt and
  "mdio_error" for the second when there are separate interrupts
- clocks: A reference to the clock supplying the MDIO bus controller
- clock-frequency: the MDIO bus clock that must be output by the MDIO bus
  hardware, if absent, the default hardware values are used

Child nodes of this MDIO bus controller node are standard Ethernet PHY device
nodes as described in Documentation/devicetree/bindings/net/phy.txt

Example:

mdio@403c0 {
	compatible = "brcm,unimac-mdio";
	reg = <0x403c0 0x8 0x40300 0x18>;
	reg-names = "mdio", "mdio_indir_rw";
	#size-cells = <1>;
	#address-cells = <0>;

	...
	phy@0 {
		compatible = "ethernet-phy-ieee802.3-c22";
		reg = <0>;
	};
};
+84 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/brcm,unimac-mdio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom UniMAC MDIO bus controller

maintainers:
  - Rafał Miłecki <rafal@milecki.pl>

allOf:
  - $ref: mdio.yaml#

properties:
  compatible:
    enum:
      - brcm,genet-mdio-v1
      - brcm,genet-mdio-v2
      - brcm,genet-mdio-v3
      - brcm,genet-mdio-v4
      - brcm,genet-mdio-v5
      - brcm,unimac-mdio

  reg:
    minItems: 1
    items:
      - description: base register
      - description: indirect accesses to larger than 16-bits MDIO transactions

  reg-names:
    minItems: 1
    items:
      - const: mdio
      - const: mdio_indir_rw

  interrupts:
    oneOf:
      - description: >
          Interrupt shared with the Ethernet MAC or Ethernet switch this MDIO
          block is integrated from
      - items:
          - description: |
              "mdio done" interrupt
          - description: |
              "mdio error" interrupt

  interrupt-names:
    oneOf:
      - const: mdio_done_error
      - items:
          - const: mdio_done
          - const: mdio_error

  clocks:
    description: A reference to the clock supplying the MDIO bus controller

  clock-frequency:
    description: >
      The MDIO bus clock that must be output by the MDIO bus hardware, if
      absent, the default hardware values are used

unevaluatedProperties: false

required:
  - reg
  - reg-names
  - '#address-cells'
  - '#size-cells'

examples:
  - |
    mdio@403c0 {
        compatible = "brcm,unimac-mdio";
        reg = <0x403c0 0x8>, <0x40300 0x18>;
        reg-names = "mdio", "mdio_indir_rw";
        #address-cells = <1>;
        #size-cells = <0>;

        ethernet-phy@0 {
            compatible = "ethernet-phy-ieee802.3-c22";
            reg = <0>;
        };
    };