diff mbox series

dt-bindings: net: qcom,emac: convert to dtschema

Message ID 20240717090931.13563-1-rayyan.ansari@linaro.org (mailing list archive)
State Not Applicable
Headers show
Series dt-bindings: net: qcom,emac: convert to dtschema | expand

Commit Message

Rayyan Ansari July 17, 2024, 9:09 a.m. UTC
Convert the bindings for the Qualcomm EMAC Ethernet Controller from the
old text format to yaml.

Also move the phy node of the controller to be within an mdio block so
we can use mdio.yaml.

Signed-off-by: Rayyan Ansari <rayyan.ansari@linaro.org>
---
 .../devicetree/bindings/net/qcom,emac.yaml    |  98 ++++++++++++++++
 .../devicetree/bindings/net/qcom-emac.txt     | 111 ------------------
 2 files changed, 98 insertions(+), 111 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/qcom,emac.yaml
 delete mode 100644 Documentation/devicetree/bindings/net/qcom-emac.txt

Comments

Andrew Lunn July 17, 2024, 3:20 p.m. UTC | #1
On Wed, Jul 17, 2024 at 10:09:27AM +0100, Rayyan Ansari wrote:
> Convert the bindings for the Qualcomm EMAC Ethernet Controller from the
> old text format to yaml.
> 
> Also move the phy node of the controller to be within an mdio block so
> we can use mdio.yaml.

Does the MAC driver already support this?

When i look at the emacs-phy.c there is

	struct device_node *np = pdev->dev.of_node;

                ret = of_mdiobus_register(mii_bus, np);

I don't see anything looking for the mdio node in the tree.

	Andrew
Rayyan Ansari July 17, 2024, 3:45 p.m. UTC | #2
On Wed Jul 17, 2024 at 4:20 PM BST, Andrew Lunn wrote:
> On Wed, Jul 17, 2024 at 10:09:27AM +0100, Rayyan Ansari wrote:
> > Convert the bindings for the Qualcomm EMAC Ethernet Controller from the
> > old text format to yaml.
> > 
> > Also move the phy node of the controller to be within an mdio block so
> > we can use mdio.yaml.
>
> Does the MAC driver already support this?
>
> When i look at the emacs-phy.c there is
>
> 	struct device_node *np = pdev->dev.of_node;
>
>                 ret = of_mdiobus_register(mii_bus, np);
>
> I don't see anything looking for the mdio node in the tree.
>
> 	Andrew

Hi Andrew,

Yes, from my understanding an mdio node is not explicitly needed as it
just uses "phy-handle".

