10fbe92b9SChristian Marangi# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 20fbe92b9SChristian Marangi%YAML 1.2 30fbe92b9SChristian Marangi--- 40fbe92b9SChristian Marangi$id: http://devicetree.org/schemas/net/marvell,aquantia.yaml# 50fbe92b9SChristian Marangi$schema: http://devicetree.org/meta-schemas/core.yaml# 60fbe92b9SChristian Marangi 70fbe92b9SChristian Marangititle: Marvell Aquantia Ethernet PHY 80fbe92b9SChristian Marangi 90fbe92b9SChristian Marangimaintainers: 100fbe92b9SChristian Marangi - Christian Marangi <ansuelsmth@gmail.com> 110fbe92b9SChristian Marangi 120fbe92b9SChristian Marangidescription: | 130fbe92b9SChristian Marangi Marvell Aquantia Ethernet PHY require a firmware to be loaded to actually 140fbe92b9SChristian Marangi work. 150fbe92b9SChristian Marangi 160fbe92b9SChristian Marangi This can be done and is implemented by OEM in 3 different way: 170fbe92b9SChristian Marangi - Attached SPI flash directly to the PHY with the firmware. The PHY 180fbe92b9SChristian Marangi will self load the firmware in the presence of this configuration. 190fbe92b9SChristian Marangi - Read from a dedicated partition on system NAND declared in an 200fbe92b9SChristian Marangi NVMEM cell, and loaded to the PHY using its mailbox interface. 210fbe92b9SChristian Marangi - Manually provided firmware loaded from a file in the filesystem. 220fbe92b9SChristian Marangi 230fbe92b9SChristian MarangiallOf: 240fbe92b9SChristian Marangi - $ref: ethernet-phy.yaml# 250fbe92b9SChristian Marangi 260fbe92b9SChristian Marangiselect: 270fbe92b9SChristian Marangi properties: 280fbe92b9SChristian Marangi compatible: 290fbe92b9SChristian Marangi contains: 300fbe92b9SChristian Marangi enum: 310fbe92b9SChristian Marangi - ethernet-phy-id03a1.b445 320fbe92b9SChristian Marangi - ethernet-phy-id03a1.b460 330fbe92b9SChristian Marangi - ethernet-phy-id03a1.b4a2 340fbe92b9SChristian Marangi - ethernet-phy-id03a1.b4d0 350fbe92b9SChristian Marangi - ethernet-phy-id03a1.b4e0 360fbe92b9SChristian Marangi - ethernet-phy-id03a1.b5c2 370fbe92b9SChristian Marangi - ethernet-phy-id03a1.b4b0 380fbe92b9SChristian Marangi - ethernet-phy-id03a1.b662 390fbe92b9SChristian Marangi - ethernet-phy-id03a1.b712 400fbe92b9SChristian Marangi - ethernet-phy-id31c3.1c12 410fbe92b9SChristian Marangi required: 420fbe92b9SChristian Marangi - compatible 430fbe92b9SChristian Marangi 440fbe92b9SChristian Marangiproperties: 450fbe92b9SChristian Marangi reg: 460fbe92b9SChristian Marangi maxItems: 1 470fbe92b9SChristian Marangi 480fbe92b9SChristian Marangi firmware-name: 490fbe92b9SChristian Marangi description: specify the name of PHY firmware to load 500fbe92b9SChristian Marangi 51*1432965bSDaniel Golle marvell,mdi-cfg-order: 52*1432965bSDaniel Golle $ref: /schemas/types.yaml#/definitions/uint32 53*1432965bSDaniel Golle enum: [0, 1] 54*1432965bSDaniel Golle description: 55*1432965bSDaniel Golle force normal (0) or reverse (1) order of MDI pairs, overriding MDI_CFG bootstrap pin. 56*1432965bSDaniel Golle 570fbe92b9SChristian Marangi nvmem-cells: 580fbe92b9SChristian Marangi description: phandle to the firmware nvmem cell 590fbe92b9SChristian Marangi maxItems: 1 600fbe92b9SChristian Marangi 610fbe92b9SChristian Marangi nvmem-cell-names: 620fbe92b9SChristian Marangi const: firmware 630fbe92b9SChristian Marangi 640fbe92b9SChristian Marangirequired: 650fbe92b9SChristian Marangi - compatible 660fbe92b9SChristian Marangi - reg 670fbe92b9SChristian Marangi 680fbe92b9SChristian MarangiunevaluatedProperties: false 690fbe92b9SChristian Marangi 700fbe92b9SChristian Marangiexamples: 710fbe92b9SChristian Marangi - | 720fbe92b9SChristian Marangi mdio { 730fbe92b9SChristian Marangi #address-cells = <1>; 740fbe92b9SChristian Marangi #size-cells = <0>; 750fbe92b9SChristian Marangi 760fbe92b9SChristian Marangi ethernet-phy@0 { 770fbe92b9SChristian Marangi compatible = "ethernet-phy-id31c3.1c12", 780fbe92b9SChristian Marangi "ethernet-phy-ieee802.3-c45"; 790fbe92b9SChristian Marangi 800fbe92b9SChristian Marangi reg = <0>; 810fbe92b9SChristian Marangi firmware-name = "AQR-G4_v5.4.C-AQR_CIG_WF-1945_0x8_ID44776_VER1630.cld"; 820fbe92b9SChristian Marangi }; 830fbe92b9SChristian Marangi 840fbe92b9SChristian Marangi ethernet-phy@1 { 850fbe92b9SChristian Marangi compatible = "ethernet-phy-id31c3.1c12", 860fbe92b9SChristian Marangi "ethernet-phy-ieee802.3-c45"; 870fbe92b9SChristian Marangi 880fbe92b9SChristian Marangi reg = <1>; 890fbe92b9SChristian Marangi nvmem-cells = <&aqr_fw>; 900fbe92b9SChristian Marangi nvmem-cell-names = "firmware"; 910fbe92b9SChristian Marangi }; 920fbe92b9SChristian Marangi }; 930fbe92b9SChristian Marangi 940fbe92b9SChristian Marangi flash { 950fbe92b9SChristian Marangi compatible = "jedec,spi-nor"; 960fbe92b9SChristian Marangi #address-cells = <1>; 970fbe92b9SChristian Marangi #size-cells = <1>; 980fbe92b9SChristian Marangi 990fbe92b9SChristian Marangi partitions { 1000fbe92b9SChristian Marangi compatible = "fixed-partitions"; 1010fbe92b9SChristian Marangi #address-cells = <1>; 1020fbe92b9SChristian Marangi #size-cells = <1>; 1030fbe92b9SChristian Marangi 1040fbe92b9SChristian Marangi /* ... */ 1050fbe92b9SChristian Marangi 1060fbe92b9SChristian Marangi partition@650000 { 1070fbe92b9SChristian Marangi compatible = "nvmem-cells"; 1080fbe92b9SChristian Marangi label = "0:ethphyfw"; 1090fbe92b9SChristian Marangi reg = <0x650000 0x80000>; 1100fbe92b9SChristian Marangi read-only; 1110fbe92b9SChristian Marangi #address-cells = <1>; 1120fbe92b9SChristian Marangi #size-cells = <1>; 1130fbe92b9SChristian Marangi 1140fbe92b9SChristian Marangi aqr_fw: aqr_fw@0 { 1150fbe92b9SChristian Marangi reg = <0x0 0x5f42a>; 1160fbe92b9SChristian Marangi }; 1170fbe92b9SChristian Marangi }; 1180fbe92b9SChristian Marangi 1190fbe92b9SChristian Marangi /* ... */ 1200fbe92b9SChristian Marangi 1210fbe92b9SChristian Marangi }; 1220fbe92b9SChristian Marangi }; 123