18c2ecf20Sopenharmony_ci* Broadcom Starfighter 2 integrated swich 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciRequired properties: 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci- compatible: should be one of 68c2ecf20Sopenharmony_ci "brcm,bcm7445-switch-v4.0" 78c2ecf20Sopenharmony_ci "brcm,bcm7278-switch-v4.0" 88c2ecf20Sopenharmony_ci "brcm,bcm7278-switch-v4.8" 98c2ecf20Sopenharmony_ci- reg: addresses and length of the register sets for the device, must be 6 108c2ecf20Sopenharmony_ci pairs of register addresses and lengths 118c2ecf20Sopenharmony_ci- interrupts: interrupts for the devices, must be two interrupts 128c2ecf20Sopenharmony_ci- #address-cells: must be 1, see dsa/dsa.txt 138c2ecf20Sopenharmony_ci- #size-cells: must be 0, see dsa/dsa.txt 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciDeprecated binding required properties: 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci- dsa,mii-bus: phandle to the MDIO bus controller, see dsa/dsa.txt 188c2ecf20Sopenharmony_ci- dsa,ethernet: phandle to the CPU network interface controller, see dsa/dsa.txt 198c2ecf20Sopenharmony_ci- #address-cells: must be 2, see dsa/dsa.txt 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciSubnodes: 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciThe integrated switch subnode should be specified according to the binding 248c2ecf20Sopenharmony_cidescribed in dsa/dsa.txt. 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciOptional properties: 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci- reg-names: litteral names for the device base register addresses, when present 298c2ecf20Sopenharmony_ci must be: "core", "reg", "intrl2_0", "intrl2_1", "fcb", "acb" 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci- interrupt-names: litternal names for the device interrupt lines, when present 328c2ecf20Sopenharmony_ci must be: "switch_0" and "switch_1" 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci- brcm,num-gphy: specify the maximum number of integrated gigabit PHYs in the 358c2ecf20Sopenharmony_ci switch 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci- brcm,num-rgmii-ports: specify the maximum number of RGMII interfaces supported 388c2ecf20Sopenharmony_ci by the switch 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci- brcm,fcb-pause-override: boolean property, if present indicates that the switch 418c2ecf20Sopenharmony_ci supports Failover Control Block pause override capability 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci- brcm,acb-packets-inflight: boolean property, if present indicates that the switch 448c2ecf20Sopenharmony_ci Admission Control Block supports reporting the number of packets in-flight in a 458c2ecf20Sopenharmony_ci switch queue 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci- resets: a single phandle and reset identifier pair. See 488c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/reset/reset.txt for details. 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci- reset-names: If the "reset" property is specified, this property should have 518c2ecf20Sopenharmony_ci the value "switch" to denote the switch reset line. 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci- clocks: when provided, the first phandle is to the switch's main clock and 548c2ecf20Sopenharmony_ci is valid for both BCM7445 and BCM7278. The second phandle is only applicable 558c2ecf20Sopenharmony_ci to BCM7445 and is to support dividing the switch core clock. 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci- clock-names: when provided, the first phandle must be "sw_switch", and the 588c2ecf20Sopenharmony_ci second must be named "sw_switch_mdiv". 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ciPort subnodes: 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ciOptional properties: 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci- brcm,use-bcm-hdr: boolean property, if present, indicates that the switch 658c2ecf20Sopenharmony_ci port has Broadcom tags enabled (per-packet metadata) 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ciExample: 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ciswitch_top@f0b00000 { 708c2ecf20Sopenharmony_ci compatible = "simple-bus"; 718c2ecf20Sopenharmony_ci #size-cells = <1>; 728c2ecf20Sopenharmony_ci #address-cells = <1>; 738c2ecf20Sopenharmony_ci ranges = <0 0xf0b00000 0x40804>; 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci ethernet_switch@0 { 768c2ecf20Sopenharmony_ci compatible = "brcm,bcm7445-switch-v4.0"; 778c2ecf20Sopenharmony_ci #size-cells = <0>; 788c2ecf20Sopenharmony_ci #address-cells = <1>; 798c2ecf20Sopenharmony_ci reg = <0x0 0x40000 808c2ecf20Sopenharmony_ci 0x40000 0x110 818c2ecf20Sopenharmony_ci 0x40340 0x30 828c2ecf20Sopenharmony_ci 0x40380 0x30 838c2ecf20Sopenharmony_ci 0x40400 0x34 848c2ecf20Sopenharmony_ci 0x40600 0x208>; 858c2ecf20Sopenharmony_ci reg-names = "core", "reg", intrl2_0", "intrl2_1", 868c2ecf20Sopenharmony_ci "fcb, "acb"; 878c2ecf20Sopenharmony_ci interrupts = <0 0x18 0 888c2ecf20Sopenharmony_ci 0 0x19 0>; 898c2ecf20Sopenharmony_ci brcm,num-gphy = <1>; 908c2ecf20Sopenharmony_ci brcm,num-rgmii-ports = <2>; 918c2ecf20Sopenharmony_ci brcm,fcb-pause-override; 928c2ecf20Sopenharmony_ci brcm,acb-packets-inflight; 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci ports { 958c2ecf20Sopenharmony_ci #address-cells = <1>; 968c2ecf20Sopenharmony_ci #size-cells = <0>; 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci port@0 { 998c2ecf20Sopenharmony_ci label = "gphy"; 1008c2ecf20Sopenharmony_ci reg = <0>; 1018c2ecf20Sopenharmony_ci }; 1028c2ecf20Sopenharmony_ci }; 1038c2ecf20Sopenharmony_ci }; 1048c2ecf20Sopenharmony_ci}; 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ciExample using the old DSA DeviceTree binding: 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ciswitch_top@f0b00000 { 1098c2ecf20Sopenharmony_ci compatible = "simple-bus"; 1108c2ecf20Sopenharmony_ci #size-cells = <1>; 1118c2ecf20Sopenharmony_ci #address-cells = <1>; 1128c2ecf20Sopenharmony_ci ranges = <0 0xf0b00000 0x40804>; 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci ethernet_switch@0 { 1158c2ecf20Sopenharmony_ci compatible = "brcm,bcm7445-switch-v4.0"; 1168c2ecf20Sopenharmony_ci #size-cells = <0>; 1178c2ecf20Sopenharmony_ci #address-cells = <2>; 1188c2ecf20Sopenharmony_ci reg = <0x0 0x40000 1198c2ecf20Sopenharmony_ci 0x40000 0x110 1208c2ecf20Sopenharmony_ci 0x40340 0x30 1218c2ecf20Sopenharmony_ci 0x40380 0x30 1228c2ecf20Sopenharmony_ci 0x40400 0x34 1238c2ecf20Sopenharmony_ci 0x40600 0x208>; 1248c2ecf20Sopenharmony_ci interrupts = <0 0x18 0 1258c2ecf20Sopenharmony_ci 0 0x19 0>; 1268c2ecf20Sopenharmony_ci brcm,num-gphy = <1>; 1278c2ecf20Sopenharmony_ci brcm,num-rgmii-ports = <2>; 1288c2ecf20Sopenharmony_ci brcm,fcb-pause-override; 1298c2ecf20Sopenharmony_ci brcm,acb-packets-inflight; 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci ... 1328c2ecf20Sopenharmony_ci switch@0 { 1338c2ecf20Sopenharmony_ci reg = <0 0>; 1348c2ecf20Sopenharmony_ci #size-cells = <0>; 1358c2ecf20Sopenharmony_ci #address-cells <1>; 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ci port@0 { 1388c2ecf20Sopenharmony_ci label = "gphy"; 1398c2ecf20Sopenharmony_ci reg = <0>; 1408c2ecf20Sopenharmony_ci brcm,use-bcm-hdr; 1418c2ecf20Sopenharmony_ci }; 1428c2ecf20Sopenharmony_ci ... 1438c2ecf20Sopenharmony_ci }; 1448c2ecf20Sopenharmony_ci }; 1458c2ecf20Sopenharmony_ci}; 146