However, I think it makes more sense to place the phy within an mdio
node instead of directly under the controller node. This is based off
of 5ecd39d1bc4b ("dt-bindings: net: convert emac_rockchip.txt to YAML"),
in which the same decision was made ("Add mdio sub node"), also during a
text -> yaml conversion.
Rob Herring (Arm) July 17, 2024, 4:28 p.m. UTC | #3
On Wed, 17 Jul 2024 10:09:27 +0100, Rayyan Ansari wrote:
> Convert the bindings for the Qualcomm EMAC Ethernet Controller from the
> old text format to yaml.
> 
> Also move the phy node of the controller to be within an mdio block so
> we can use mdio.yaml.
> 
> Signed-off-by: Rayyan Ansari <rayyan.ansari@linaro.org>
> ---
>  .../devicetree/bindings/net/qcom,emac.yaml    |  98 ++++++++++++++++
>  .../devicetree/bindings/net/qcom-emac.txt     | 111 ------------------
>  2 files changed, 98 insertions(+), 111 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/net/qcom,emac.yaml
>  delete mode 100644 Documentation/devicetree/bindings/net/qcom-emac.txt
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/qcom,emac.example.dtb: ethernet@feb20000: compatible: 'oneOf' conditional failed, one must be fixed:
	'qcom,fsm9900-emac' does not match '^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+(pro)?-.*$'
	'qcom,fsm9900-emac' does not match '^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$'
	'qcom,fsm9900-emac' does not match '^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
	'qcom,fsm9900-emac' does not match '^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
	'qcom,fsm9900-emac' does not match '^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
	'qcom,fsm9900-emac' does not match '^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$'
	'qcom,fsm9900-emac' does not match '^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
	'qcom,fsm9900-emac' does not match '^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$'
	'qcom,fsm9900-emac' is not one of ['qcom,dsi-ctrl-6g-qcm2290', 'qcom,gpucc-sdm630', 'qcom,gpucc-sdm660', 'qcom,lcc-apq8064', 'qcom,lcc-ipq8064', 'qcom,lcc-mdm9615', 'qcom,lcc-msm8960', 'qcom,lpass-cpu-apq8016', 'qcom,usb-ss-ipq4019-phy', 'qcom,usb-hs-ipq4019-phy', 'qcom,vqmmc-ipq4019-regulator']
	'qcom,fsm9900-emac' is not one of ['qcom,ipq806x-gmac', 'qcom,ipq806x-nand', 'qcom,ipq806x-sata-phy', 'qcom,ipq806x-usb-phy-ss', 'qcom,ipq806x-usb-phy-hs']
	from schema $id: http://devicetree.org/schemas/arm/qcom-soc.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/qcom,emac.example.dtb: ethernet@feb38000: compatible: 'oneOf' conditional failed, one must be fixed:
	'qcom,fsm9900-emac-sgmii' does not match '^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+(pro)?-.*$'
	'qcom,fsm9900-emac-sgmii' does not match '^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$'
	'qcom,fsm9900-emac-sgmii' does not match '^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
	'qcom,fsm9900-emac-sgmii' does not match '^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
	'qcom,fsm9900-emac-sgmii' does not match '^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
	'qcom,fsm9900-emac-sgmii' does not match '^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$'
	'qcom,fsm9900-emac-sgmii' does not match '^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
	'qcom,fsm9900-emac-sgmii' does not match '^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$'
	'qcom,fsm9900-emac-sgmii' is not one of ['qcom,dsi-ctrl-6g-qcm2290', 'qcom,gpucc-sdm630', 'qcom,gpucc-sdm660', 'qcom,lcc-apq8064', 'qcom,lcc-ipq8064', 'qcom,lcc-mdm9615', 'qcom,lcc-msm8960', 'qcom,lpass-cpu-apq8016', 'qcom,usb-ss-ipq4019-phy', 'qcom,usb-hs-ipq4019-phy', 'qcom,vqmmc-ipq4019-regulator']
	'qcom,fsm9900-emac-sgmii' is not one of ['qcom,ipq806x-gmac', 'qcom,ipq806x-nand', 'qcom,ipq806x-sata-phy', 'qcom,ipq806x-usb-phy-ss', 'qcom,ipq806x-usb-phy-hs']
	from schema $id: http://devicetree.org/schemas/arm/qcom-soc.yaml#

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240717090931.13563-1-rayyan.ansari@linaro.org

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Rob Herring (Arm) July 17, 2024, 4:39 p.m. UTC | #4
On Wed, Jul 17, 2024 at 10:09:27AM +0100, Rayyan Ansari wrote:
> Convert the bindings for the Qualcomm EMAC Ethernet Controller from the
> old text format to yaml.
> 
> Also move the phy node of the controller to be within an mdio block so
> we can use mdio.yaml.
> 
> Signed-off-by: Rayyan Ansari <rayyan.ansari@linaro.org>
> ---
>  .../devicetree/bindings/net/qcom,emac.yaml    |  98 ++++++++++++++++
>  .../devicetree/bindings/net/qcom-emac.txt     | 111 ------------------
>  2 files changed, 98 insertions(+), 111 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/net/qcom,emac.yaml
>  delete mode 100644 Documentation/devicetree/bindings/net/qcom-emac.txt
> 
> diff --git a/Documentation/devicetree/bindings/net/qcom,emac.yaml b/Documentation/devicetree/bindings/net/qcom,emac.yaml
> new file mode 100644
> index 000000000000..cef65130578f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/qcom,emac.yaml
> @@ -0,0 +1,98 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +---
> +$id: http://devicetree.org/schemas/net/qcom,emac.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm EMAC Gigabit Ethernet Controller
> +
> +maintainers:
> +  - Timur Tabi <timur@kernel.org>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - const: qcom,fsm9900-emac
> +      - enum:
> +          - qcom,fsm9900-emac-sgmii
> +          - qcom,qdf2432-emac-sgmii

