1*8d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8d13bc63SEmmanuel Vadot%YAML 1.2 3*8d13bc63SEmmanuel Vadot--- 4*8d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/net/marvell,aquantia.yaml# 5*8d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8d13bc63SEmmanuel Vadot 7*8d13bc63SEmmanuel Vadottitle: Marvell Aquantia Ethernet PHY 8*8d13bc63SEmmanuel Vadot 9*8d13bc63SEmmanuel Vadotmaintainers: 10*8d13bc63SEmmanuel Vadot - Christian Marangi <ansuelsmth@gmail.com> 11*8d13bc63SEmmanuel Vadot 12*8d13bc63SEmmanuel Vadotdescription: | 13*8d13bc63SEmmanuel Vadot Marvell Aquantia Ethernet PHY require a firmware to be loaded to actually 14*8d13bc63SEmmanuel Vadot work. 15*8d13bc63SEmmanuel Vadot 16*8d13bc63SEmmanuel Vadot This can be done and is implemented by OEM in 3 different way: 17*8d13bc63SEmmanuel Vadot - Attached SPI flash directly to the PHY with the firmware. The PHY 18*8d13bc63SEmmanuel Vadot will self load the firmware in the presence of this configuration. 19*8d13bc63SEmmanuel Vadot - Read from a dedicated partition on system NAND declared in an 20*8d13bc63SEmmanuel Vadot NVMEM cell, and loaded to the PHY using its mailbox interface. 21*8d13bc63SEmmanuel Vadot - Manually provided firmware loaded from a file in the filesystem. 22*8d13bc63SEmmanuel Vadot 23*8d13bc63SEmmanuel VadotallOf: 24*8d13bc63SEmmanuel Vadot - $ref: ethernet-phy.yaml# 25*8d13bc63SEmmanuel Vadot 26*8d13bc63SEmmanuel Vadotselect: 27*8d13bc63SEmmanuel Vadot properties: 28*8d13bc63SEmmanuel Vadot compatible: 29*8d13bc63SEmmanuel Vadot contains: 30*8d13bc63SEmmanuel Vadot enum: 31*8d13bc63SEmmanuel Vadot - ethernet-phy-id03a1.b445 32*8d13bc63SEmmanuel Vadot - ethernet-phy-id03a1.b460 33*8d13bc63SEmmanuel Vadot - ethernet-phy-id03a1.b4a2 34*8d13bc63SEmmanuel Vadot - ethernet-phy-id03a1.b4d0 35*8d13bc63SEmmanuel Vadot - ethernet-phy-id03a1.b4e0 36*8d13bc63SEmmanuel Vadot - ethernet-phy-id03a1.b5c2 37*8d13bc63SEmmanuel Vadot - ethernet-phy-id03a1.b4b0 38*8d13bc63SEmmanuel Vadot - ethernet-phy-id03a1.b662 39*8d13bc63SEmmanuel Vadot - ethernet-phy-id03a1.b712 40*8d13bc63SEmmanuel Vadot - ethernet-phy-id31c3.1c12 41*8d13bc63SEmmanuel Vadot required: 42*8d13bc63SEmmanuel Vadot - compatible 43*8d13bc63SEmmanuel Vadot 44*8d13bc63SEmmanuel Vadotproperties: 45*8d13bc63SEmmanuel Vadot reg: 46*8d13bc63SEmmanuel Vadot maxItems: 1 47*8d13bc63SEmmanuel Vadot 48*8d13bc63SEmmanuel Vadot firmware-name: 49*8d13bc63SEmmanuel Vadot description: specify the name of PHY firmware to load 50*8d13bc63SEmmanuel Vadot 51*8d13bc63SEmmanuel Vadot nvmem-cells: 52*8d13bc63SEmmanuel Vadot description: phandle to the firmware nvmem cell 53*8d13bc63SEmmanuel Vadot maxItems: 1 54*8d13bc63SEmmanuel Vadot 55*8d13bc63SEmmanuel Vadot nvmem-cell-names: 56*8d13bc63SEmmanuel Vadot const: firmware 57*8d13bc63SEmmanuel Vadot 58*8d13bc63SEmmanuel Vadotrequired: 59*8d13bc63SEmmanuel Vadot - compatible 60*8d13bc63SEmmanuel Vadot - reg 61*8d13bc63SEmmanuel Vadot 62*8d13bc63SEmmanuel VadotunevaluatedProperties: false 63*8d13bc63SEmmanuel Vadot 64*8d13bc63SEmmanuel Vadotexamples: 65*8d13bc63SEmmanuel Vadot - | 66*8d13bc63SEmmanuel Vadot mdio { 67*8d13bc63SEmmanuel Vadot #address-cells = <1>; 68*8d13bc63SEmmanuel Vadot #size-cells = <0>; 69*8d13bc63SEmmanuel Vadot 70*8d13bc63SEmmanuel Vadot ethernet-phy@0 { 71*8d13bc63SEmmanuel Vadot compatible = "ethernet-phy-id31c3.1c12", 72*8d13bc63SEmmanuel Vadot "ethernet-phy-ieee802.3-c45"; 73*8d13bc63SEmmanuel Vadot 74*8d13bc63SEmmanuel Vadot reg = <0>; 75*8d13bc63SEmmanuel Vadot firmware-name = "AQR-G4_v5.4.C-AQR_CIG_WF-1945_0x8_ID44776_VER1630.cld"; 76*8d13bc63SEmmanuel Vadot }; 77*8d13bc63SEmmanuel Vadot 78*8d13bc63SEmmanuel Vadot ethernet-phy@1 { 79*8d13bc63SEmmanuel Vadot compatible = "ethernet-phy-id31c3.1c12", 80*8d13bc63SEmmanuel Vadot "ethernet-phy-ieee802.3-c45"; 81*8d13bc63SEmmanuel Vadot 82*8d13bc63SEmmanuel Vadot reg = <1>; 83*8d13bc63SEmmanuel Vadot nvmem-cells = <&aqr_fw>; 84*8d13bc63SEmmanuel Vadot nvmem-cell-names = "firmware"; 85*8d13bc63SEmmanuel Vadot }; 86*8d13bc63SEmmanuel Vadot }; 87*8d13bc63SEmmanuel Vadot 88*8d13bc63SEmmanuel Vadot flash { 89*8d13bc63SEmmanuel Vadot compatible = "jedec,spi-nor"; 90*8d13bc63SEmmanuel Vadot #address-cells = <1>; 91*8d13bc63SEmmanuel Vadot #size-cells = <1>; 92*8d13bc63SEmmanuel Vadot 93*8d13bc63SEmmanuel Vadot partitions { 94*8d13bc63SEmmanuel Vadot compatible = "fixed-partitions"; 95*8d13bc63SEmmanuel Vadot #address-cells = <1>; 96*8d13bc63SEmmanuel Vadot #size-cells = <1>; 97*8d13bc63SEmmanuel Vadot 98*8d13bc63SEmmanuel Vadot /* ... */ 99*8d13bc63SEmmanuel Vadot 100*8d13bc63SEmmanuel Vadot partition@650000 { 101*8d13bc63SEmmanuel Vadot compatible = "nvmem-cells"; 102*8d13bc63SEmmanuel Vadot label = "0:ethphyfw"; 103*8d13bc63SEmmanuel Vadot reg = <0x650000 0x80000>; 104*8d13bc63SEmmanuel Vadot read-only; 105*8d13bc63SEmmanuel Vadot #address-cells = <1>; 106*8d13bc63SEmmanuel Vadot #size-cells = <1>; 107*8d13bc63SEmmanuel Vadot 108*8d13bc63SEmmanuel Vadot aqr_fw: aqr_fw@0 { 109*8d13bc63SEmmanuel Vadot reg = <0x0 0x5f42a>; 110*8d13bc63SEmmanuel Vadot }; 111*8d13bc63SEmmanuel Vadot }; 112*8d13bc63SEmmanuel Vadot 113*8d13bc63SEmmanuel Vadot /* ... */ 114*8d13bc63SEmmanuel Vadot 115*8d13bc63SEmmanuel Vadot }; 116*8d13bc63SEmmanuel Vadot }; 117