xref: /freebsd/sys/contrib/device-tree/Bindings/net/ti,dp83867.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot# Copyright (C) 2019 Texas Instruments Incorporated
3c66ec88fSEmmanuel Vadot%YAML 1.2
4c66ec88fSEmmanuel Vadot---
5*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/net/ti,dp83867.yaml#
6*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadottitle: TI DP83867 ethernet PHY
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel VadotallOf:
11*fac71e4eSEmmanuel Vadot  - $ref: ethernet-controller.yaml#
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotmaintainers:
14b97ee269SEmmanuel Vadot  - Andrew Davis <afd@ti.com>
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadotdescription: |
17c66ec88fSEmmanuel Vadot  The DP83867 device is a robust, low power, fully featured Physical Layer
18c66ec88fSEmmanuel Vadot  transceiver with integrated PMD sublayers to support 10BASE-Te, 100BASE-TX
19c66ec88fSEmmanuel Vadot  and 1000BASE-T Ethernet protocols.
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot  The DP83867 is designed for easy implementation of 10/100/1000 Mbps Ethernet
22c66ec88fSEmmanuel Vadot  LANs. It interfaces directly to twisted pair media via an external
23c66ec88fSEmmanuel Vadot  transformer. This device interfaces directly to the MAC layer through the
24c66ec88fSEmmanuel Vadot  IEEE 802.3 Standard Media Independent Interface (MII), the IEEE 802.3 Gigabit
25c66ec88fSEmmanuel Vadot  Media Independent Interface (GMII) or Reduced GMII (RGMII).
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot  Specifications about the Ethernet PHY can be found at:
28c66ec88fSEmmanuel Vadot    https://www.ti.com/lit/gpn/dp83867ir
29c66ec88fSEmmanuel Vadot
30c66ec88fSEmmanuel Vadotproperties:
31c66ec88fSEmmanuel Vadot  reg:
32c66ec88fSEmmanuel Vadot    maxItems: 1
33c66ec88fSEmmanuel Vadot
34b97ee269SEmmanuel Vadot  nvmem-cells:
35b97ee269SEmmanuel Vadot    maxItems: 1
36b97ee269SEmmanuel Vadot    description:
37b97ee269SEmmanuel Vadot      Nvmem data cell containing the value to write to the
38b97ee269SEmmanuel Vadot      IO_IMPEDANCE_CTRL field of the IO_MUX_CFG register.
39b97ee269SEmmanuel Vadot
40b97ee269SEmmanuel Vadot  nvmem-cell-names:
41b97ee269SEmmanuel Vadot    items:
42b97ee269SEmmanuel Vadot      - const: io_impedance_ctrl
43b97ee269SEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  ti,min-output-impedance:
45c66ec88fSEmmanuel Vadot    type: boolean
46c66ec88fSEmmanuel Vadot    description: |
47c66ec88fSEmmanuel Vadot       MAC Interface Impedance control to set the programmable output impedance
48c66ec88fSEmmanuel Vadot       to a minimum value (35 ohms).
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot  ti,max-output-impedance:
51c66ec88fSEmmanuel Vadot    type: boolean
52c66ec88fSEmmanuel Vadot    description: |
53c66ec88fSEmmanuel Vadot      MAC Interface Impedance control to set the programmable output impedance
54c66ec88fSEmmanuel Vadot      to a maximum value (70 ohms).
55b97ee269SEmmanuel Vadot      Note: Specifying an io_impedance_ctrl nvmem cell or one of the
56b97ee269SEmmanuel Vadot        ti,min-output-impedance, ti,max-output-impedance properties
57b97ee269SEmmanuel Vadot        are mutually exclusive. If more than one is present, an nvmem
58b97ee269SEmmanuel Vadot        cell takes precedence over ti,max-output-impedance, which in
59b97ee269SEmmanuel Vadot        turn takes precedence over ti,min-output-impedance.
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot  tx-fifo-depth:
625def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
63c66ec88fSEmmanuel Vadot    description: |
64c66ec88fSEmmanuel Vadot       Transmitt FIFO depth see dt-bindings/net/ti-dp83867.h for values
65c66ec88fSEmmanuel Vadot
66c66ec88fSEmmanuel Vadot  rx-fifo-depth:
675def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
68c66ec88fSEmmanuel Vadot    description: |
69c66ec88fSEmmanuel Vadot       Receive FIFO depth see dt-bindings/net/ti-dp83867.h for values
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot  ti,clk-output-sel:
725def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
73c66ec88fSEmmanuel Vadot    description: |
74c66ec88fSEmmanuel Vadot      Muxing option for CLK_OUT pin.  See dt-bindings/net/ti-dp83867.h
75c66ec88fSEmmanuel Vadot      for applicable values. The CLK_OUT pin can also be disabled by this
76c66ec88fSEmmanuel Vadot      property.  When omitted, the PHY's default will be left as is.
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot  ti,rx-internal-delay:
795def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
80c66ec88fSEmmanuel Vadot    description: |
81c66ec88fSEmmanuel Vadot      RGMII Receive Clock Delay - see dt-bindings/net/ti-dp83867.h
82c66ec88fSEmmanuel Vadot      for applicable values. Required only if interface type is
83c66ec88fSEmmanuel Vadot      PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_RXID.
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot  ti,tx-internal-delay:
865def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
87c66ec88fSEmmanuel Vadot    description: |
88c66ec88fSEmmanuel Vadot      RGMII Transmit Clock Delay - see dt-bindings/net/ti-dp83867.h
89c66ec88fSEmmanuel Vadot      for applicable values. Required only if interface type is
90c66ec88fSEmmanuel Vadot      PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_TXID.
91c66ec88fSEmmanuel Vadot
92c66ec88fSEmmanuel Vadot        Note: If the interface type is PHY_INTERFACE_MODE_RGMII the TX/RX clock
93c66ec88fSEmmanuel Vadot          delays will be left at their default values, as set by the PHY's pin
94c66ec88fSEmmanuel Vadot          strapping. The default strapping will use a delay of 2.00 ns.  Thus
95c66ec88fSEmmanuel Vadot          PHY_INTERFACE_MODE_RGMII, by default, does not behave as RGMII with no
96c66ec88fSEmmanuel Vadot          internal delay, but as PHY_INTERFACE_MODE_RGMII_ID.  The device tree
97c66ec88fSEmmanuel Vadot          should use "rgmii-id" if internal delays are desired as this may be
98c66ec88fSEmmanuel Vadot          changed in future to cause "rgmii" mode to disable delays.
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot  ti,dp83867-rxctrl-strap-quirk:
101c66ec88fSEmmanuel Vadot    type: boolean
102c66ec88fSEmmanuel Vadot    description: |
103c66ec88fSEmmanuel Vadot      This denotes the fact that the board has RX_DV/RX_CTRL pin strapped in
104c66ec88fSEmmanuel Vadot      mode 1 or 2. To ensure PHY operation, there are specific actions that
105c66ec88fSEmmanuel Vadot      software needs to take when this pin is strapped in these modes.
106c66ec88fSEmmanuel Vadot      See data manual for details.
107c66ec88fSEmmanuel Vadot
108c66ec88fSEmmanuel Vadot  ti,sgmii-ref-clock-output-enable:
109c66ec88fSEmmanuel Vadot    type: boolean
110c66ec88fSEmmanuel Vadot    description: |
111c66ec88fSEmmanuel Vadot      This denotes which SGMII configuration is used (4 or 6-wire modes).
112c66ec88fSEmmanuel Vadot      Some MACs work with differential SGMII clock. See data manual for details.
113c66ec88fSEmmanuel Vadot
114c66ec88fSEmmanuel Vadot  ti,fifo-depth:
115c66ec88fSEmmanuel Vadot    deprecated: true
1165def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
117c66ec88fSEmmanuel Vadot    description: |
118c66ec88fSEmmanuel Vadot      Transmitt FIFO depth- see dt-bindings/net/ti-dp83867.h for applicable
119c66ec88fSEmmanuel Vadot      values.
120c66ec88fSEmmanuel Vadot
121c66ec88fSEmmanuel Vadotrequired:
122c66ec88fSEmmanuel Vadot  - reg
123c66ec88fSEmmanuel Vadot
1246be33864SEmmanuel VadotunevaluatedProperties: false
1256be33864SEmmanuel Vadot
126c66ec88fSEmmanuel Vadotexamples:
127c66ec88fSEmmanuel Vadot  - |
128c66ec88fSEmmanuel Vadot    #include <dt-bindings/net/ti-dp83867.h>
129c66ec88fSEmmanuel Vadot    mdio0 {
130c66ec88fSEmmanuel Vadot      #address-cells = <1>;
131c66ec88fSEmmanuel Vadot      #size-cells = <0>;
132c66ec88fSEmmanuel Vadot      ethphy0: ethernet-phy@0 {
133c66ec88fSEmmanuel Vadot        reg = <0>;
134c66ec88fSEmmanuel Vadot        tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
135c66ec88fSEmmanuel Vadot        rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
136c66ec88fSEmmanuel Vadot        ti,max-output-impedance;
137c66ec88fSEmmanuel Vadot        ti,clk-output-sel = <DP83867_CLK_O_SEL_CHN_A_RCLK>;
138c66ec88fSEmmanuel Vadot        ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
139c66ec88fSEmmanuel Vadot        ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
140c66ec88fSEmmanuel Vadot      };
141c66ec88fSEmmanuel Vadot    };
142