You just need a single enum for all 3 compatibles.
 
> +  reg:
> +    minItems: 1
> +    maxItems: 2

Need to define what each entry is and perhaps constraints on when it 1 
vs. 2 entries.

> +
> +  interrupts:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +if:
> +  properties:
> +    compatible:
> +      const: qcom,fsm9900-emac
> +then:
> +  allOf:
> +    - $ref: ethernet-controller.yaml#

This goes at the top level and the 'if' schema should be under the 
'allOf'.

> +  properties:
> +    clocks:
> +      minItems: 7
> +      maxItems: 7
> +
> +    clock-names:
> +      items:
> +        - const: axi_clk
> +        - const: cfg_ahb_clk
> +        - const: high_speed_clk
> +        - const: mdio_clk
> +        - const: tx_clk
> +        - const: rx_clk
> +        - const: sys_clk

Define these at the top level and then exclude them in the if schema.

> +
> +    internal-phy:
> +      maxItems: 1

This needs a type ref.

> +
> +    mdio:
> +      $ref: mdio.yaml#
> +      unevaluatedProperties: false
> +
> +  required:
> +    - clocks
> +    - clock-names
> +    - internal-phy
> +    - phy-handle
> +    - mdio
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    emac0: ethernet@feb20000 {

Drop unused labels.

> +        compatible = "qcom,fsm9900-emac";
> +        reg = <0xfeb20000 0x10000>,
> +              <0xfeb36000 0x1000>;
> +        interrupts = <76>;
> +
> +        clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>,
> +                 <&gcc 6>, <&gcc 7>;
> +        clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk",
> +                      "mdio_clk", "tx_clk", "rx_clk", "sys_clk";
> +
> +        internal-phy = <&emac_sgmii>;
> +        phy-handle = <&phy0>;
> +
> +        mdio {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +
> +            phy0: ethernet-phy@0 {
> +                reg = <0>;
> +            };
> +        };
> +    };
> +
> +    emac_sgmii: ethernet@feb38000 {

This should be a separate entry. (You need '- |' above it.)

> +        compatible = "qcom,fsm9900-emac-sgmii";
> +        reg = <0xfeb38000 0x1000>;
> +        interrupts = <80>;
> +    };
Andrew Lunn July 17, 2024, 6:19 p.m. UTC | #5
On Wed, Jul 17, 2024 at 04:45:55PM +0100, Rayyan Ansari wrote:
> On Wed Jul 17, 2024 at 4:20 PM BST, Andrew Lunn wrote:
> > On Wed, Jul 17, 2024 at 10:09:27AM +0100, Rayyan Ansari wrote:
> > > Convert the bindings for the Qualcomm EMAC Ethernet Controller from the
> > > old text format to yaml.
> > > 
> > > Also move the phy node of the controller to be within an mdio block so
> > > we can use mdio.yaml.
> >
> > Does the MAC driver already support this?
> >
> > When i look at the emacs-phy.c there is
> >
> > 	struct device_node *np = pdev->dev.of_node;
> >
> >                 ret = of_mdiobus_register(mii_bus, np);
> >
> > I don't see anything looking for the mdio node in the tree.
> >
> > 	Andrew
> 
> Hi Andrew,
> 
> Yes, from my understanding an mdio node is not explicitly needed as it
> just uses "phy-handle".
> 
> However, I think it makes more sense to place the phy within an mdio
> node instead of directly under the controller node. This is based off
> of 5ecd39d1bc4b ("dt-bindings: net: convert emac_rockchip.txt to YAML"),
> in which the same decision was made ("Add mdio sub node"), also during a
> text -> yaml conversion.
 
