18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/net/ti,cpsw-switch.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: TI SoC Ethernet Switch Controller (CPSW) Device Tree Bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Grygorii Strashko <grygorii.strashko@ti.com> 118c2ecf20Sopenharmony_ci - Sekhar Nori <nsekhar@ti.com> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cidescription: 148c2ecf20Sopenharmony_ci The 3-port switch gigabit ethernet subsystem provides ethernet packet 158c2ecf20Sopenharmony_ci communication and can be configured as an ethernet switch. It provides the 168c2ecf20Sopenharmony_ci gigabit media independent interface (GMII),reduced gigabit media 178c2ecf20Sopenharmony_ci independent interface (RGMII), reduced media independent interface (RMII), 188c2ecf20Sopenharmony_ci the management data input output (MDIO) for physical layer device (PHY) 198c2ecf20Sopenharmony_ci management. 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciproperties: 228c2ecf20Sopenharmony_ci compatible: 238c2ecf20Sopenharmony_ci oneOf: 248c2ecf20Sopenharmony_ci - const: ti,cpsw-switch 258c2ecf20Sopenharmony_ci - items: 268c2ecf20Sopenharmony_ci - const: ti,am335x-cpsw-switch 278c2ecf20Sopenharmony_ci - const: ti,cpsw-switch 288c2ecf20Sopenharmony_ci - items: 298c2ecf20Sopenharmony_ci - const: ti,am4372-cpsw-switch 308c2ecf20Sopenharmony_ci - const: ti,cpsw-switch 318c2ecf20Sopenharmony_ci - items: 328c2ecf20Sopenharmony_ci - const: ti,dra7-cpsw-switch 338c2ecf20Sopenharmony_ci - const: ti,cpsw-switch 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci reg: 368c2ecf20Sopenharmony_ci maxItems: 1 378c2ecf20Sopenharmony_ci description: 388c2ecf20Sopenharmony_ci The physical base address and size of full the CPSW module IO range 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci '#address-cells': 418c2ecf20Sopenharmony_ci const: 1 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci '#size-cells': 448c2ecf20Sopenharmony_ci const: 1 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci ranges: true 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci clocks: 498c2ecf20Sopenharmony_ci maxItems: 1 508c2ecf20Sopenharmony_ci description: CPSW functional clock 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci clock-names: 538c2ecf20Sopenharmony_ci items: 548c2ecf20Sopenharmony_ci - const: fck 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci interrupts: 578c2ecf20Sopenharmony_ci items: 588c2ecf20Sopenharmony_ci - description: RX_THRESH interrupt 598c2ecf20Sopenharmony_ci - description: RX interrupt 608c2ecf20Sopenharmony_ci - description: TX interrupt 618c2ecf20Sopenharmony_ci - description: MISC interrupt 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci interrupt-names: 648c2ecf20Sopenharmony_ci items: 658c2ecf20Sopenharmony_ci - const: "rx_thresh" 668c2ecf20Sopenharmony_ci - const: "rx" 678c2ecf20Sopenharmony_ci - const: "tx" 688c2ecf20Sopenharmony_ci - const: "misc" 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci pinctrl-names: true 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci syscon: 738c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/phandle 748c2ecf20Sopenharmony_ci description: 758c2ecf20Sopenharmony_ci Phandle to the system control device node which provides access to 768c2ecf20Sopenharmony_ci efuse IO range with MAC addresses 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci ethernet-ports: 798c2ecf20Sopenharmony_ci type: object 808c2ecf20Sopenharmony_ci properties: 818c2ecf20Sopenharmony_ci '#address-cells': 828c2ecf20Sopenharmony_ci const: 1 838c2ecf20Sopenharmony_ci '#size-cells': 848c2ecf20Sopenharmony_ci const: 0 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci patternProperties: 878c2ecf20Sopenharmony_ci "^port@[0-9]+$": 888c2ecf20Sopenharmony_ci type: object 898c2ecf20Sopenharmony_ci description: CPSW external ports 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci allOf: 928c2ecf20Sopenharmony_ci - $ref: ethernet-controller.yaml# 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci properties: 958c2ecf20Sopenharmony_ci reg: 968c2ecf20Sopenharmony_ci items: 978c2ecf20Sopenharmony_ci - enum: [1, 2] 988c2ecf20Sopenharmony_ci description: CPSW port number 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci phys: 1018c2ecf20Sopenharmony_ci maxItems: 1 1028c2ecf20Sopenharmony_ci description: phandle on phy-gmii-sel PHY 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci label: 1058c2ecf20Sopenharmony_ci description: label associated with this port 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci ti,dual-emac-pvid: 1088c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1098c2ecf20Sopenharmony_ci minimum: 1 1108c2ecf20Sopenharmony_ci maximum: 1024 1118c2ecf20Sopenharmony_ci description: 1128c2ecf20Sopenharmony_ci Specifies default PORT VID to be used to segregate 1138c2ecf20Sopenharmony_ci ports. Default value - CPSW port number. 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci required: 1168c2ecf20Sopenharmony_ci - reg 1178c2ecf20Sopenharmony_ci - phys 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ci cpts: 1208c2ecf20Sopenharmony_ci type: object 1218c2ecf20Sopenharmony_ci description: 1228c2ecf20Sopenharmony_ci The Common Platform Time Sync (CPTS) module 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_ci properties: 1258c2ecf20Sopenharmony_ci clocks: 1268c2ecf20Sopenharmony_ci maxItems: 1 1278c2ecf20Sopenharmony_ci description: CPTS reference clock 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci clock-names: 1308c2ecf20Sopenharmony_ci items: 1318c2ecf20Sopenharmony_ci - const: cpts 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci cpts_clock_mult: 1348c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1358c2ecf20Sopenharmony_ci description: 1368c2ecf20Sopenharmony_ci Numerator to convert input clock ticks into ns 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci cpts_clock_shift: 1398c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1408c2ecf20Sopenharmony_ci description: 1418c2ecf20Sopenharmony_ci Denominator to convert input clock ticks into ns. 1428c2ecf20Sopenharmony_ci Mult and shift will be calculated basing on CPTS rftclk frequency if 1438c2ecf20Sopenharmony_ci both cpts_clock_shift and cpts_clock_mult properties are not provided. 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci required: 1468c2ecf20Sopenharmony_ci - clocks 1478c2ecf20Sopenharmony_ci - clock-names 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_cipatternProperties: 1508c2ecf20Sopenharmony_ci "^mdio@": 1518c2ecf20Sopenharmony_ci type: object 1528c2ecf20Sopenharmony_ci description: 1538c2ecf20Sopenharmony_ci CPSW MDIO bus. 1548c2ecf20Sopenharmony_ci $ref: "ti,davinci-mdio.yaml#" 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_cirequired: 1588c2ecf20Sopenharmony_ci - compatible 1598c2ecf20Sopenharmony_ci - reg 1608c2ecf20Sopenharmony_ci - ranges 1618c2ecf20Sopenharmony_ci - clocks 1628c2ecf20Sopenharmony_ci - clock-names 1638c2ecf20Sopenharmony_ci - interrupts 1648c2ecf20Sopenharmony_ci - interrupt-names 1658c2ecf20Sopenharmony_ci - '#address-cells' 1668c2ecf20Sopenharmony_ci - '#size-cells' 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ciadditionalProperties: false 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ciexamples: 1718c2ecf20Sopenharmony_ci - | 1728c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 1738c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 1748c2ecf20Sopenharmony_ci #include <dt-bindings/clock/dra7.h> 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci mac_sw: switch@0 { 1778c2ecf20Sopenharmony_ci compatible = "ti,dra7-cpsw-switch","ti,cpsw-switch"; 1788c2ecf20Sopenharmony_ci reg = <0x0 0x4000>; 1798c2ecf20Sopenharmony_ci ranges = <0 0 0x4000>; 1808c2ecf20Sopenharmony_ci clocks = <&gmac_main_clk>; 1818c2ecf20Sopenharmony_ci clock-names = "fck"; 1828c2ecf20Sopenharmony_ci #address-cells = <1>; 1838c2ecf20Sopenharmony_ci #size-cells = <1>; 1848c2ecf20Sopenharmony_ci syscon = <&scm_conf>; 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>, 1878c2ecf20Sopenharmony_ci <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>, 1888c2ecf20Sopenharmony_ci <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>, 1898c2ecf20Sopenharmony_ci <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>; 1908c2ecf20Sopenharmony_ci interrupt-names = "rx_thresh", "rx", "tx", "misc"; 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci ethernet-ports { 1938c2ecf20Sopenharmony_ci #address-cells = <1>; 1948c2ecf20Sopenharmony_ci #size-cells = <0>; 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci cpsw_port1: port@1 { 1978c2ecf20Sopenharmony_ci reg = <1>; 1988c2ecf20Sopenharmony_ci label = "port1"; 1998c2ecf20Sopenharmony_ci mac-address = [ 00 00 00 00 00 00 ]; 2008c2ecf20Sopenharmony_ci phys = <&phy_gmii_sel 1>; 2018c2ecf20Sopenharmony_ci phy-handle = <ðphy0_sw>; 2028c2ecf20Sopenharmony_ci phy-mode = "rgmii"; 2038c2ecf20Sopenharmony_ci ti,dual-emac-pvid = <1>; 2048c2ecf20Sopenharmony_ci }; 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ci cpsw_port2: port@2 { 2078c2ecf20Sopenharmony_ci reg = <2>; 2088c2ecf20Sopenharmony_ci label = "wan"; 2098c2ecf20Sopenharmony_ci mac-address = [ 00 00 00 00 00 00 ]; 2108c2ecf20Sopenharmony_ci phys = <&phy_gmii_sel 2>; 2118c2ecf20Sopenharmony_ci phy-handle = <ðphy1_sw>; 2128c2ecf20Sopenharmony_ci phy-mode = "rgmii"; 2138c2ecf20Sopenharmony_ci ti,dual-emac-pvid = <2>; 2148c2ecf20Sopenharmony_ci }; 2158c2ecf20Sopenharmony_ci }; 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci davinci_mdio_sw: mdio@1000 { 2188c2ecf20Sopenharmony_ci compatible = "ti,cpsw-mdio","ti,davinci_mdio"; 2198c2ecf20Sopenharmony_ci reg = <0x1000 0x100>; 2208c2ecf20Sopenharmony_ci clocks = <&gmac_clkctrl DRA7_GMAC_GMAC_CLKCTRL 0>; 2218c2ecf20Sopenharmony_ci clock-names = "fck"; 2228c2ecf20Sopenharmony_ci #address-cells = <1>; 2238c2ecf20Sopenharmony_ci #size-cells = <0>; 2248c2ecf20Sopenharmony_ci bus_freq = <1000000>; 2258c2ecf20Sopenharmony_ci 2268c2ecf20Sopenharmony_ci ethphy0_sw: ethernet-phy@0 { 2278c2ecf20Sopenharmony_ci reg = <0>; 2288c2ecf20Sopenharmony_ci }; 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ci ethphy1_sw: ethernet-phy@1 { 2318c2ecf20Sopenharmony_ci reg = <1>; 2328c2ecf20Sopenharmony_ci }; 2338c2ecf20Sopenharmony_ci }; 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_ci cpts { 2368c2ecf20Sopenharmony_ci clocks = <&gmac_clkctrl DRA7_GMAC_GMAC_CLKCTRL 25>; 2378c2ecf20Sopenharmony_ci clock-names = "cpts"; 2388c2ecf20Sopenharmony_ci }; 2398c2ecf20Sopenharmony_ci }; 240