xref: /freebsd/sys/contrib/device-tree/Bindings/net/marvell,aquantia.yaml (revision 5f62a964e9f8abc6a05d8338273fadd154f0a206)
18d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28d13bc63SEmmanuel Vadot%YAML 1.2
38d13bc63SEmmanuel Vadot---
48d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/net/marvell,aquantia.yaml#
58d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68d13bc63SEmmanuel Vadot
78d13bc63SEmmanuel Vadottitle: Marvell Aquantia Ethernet PHY
88d13bc63SEmmanuel Vadot
98d13bc63SEmmanuel Vadotmaintainers:
108d13bc63SEmmanuel Vadot  - Christian Marangi <ansuelsmth@gmail.com>
118d13bc63SEmmanuel Vadot
128d13bc63SEmmanuel Vadotdescription: |
138d13bc63SEmmanuel Vadot  Marvell Aquantia Ethernet PHY require a firmware to be loaded to actually
148d13bc63SEmmanuel Vadot  work.
158d13bc63SEmmanuel Vadot
168d13bc63SEmmanuel Vadot  This can be done and is implemented by OEM in 3 different way:
178d13bc63SEmmanuel Vadot    - Attached SPI flash directly to the PHY with the firmware. The PHY
188d13bc63SEmmanuel Vadot      will self load the firmware in the presence of this configuration.
198d13bc63SEmmanuel Vadot    - Read from a dedicated partition on system NAND declared in an
208d13bc63SEmmanuel Vadot      NVMEM cell, and loaded to the PHY using its mailbox interface.
218d13bc63SEmmanuel Vadot    - Manually provided firmware loaded from a file in the filesystem.
228d13bc63SEmmanuel Vadot
238d13bc63SEmmanuel VadotallOf:
248d13bc63SEmmanuel Vadot  - $ref: ethernet-phy.yaml#
258d13bc63SEmmanuel Vadot
268d13bc63SEmmanuel Vadotselect:
278d13bc63SEmmanuel Vadot  properties:
288d13bc63SEmmanuel Vadot    compatible:
298d13bc63SEmmanuel Vadot      contains:
308d13bc63SEmmanuel Vadot        enum:
318d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b445
328d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b460
338d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b4a2
348d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b4d0
358d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b4e0
368d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b5c2
378d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b4b0
388d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b662
398d13bc63SEmmanuel Vadot          - ethernet-phy-id03a1.b712
408d13bc63SEmmanuel Vadot          - ethernet-phy-id31c3.1c12
418d13bc63SEmmanuel Vadot  required:
428d13bc63SEmmanuel Vadot    - compatible
438d13bc63SEmmanuel Vadot
448d13bc63SEmmanuel Vadotproperties:
458d13bc63SEmmanuel Vadot  reg:
468d13bc63SEmmanuel Vadot    maxItems: 1
478d13bc63SEmmanuel Vadot
488d13bc63SEmmanuel Vadot  firmware-name:
498d13bc63SEmmanuel Vadot    description: specify the name of PHY firmware to load
508d13bc63SEmmanuel Vadot
51*5f62a964SEmmanuel Vadot  marvell,mdi-cfg-order:
52*5f62a964SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
53*5f62a964SEmmanuel Vadot    enum: [0, 1]
54*5f62a964SEmmanuel Vadot    description:
55*5f62a964SEmmanuel Vadot      force normal (0) or reverse (1) order of MDI pairs, overriding MDI_CFG bootstrap pin.
56*5f62a964SEmmanuel Vadot
578d13bc63SEmmanuel Vadot  nvmem-cells:
588d13bc63SEmmanuel Vadot    description: phandle to the firmware nvmem cell
598d13bc63SEmmanuel Vadot    maxItems: 1
608d13bc63SEmmanuel Vadot
618d13bc63SEmmanuel Vadot  nvmem-cell-names:
628d13bc63SEmmanuel Vadot    const: firmware
638d13bc63SEmmanuel Vadot
648d13bc63SEmmanuel Vadotrequired:
658d13bc63SEmmanuel Vadot  - compatible
668d13bc63SEmmanuel Vadot  - reg
678d13bc63SEmmanuel Vadot
688d13bc63SEmmanuel VadotunevaluatedProperties: false
698d13bc63SEmmanuel Vadot
708d13bc63SEmmanuel Vadotexamples:
718d13bc63SEmmanuel Vadot  - |
728d13bc63SEmmanuel Vadot    mdio {
738d13bc63SEmmanuel Vadot        #address-cells = <1>;
748d13bc63SEmmanuel Vadot        #size-cells = <0>;
758d13bc63SEmmanuel Vadot
768d13bc63SEmmanuel Vadot        ethernet-phy@0 {
778d13bc63SEmmanuel Vadot            compatible = "ethernet-phy-id31c3.1c12",
788d13bc63SEmmanuel Vadot                         "ethernet-phy-ieee802.3-c45";
798d13bc63SEmmanuel Vadot
808d13bc63SEmmanuel Vadot            reg = <0>;
818d13bc63SEmmanuel Vadot            firmware-name = "AQR-G4_v5.4.C-AQR_CIG_WF-1945_0x8_ID44776_VER1630.cld";
828d13bc63SEmmanuel Vadot        };
838d13bc63SEmmanuel Vadot
848d13bc63SEmmanuel Vadot        ethernet-phy@1 {
858d13bc63SEmmanuel Vadot            compatible = "ethernet-phy-id31c3.1c12",
868d13bc63SEmmanuel Vadot                         "ethernet-phy-ieee802.3-c45";
878d13bc63SEmmanuel Vadot
888d13bc63SEmmanuel Vadot            reg = <1>;
898d13bc63SEmmanuel Vadot            nvmem-cells = <&aqr_fw>;
908d13bc63SEmmanuel Vadot            nvmem-cell-names = "firmware";
918d13bc63SEmmanuel Vadot        };
928d13bc63SEmmanuel Vadot    };
938d13bc63SEmmanuel Vadot
948d13bc63SEmmanuel Vadot    flash {
958d13bc63SEmmanuel Vadot        compatible = "jedec,spi-nor";
968d13bc63SEmmanuel Vadot        #address-cells = <1>;
978d13bc63SEmmanuel Vadot        #size-cells = <1>;
988d13bc63SEmmanuel Vadot
998d13bc63SEmmanuel Vadot        partitions {
1008d13bc63SEmmanuel Vadot            compatible = "fixed-partitions";
1018d13bc63SEmmanuel Vadot            #address-cells = <1>;
1028d13bc63SEmmanuel Vadot            #size-cells = <1>;
1038d13bc63SEmmanuel Vadot
1048d13bc63SEmmanuel Vadot            /* ... */
1058d13bc63SEmmanuel Vadot
1068d13bc63SEmmanuel Vadot            partition@650000 {
1078d13bc63SEmmanuel Vadot                compatible = "nvmem-cells";
1088d13bc63SEmmanuel Vadot                label = "0:ethphyfw";
1098d13bc63SEmmanuel Vadot                reg = <0x650000 0x80000>;
1108d13bc63SEmmanuel Vadot                read-only;
1118d13bc63SEmmanuel Vadot                #address-cells = <1>;
1128d13bc63SEmmanuel Vadot                #size-cells = <1>;
1138d13bc63SEmmanuel Vadot
1148d13bc63SEmmanuel Vadot                aqr_fw: aqr_fw@0 {
1158d13bc63SEmmanuel Vadot                    reg = <0x0 0x5f42a>;
1168d13bc63SEmmanuel Vadot                };
1178d13bc63SEmmanuel Vadot            };
1188d13bc63SEmmanuel Vadot
1198d13bc63SEmmanuel Vadot            /* ... */
1208d13bc63SEmmanuel Vadot
1218d13bc63SEmmanuel Vadot        };
1228d13bc63SEmmanuel Vadot    };
123