Using an MDIO node is preferred, and is the modern way of doing
it. Placing the PHY directly in the MAC node is valid, but it is the
old way of doing it.

It is up to the driver to decide where it looks for the PHY nodes when
it registers the MDIO bus. The np in of_mdiobus_register(mii_bus, np);
points to the MAC node. So when you move the PHYs into the new MDIO
node, they will not be found when the MDIO bus is probed.

Take a look at:

commit 2c60c4c008d4b05b9b65bf88f784556208029333
Author: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Date:   Mon Mar 25 16:34:51 2024 +0100

    ravb: Add support for an optional MDIO mode

as an example where support for such an MDIO node was added to a
driver.

    Andrew

---
pw-bot: cr
Rayyan Ansari July 18, 2024, 10:52 a.m. UTC | #6
On Wed Jul 17, 2024 at 5:39 PM BST, Rob Herring wrote:
> On Wed, Jul 17, 2024 at 10:09:27AM +0100, Rayyan Ansari wrote:
> > Convert the bindings for the Qualcomm EMAC Ethernet Controller from the
> > old text format to yaml.
> > 
> > Also move the phy node of the controller to be within an mdio block so
> > we can use mdio.yaml.
> > 
> > Signed-off-by: Rayyan Ansari <rayyan.ansari@linaro.org>
> > ---
> >  .../devicetree/bindings/net/qcom,emac.yaml    |  98 ++++++++++++++++
> >  .../devicetree/bindings/net/qcom-emac.txt     | 111 ------------------
> >  2 files changed, 98 insertions(+), 111 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/net/qcom,emac.yaml
> >  delete mode 100644 Documentation/devicetree/bindings/net/qcom-emac.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/net/qcom,emac.yaml b/Documentation/devicetree/bindings/net/qcom,emac.yaml
> > new file mode 100644
> > index 000000000000..cef65130578f
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/qcom,emac.yaml
> > @@ -0,0 +1,98 @@
> > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> > +---
> > +$id: http://devicetree.org/schemas/net/qcom,emac.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Qualcomm EMAC Gigabit Ethernet Controller
> > +
> > +maintainers:
> > +  - Timur Tabi <timur@kernel.org>
> > +
> > +properties:
> > +  compatible:
> > +    oneOf:
> > +      - const: qcom,fsm9900-emac
> > +      - enum:
> > +          - qcom,fsm9900-emac-sgmii
> > +          - qcom,qdf2432-emac-sgmii
>
> You just need a single enum for all 3 compatibles.
>  
> > +  reg:
> > +    minItems: 1
> > +    maxItems: 2
>
> Need to define what each entry is and perhaps constraints on when it 1 
> vs. 2 entries.
>
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - interrupts
> > +
> > +if:
> > +  properties:
> > +    compatible:
> > +      const: qcom,fsm9900-emac
> > +then:
> > +  allOf:
> > +    - $ref: ethernet-controller.yaml#
>
> This goes at the top level and the 'if' schema should be under the 
> 'allOf'.

Wouldn't this make ethernet-controller.yaml also be included for
emac-sgmii as well - which isn't a controller?

> > +  properties:
> > +    clocks:
> > +      minItems: 7
> > +      maxItems: 7
> > +
> > +    clock-names:
> > +      items:
> > +        - const: axi_clk
> > +        - const: cfg_ahb_clk
> > +        - const: high_speed_clk
> > +        - const: mdio_clk
> > +        - const: tx_clk
> > +        - const: rx_clk
> > +        - const: sys_clk
>
> Define these at the top level and then exclude them in the if schema.

