1 TI SoC Ethernet Switch Controller Device Tree 1 TI SoC Ethernet Switch Controller Device Tree Bindings 2 ---------------------------------------------- 2 ------------------------------------------------------ 3 3 4 Required properties: 4 Required properties: 5 - compatible : Should be one of the !! 5 - compatible : Should be "ti,cpsw" 6 "ti,cpsw" for backwa << 7 "ti,am335x-cpsw" for << 8 "ti,am4372-cpsw" for << 9 "ti,dra7-cpsw" for D << 10 - reg : physical base addres 6 - reg : physical base address and size of the cpsw 11 registers map 7 registers map 12 - interrupts : property with a valu 8 - interrupts : property with a value describing the interrupt 13 number 9 number >> 10 - interrupt-parent : The parent interrupt controller 14 - cpdma_channels : Specifies number of 11 - cpdma_channels : Specifies number of channels in CPDMA 15 - ale_entries : Specifies No of entr 12 - ale_entries : Specifies No of entries ALE can hold 16 - bd_ram_size : Specifies internal d 13 - bd_ram_size : Specifies internal descriptor RAM size >> 14 - rx_descs : Specifies number of Rx descriptors 17 - mac_control : Specifies Default MA 15 - mac_control : Specifies Default MAC control register content 18 for the specific pla 16 for the specific platform 19 - slaves : Specifies number for 17 - slaves : Specifies number for slaves 20 - active_slave : Specifies the slave 18 - active_slave : Specifies the slave to use for time stamping, 21 ethtool and SIOCGMII 19 ethtool and SIOCGMIIPHY 22 - cpsw-phy-sel : Specifies the phandl !! 20 - cpts_clock_mult : Numerator to convert input clock ticks into nanoseconds 23 device. See also cps !! 21 - cpts_clock_shift : Denominator to convert input clock ticks into nanoseconds 24 Note that in legacy << 25 a child device inste << 26 (DEPRECATED, use phy << 27 22 28 Optional properties: 23 Optional properties: 29 - ti,hwmods : Must be "cpgmac0" 24 - ti,hwmods : Must be "cpgmac0" >> 25 - no_bd_ram : Must be 0 or 1 30 - dual_emac : Specifies Switch to 26 - dual_emac : Specifies Switch to act as Dual EMAC 31 - syscon : Phandle to the syste << 32 the control module d << 33 - mode-gpios : Should be added if o << 34 required to be drive << 35 can be connected to << 36 For example in dra72 << 37 driven low so that c << 38 lines are connected << 39 - cpts_clock_mult : Numerator to convert << 40 - cpts_clock_shift : Denominator to conve << 41 Mult and shift will << 42 rftclk frequency if << 43 cpts_clock_mult prop << 44 27 45 Slave Properties: 28 Slave Properties: 46 Required properties: 29 Required properties: 47 - phy-mode : See ethernet.txt fil !! 30 - phy_id : Specifies slave phy id 48 - phys : phandle on phy-gmii- !! 31 - mac-address : Specifies slave MAC address 49 32 50 Optional properties: 33 Optional properties: 51 - dual_emac_res_vlan : Specifies VID to be 34 - dual_emac_res_vlan : Specifies VID to be used to segregate the ports 52 - phy_id : Specifies slave phy << 53 - phy-handle : See ethernet.txt fil << 54 << 55 The MAC address will be determined using the o << 56 defined in ethernet.txt. << 57 << 58 Slave sub-nodes: << 59 - fixed-link : See fixed-link.txt f << 60 << 61 Note: Exactly one of phy_id, phy-handle, or fi << 62 35 63 Note: "ti,hwmods" field is used to fetch the b 36 Note: "ti,hwmods" field is used to fetch the base address and irq 64 resources from TI, omap hwmod data base during 37 resources from TI, omap hwmod data base during device registration. 65 Future plan is to migrate hwmod data base cont 38 Future plan is to migrate hwmod data base contents into device tree 66 blob so that, all the required data will be us 39 blob so that, all the required data will be used from device tree dts 67 file. 40 file. 68 41 69 Examples: 42 Examples: 70 43 71 mac: ethernet@4a100000 { !! 44 mac: ethernet@4A100000 { 72 compatible = "ti,cpsw"; 45 compatible = "ti,cpsw"; 73 reg = <0x4A100000 0x1000>; 46 reg = <0x4A100000 0x1000>; 74 interrupts = <55 0x4>; 47 interrupts = <55 0x4>; 75 interrupt-parent = <&intc>; 48 interrupt-parent = <&intc>; 76 cpdma_channels = <8>; 49 cpdma_channels = <8>; 77 ale_entries = <1024>; 50 ale_entries = <1024>; 78 bd_ram_size = <0x2000>; 51 bd_ram_size = <0x2000>; >> 52 no_bd_ram = <0>; 79 rx_descs = <64>; 53 rx_descs = <64>; 80 mac_control = <0x20>; 54 mac_control = <0x20>; 81 slaves = <2>; 55 slaves = <2>; 82 active_slave = <0>; 56 active_slave = <0>; 83 cpts_clock_mult = <0x80000000> 57 cpts_clock_mult = <0x80000000>; 84 cpts_clock_shift = <29>; 58 cpts_clock_shift = <29>; 85 syscon = <&cm>; << 86 cpsw-phy-sel = <&phy_sel>; << 87 cpsw_emac0: slave@0 { 59 cpsw_emac0: slave@0 { 88 phy_id = <&davinci_mdi 60 phy_id = <&davinci_mdio>, <0>; 89 phy-mode = "rgmii-txid << 90 /* Filled in by U-Boot 61 /* Filled in by U-Boot */ 91 mac-address = [ 00 00 62 mac-address = [ 00 00 00 00 00 00 ]; 92 phys = <&phy_gmii_sel << 93 }; 63 }; 94 cpsw_emac1: slave@1 { 64 cpsw_emac1: slave@1 { 95 phy_id = <&davinci_mdi 65 phy_id = <&davinci_mdio>, <1>; 96 phy-mode = "rgmii-txid << 97 /* Filled in by U-Boot 66 /* Filled in by U-Boot */ 98 mac-address = [ 00 00 67 mac-address = [ 00 00 00 00 00 00 ]; 99 phys = <&phy_gmii_sel << 100 }; 68 }; 101 }; 69 }; 102 70 103 (or) 71 (or) 104 mac: ethernet@4a100000 { !! 72 mac: ethernet@4A100000 { 105 compatible = "ti,cpsw"; 73 compatible = "ti,cpsw"; 106 ti,hwmods = "cpgmac0"; 74 ti,hwmods = "cpgmac0"; 107 cpdma_channels = <8>; 75 cpdma_channels = <8>; 108 ale_entries = <1024>; 76 ale_entries = <1024>; 109 bd_ram_size = <0x2000>; 77 bd_ram_size = <0x2000>; >> 78 no_bd_ram = <0>; 110 rx_descs = <64>; 79 rx_descs = <64>; 111 mac_control = <0x20>; 80 mac_control = <0x20>; 112 slaves = <2>; 81 slaves = <2>; 113 active_slave = <0>; 82 active_slave = <0>; 114 cpts_clock_mult = <0x80000000> 83 cpts_clock_mult = <0x80000000>; 115 cpts_clock_shift = <29>; 84 cpts_clock_shift = <29>; 116 syscon = <&cm>; << 117 cpsw-phy-sel = <&phy_sel>; << 118 cpsw_emac0: slave@0 { 85 cpsw_emac0: slave@0 { 119 phy_id = <&davinci_mdi 86 phy_id = <&davinci_mdio>, <0>; 120 phy-mode = "rgmii-txid << 121 /* Filled in by U-Boot 87 /* Filled in by U-Boot */ 122 mac-address = [ 00 00 88 mac-address = [ 00 00 00 00 00 00 ]; 123 phys = <&phy_gmii_sel << 124 }; 89 }; 125 cpsw_emac1: slave@1 { 90 cpsw_emac1: slave@1 { 126 phy_id = <&davinci_mdi 91 phy_id = <&davinci_mdio>, <1>; 127 phy-mode = "rgmii-txid << 128 /* Filled in by U-Boot 92 /* Filled in by U-Boot */ 129 mac-address = [ 00 00 93 mac-address = [ 00 00 00 00 00 00 ]; 130 phys = <&phy_gmii_sel << 131 }; 94 }; 132 }; 95 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.