Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt: net: enhance DWC EQoS binding to support Tegra186

The Synopsys DWC EQoS is a configurable IP block which supports multiple
options for bus type, clocking and reset structure, and feature list.
Extend the DT binding to define a "compatible value" for the configuration
contained in NVIDIA's Tegra186 SoC, and define some new properties and
list property entries required by that configuration.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Rob Herring <robh@kernel.org>

authored by

Stephen Warren and committed by
Rob Herring
d4b8e2c5 610e1283

+95 -4
+95 -4
Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
··· 1 1 * Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC) 2 2 3 + This binding supports the Synopsys Designware Ethernet QoS (Quality Of Service) 4 + IP block. The IP supports multiple options for bus type, clocking and reset 5 + structure, and feature list. Consequently, a number of properties and list 6 + entries in properties are marked as optional, or only required in specific HW 7 + configurations. 3 8 4 9 Required properties: 5 - - compatible: Should be "snps,dwc-qos-ethernet-4.10" 10 + - compatible: One of: 11 + - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10" 12 + Represents the IP core when integrated into the Axis ARTPEC-6 SoC. 13 + - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10" 14 + Represents the IP core when integrated into the NVIDIA Tegra186 SoC. 15 + - "snps,dwc-qos-ethernet-4.10" 16 + This combination is deprecated. It should be treated as equivalent to 17 + "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10". It is supported to be 18 + compatible with earlier revisions of this binding. 6 19 - reg: Address and length of the register set for the device 7 - - clocks: Phandles to the reference clock and the bus clock 8 - - clock-names: Should be "phy_ref_clk" for the reference clock and "apb_pclk" 9 - for the bus clock. 20 + - clocks: Phandle and clock specifiers for each entry in clock-names, in the 21 + same order. See ../clock/clock-bindings.txt. 22 + - clock-names: May contain any/all of the following depending on the IP 23 + configuration, in any order: 24 + - "tx" 25 + The EQOS transmit path clock. The HW signal name is clk_tx_i. 26 + In some configurations (e.g. GMII/RGMII), this clock also drives the PHY TX 27 + path. In other configurations, other clocks (such as tx_125, rmii) may 28 + drive the PHY TX path. 29 + - "rx" 30 + The EQOS receive path clock. The HW signal name is clk_rx_i. 31 + In some configurations (e.g. GMII/RGMII), this clock is derived from the 32 + PHY's RX clock output. In other configurations, other clocks (such as 33 + rx_125, rmii) may drive the EQOS RX path. 34 + In cases where the PHY clock is directly fed into the EQOS receive path 35 + without intervening logic, the DT need not represent this clock, since it 36 + is assumed to be fully under the control of the PHY device/driver. In 37 + cases where SoC integration adds additional logic to this path, such as a 38 + SW-controlled clock gate, this clock should be represented in DT. 39 + - "slave_bus" 40 + The CPU/slave-bus (CSR) interface clock. This applies to any bus type; 41 + APB, AHB, AXI, etc. The HW signal name is hclk_i (AHB) or clk_csr_i (other 42 + buses). 43 + - "master_bus" 44 + The master bus interface clock. Only required in configurations that use a 45 + separate clock for the master and slave bus interfaces. The HW signal name 46 + is hclk_i (AHB) or aclk_i (AXI). 47 + - "ptp_ref" 48 + The PTP reference clock. The HW signal name is clk_ptp_ref_i. 49 + - "phy_ref_clk" 50 + This clock is deprecated and should not be used by new compatible values. 51 + It is equivalent to "tx". 52 + - "apb_pclk" 53 + This clock is deprecated and should not be used by new compatible values. 54 + It is equivalent to "slave_bus". 55 + 56 + Note: Support for additional IP configurations may require adding the 57 + following clocks to this list in the future: clk_rx_125_i, clk_tx_125_i, 58 + clk_pmarx_0_i, clk_pmarx1_i, clk_rmii_i, clk_revmii_rx_i, clk_revmii_tx_i. 59 + Configurations exist where multiple similar clocks are used at once, e.g. all 60 + of clk_rx_125_i, clk_pmarx_0_i, clk_pmarx1_i. For this reason it is best to 61 + extend the binding with a separate clock-names entry for each of those RX 62 + clocks, rather than repurposing the existing "rx" clock-names entry as a 63 + generic/logical clock in a similar fashion to "master_bus" and "slave_bus". 64 + This will allow easy support for configurations that support multiple PHY 65 + interfaces using a mux, and hence need to have explicit control over 66 + specific RX clocks. 67 + 68 + The following compatible values require the following set of clocks: 69 + - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10": 70 + - "slave_bus" 71 + - "master_bus" 72 + - "rx" 73 + - "tx" 74 + - "ptp_ref" 75 + - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10": 76 + - "slave_bus" 77 + - "master_bus" 78 + - "tx" 79 + - "ptp_ref" 80 + - "snps,dwc-qos-ethernet-4.10" (deprecated): 81 + - "phy_ref_clk" 82 + - "apb_clk" 10 83 - interrupt-parent: Should be the phandle for the interrupt controller 11 84 that services interrupts for this device 12 85 - interrupts: Should contain the core's combined interrupt signal 13 86 - phy-mode: See ethernet.txt file in the same directory 87 + - resets: Phandle and reset specifiers for each entry in reset-names, in the 88 + same order. See ../reset/reset.txt. 89 + - reset-names: May contain any/all of the following depending on the IP 90 + configuration, in any order: 91 + - "eqos". The reset to the entire module. The HW signal name is hreset_n 92 + (AHB) or aresetn_i (AXI). 93 + 94 + The following compatible values require the following set of resets: 95 + (the reset properties may be omitted if empty) 96 + - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10": 97 + - "eqos". 98 + - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10": 99 + - None. 100 + - "snps,dwc-qos-ethernet-4.10" (deprecated): 101 + - None. 14 102 15 103 Optional properties: 16 104 - dma-coherent: Present if dma operations are coherent 17 105 - mac-address: See ethernet.txt in the same directory 18 106 - local-mac-address: See ethernet.txt in the same directory 107 + - phy-reset-gpios: Phandle and specifier for any GPIO used to reset the PHY. 108 + See ../gpio/gpio.txt. 19 109 - snps,en-lpi: If present it enables use of the AXI low-power interface 20 110 - snps,write-requests: Number of write requests that the AXI port can issue. 21 111 It depends on the SoC configuration. ··· 142 52 reg = <0x40010000 0x4000>; 143 53 phy-handle = <&phy2>; 144 54 phy-mode = "gmii"; 55 + phy-reset-gpios = <&gpioctlr 43 GPIO_ACTIVE_LOW>; 145 56 146 57 snps,en-tx-lpi-clockgating; 147 58 snps,en-lpi;