Just clocks and clock-names? Why so, if sgmii does not require clocks?

> > +
> > +    internal-phy:
> > +      maxItems: 1
>
> This needs a type ref.
>
> > +
> > +    mdio:
> > +      $ref: mdio.yaml#
> > +      unevaluatedProperties: false
> > +
> > +  required:
> > +    - clocks
> > +    - clock-names
> > +    - internal-phy
> > +    - phy-handle
> > +    - mdio
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > +  - |
> > +    emac0: ethernet@feb20000 {
>
> Drop unused labels.
>
> > +        compatible = "qcom,fsm9900-emac";
> > +        reg = <0xfeb20000 0x10000>,
> > +              <0xfeb36000 0x1000>;
> > +        interrupts = <76>;
> > +
> > +        clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>,
> > +                 <&gcc 6>, <&gcc 7>;
> > +        clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk",
> > +                      "mdio_clk", "tx_clk", "rx_clk", "sys_clk";
> > +
> > +        internal-phy = <&emac_sgmii>;
> > +        phy-handle = <&phy0>;
> > +
> > +        mdio {
> > +            #address-cells = <1>;
> > +            #size-cells = <0>;
> > +
> > +            phy0: ethernet-phy@0 {
> > +                reg = <0>;
> > +            };
> > +        };
> > +    };
> > +
> > +    emac_sgmii: ethernet@feb38000 {
>
> This should be a separate entry. (You need '- |' above it.)

Should they not be part of one complete example, since the main node
requires a handle to the sgmii node with 'internal-phy'?

> > +        compatible = "qcom,fsm9900-emac-sgmii";
> > +        reg = <0xfeb38000 0x1000>;
> > +        interrupts = <80>;
> > +    };
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/qcom,emac.yaml b/Documentation/devicetree/bindings/net/qcom,emac.yaml
new file mode 100644
index 000000000000..cef65130578f
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/qcom,emac.yaml
@@ -0,0 +1,98 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+---
+$id: http://devicetree.org/schemas/net/qcom,emac.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm EMAC Gigabit Ethernet Controller
+
+maintainers:
+  - Timur Tabi <timur@kernel.org>
+
+properties:
+  compatible:
+    oneOf:
+      - const: qcom,fsm9900-emac
+      - enum:
+          - qcom,fsm9900-emac-sgmii
+          - qcom,qdf2432-emac-sgmii
+  reg:
+    minItems: 1
+    maxItems: 2
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+if:
+  properties:
+    compatible:
+      const: qcom,fsm9900-emac
+then:
+  allOf:
+    - $ref: ethernet-controller.yaml#
+  properties:
+    clocks:
+      minItems: 7
+      maxItems: 7
+
+    clock-names:
+      items:
+        - const: axi_clk
+        - const: cfg_ahb_clk
+        - const: high_speed_clk
+        - const: mdio_clk
+        - const: tx_clk
+        - const: rx_clk
+        - const: sys_clk
+
+    internal-phy:
+      maxItems: 1
+
+    mdio:
+      $ref: mdio.yaml#
+      unevaluatedProperties: false
+
+  required:
+    - clocks
+    - clock-names
+    - internal-phy
+    - phy-handle
+    - mdio
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    emac0: ethernet@feb20000 {
+        compatible = "qcom,fsm9900-emac";
+        reg = <0xfeb20000 0x10000>,
+              <0xfeb36000 0x1000>;
+        interrupts = <76>;
+
+        clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>,
+                 <&gcc 6>, <&gcc 7>;
+        clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk",
+                      "mdio_clk", "tx_clk", "rx_clk", "sys_clk";
+
+        internal-phy = <&emac_sgmii>;
+        phy-handle = <&phy0>;
+
+        mdio {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            phy0: ethernet-phy@0 {
+                reg = <0>;
+            };
+        };
+    };
+
+    emac_sgmii: ethernet@feb38000 {
+        compatible = "qcom,fsm9900-emac-sgmii";
+        reg = <0xfeb38000 0x1000>;
+        interrupts = <80>;
+    };
diff --git a/Documentation/devicetree/bindings/net/qcom-emac.txt b/Documentation/devicetree/bindings/net/qcom-emac.txt
deleted file mode 100644
index 7ae8aa148634..000000000000
--- a/Documentation/devicetree/bindings/net/qcom-emac.txt
+++ /dev/null
@@ -1,111 +0,0 @@ 
-Qualcomm Technologies EMAC Gigabit Ethernet Controller
-
-This network controller consists of two devices: a MAC and an SGMII
-internal PHY.  Each device is represented by a device tree node.  A phandle
-connects the MAC node to its corresponding internal phy node.  Another
-phandle points to the external PHY node.
-
-Required properties:
-
-MAC node:
-- compatible : Should be "qcom,fsm9900-emac".
-- reg : Offset and length of the register regions for the device
-- interrupts : Interrupt number used by this controller
-- mac-address : The 6-byte MAC address. If present, it is the default
-	MAC address.
-- internal-phy : phandle to the internal PHY node
-- phy-handle : phandle to the external PHY node
-
-Internal PHY node:
-- compatible : Should be "qcom,fsm9900-emac-sgmii" or "qcom,qdf2432-emac-sgmii".
-- reg : Offset and length of the register region(s) for the device
-- interrupts : Interrupt number used by this controller
-
-The external phy child node:
-- reg : The phy address
-
-Example:
-
-FSM9900:
-
-soc {
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	emac0: ethernet@feb20000 {
-		compatible = "qcom,fsm9900-emac";
-		reg = <0xfeb20000 0x10000>,
-		      <0xfeb36000 0x1000>;
-		interrupts = <76>;
-
-		clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>,
-			<&gcc 6>, <&gcc 7>;
-		clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk",
-			"mdio_clk", "tx_clk", "rx_clk", "sys_clk";
-
-		internal-phy = <&emac_sgmii>;
-
-		phy-handle = <&phy0>;
-
-		#address-cells = <1>;
-		#size-cells = <0>;
-		phy0: ethernet-phy@0 {
-			reg = <0>;
-		};
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&mdio_pins_a>;
-	};
-
-	emac_sgmii: ethernet@feb38000 {
-		compatible = "qcom,fsm9900-emac-sgmii";
-		reg = <0xfeb38000 0x1000>;
-		interrupts = <80>;
-	};
-
-	tlmm: pinctrl@fd510000 {
-		compatible = "qcom,fsm9900-pinctrl";
-
-		mdio_pins_a: mdio {
-			state {
-				pins = "gpio123", "gpio124";
-				function = "mdio";
-			};
-		};
-	};
-
-
-QDF2432:
-
-soc {
-	#address-cells = <2>;
-	#size-cells = <2>;
-
-	emac0: ethernet@38800000 {
-		compatible = "qcom,fsm9900-emac";
-		reg = <0x0 0x38800000 0x0 0x10000>,
-		      <0x0 0x38816000 0x0 0x1000>;
-		interrupts = <0 256 4>;
-
-		clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>,
-			 <&gcc 6>, <&gcc 7>;
-		clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk",
-			"mdio_clk", "tx_clk", "rx_clk", "sys_clk";
-
-		internal-phy = <&emac_sgmii>;
-
-		phy-handle = <&phy0>;
-
-		#address-cells = <1>;
-		#size-cells = <0>;
-		phy0: ethernet-phy@4 {
-			reg = <4>;
-		};
-	};
-
-	emac_sgmii: ethernet@410400 {
-		compatible = "qcom,qdf2432-emac-sgmii";
-		reg = <0x0 0x00410400 0x0 0xc00>, /* Base address */
-		      <0x0 0x00410000 0x0 0x400>; /* Per-lane digital */
-		interrupts = <0 254 1>;
-	};