xref: /freebsd/sys/contrib/device-tree/Bindings/net/ti,icssg-prueth.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2aa1a8ff2SEmmanuel Vadot%YAML 1.2
3aa1a8ff2SEmmanuel Vadot---
4aa1a8ff2SEmmanuel Vadot$id: http://devicetree.org/schemas/net/ti,icssg-prueth.yaml#
5aa1a8ff2SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6aa1a8ff2SEmmanuel Vadot
7aa1a8ff2SEmmanuel Vadottitle: Texas Instruments ICSSG PRUSS Ethernet
8aa1a8ff2SEmmanuel Vadot
9aa1a8ff2SEmmanuel Vadotmaintainers:
10aa1a8ff2SEmmanuel Vadot  - Md Danish Anwar <danishanwar@ti.com>
11aa1a8ff2SEmmanuel Vadot
12aa1a8ff2SEmmanuel Vadotdescription:
13aa1a8ff2SEmmanuel Vadot  Ethernet based on the Programmable Real-Time Unit and Industrial
14aa1a8ff2SEmmanuel Vadot  Communication Subsystem.
15aa1a8ff2SEmmanuel Vadot
16aa1a8ff2SEmmanuel Vadotproperties:
17aa1a8ff2SEmmanuel Vadot  compatible:
18aa1a8ff2SEmmanuel Vadot    enum:
1984943d6fSEmmanuel Vadot      - ti,am642-icssg-prueth      # for AM64x SoC family
20aa1a8ff2SEmmanuel Vadot      - ti,am654-icssg-prueth      # for AM65x SoC family
217d0873ebSEmmanuel Vadot      - ti,am654-sr1-icssg-prueth  # for AM65x SoC family, SR1.0
22aa1a8ff2SEmmanuel Vadot
23aa1a8ff2SEmmanuel Vadot  sram:
24aa1a8ff2SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
25aa1a8ff2SEmmanuel Vadot    description:
26aa1a8ff2SEmmanuel Vadot      phandle to MSMC SRAM node
27aa1a8ff2SEmmanuel Vadot
28aa1a8ff2SEmmanuel Vadot  dmas:
297d0873ebSEmmanuel Vadot    minItems: 10
307d0873ebSEmmanuel Vadot    maxItems: 12
31aa1a8ff2SEmmanuel Vadot
32aa1a8ff2SEmmanuel Vadot  dma-names:
337d0873ebSEmmanuel Vadot    minItems: 10
34aa1a8ff2SEmmanuel Vadot    items:
35aa1a8ff2SEmmanuel Vadot      - const: tx0-0
36aa1a8ff2SEmmanuel Vadot      - const: tx0-1
37aa1a8ff2SEmmanuel Vadot      - const: tx0-2
38aa1a8ff2SEmmanuel Vadot      - const: tx0-3
39aa1a8ff2SEmmanuel Vadot      - const: tx1-0
40aa1a8ff2SEmmanuel Vadot      - const: tx1-1
41aa1a8ff2SEmmanuel Vadot      - const: tx1-2
42aa1a8ff2SEmmanuel Vadot      - const: tx1-3
43aa1a8ff2SEmmanuel Vadot      - const: rx0
44aa1a8ff2SEmmanuel Vadot      - const: rx1
457d0873ebSEmmanuel Vadot      - const: rxmgm0
467d0873ebSEmmanuel Vadot      - const: rxmgm1
47aa1a8ff2SEmmanuel Vadot
48aa1a8ff2SEmmanuel Vadot  ti,mii-g-rt:
49aa1a8ff2SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
50aa1a8ff2SEmmanuel Vadot    description:
51aa1a8ff2SEmmanuel Vadot      phandle to MII_G_RT module's syscon regmap.
52aa1a8ff2SEmmanuel Vadot
53aa1a8ff2SEmmanuel Vadot  ti,mii-rt:
54aa1a8ff2SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
55aa1a8ff2SEmmanuel Vadot    description:
56aa1a8ff2SEmmanuel Vadot      phandle to MII_RT module's syscon regmap
57aa1a8ff2SEmmanuel Vadot
58*0e8011faSEmmanuel Vadot  ti,pa-stats:
59*0e8011faSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
60*0e8011faSEmmanuel Vadot    description:
61*0e8011faSEmmanuel Vadot      phandle to PA_STATS module's syscon regmap. PA_STATS is a set of
62*0e8011faSEmmanuel Vadot      registers where different statistics related to ICSSG, are dumped by
63*0e8011faSEmmanuel Vadot      ICSSG firmware. PA_STATS module's syscon regmap will help the device to
64*0e8011faSEmmanuel Vadot      access/read/write those statistics.
65*0e8011faSEmmanuel Vadot
66aa1a8ff2SEmmanuel Vadot  ti,iep:
67aa1a8ff2SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
68aa1a8ff2SEmmanuel Vadot    maxItems: 2
69aa1a8ff2SEmmanuel Vadot    items:
70aa1a8ff2SEmmanuel Vadot      maxItems: 1
71aa1a8ff2SEmmanuel Vadot    description:
72aa1a8ff2SEmmanuel Vadot      phandle to IEP (Industrial Ethernet Peripheral) for ICSSG
73aa1a8ff2SEmmanuel Vadot
74aa1a8ff2SEmmanuel Vadot  interrupts:
75aa1a8ff2SEmmanuel Vadot    maxItems: 2
76aa1a8ff2SEmmanuel Vadot    description:
77aa1a8ff2SEmmanuel Vadot      Interrupt specifiers to TX timestamp IRQ.
78aa1a8ff2SEmmanuel Vadot
79aa1a8ff2SEmmanuel Vadot  interrupt-names:
80aa1a8ff2SEmmanuel Vadot    items:
81aa1a8ff2SEmmanuel Vadot      - const: tx_ts0
82aa1a8ff2SEmmanuel Vadot      - const: tx_ts1
83aa1a8ff2SEmmanuel Vadot
84aa1a8ff2SEmmanuel Vadot  ethernet-ports:
85aa1a8ff2SEmmanuel Vadot    type: object
86aa1a8ff2SEmmanuel Vadot    additionalProperties: false
87aa1a8ff2SEmmanuel Vadot
88aa1a8ff2SEmmanuel Vadot    properties:
89aa1a8ff2SEmmanuel Vadot      '#address-cells':
90aa1a8ff2SEmmanuel Vadot        const: 1
91aa1a8ff2SEmmanuel Vadot      '#size-cells':
92aa1a8ff2SEmmanuel Vadot        const: 0
93aa1a8ff2SEmmanuel Vadot
94aa1a8ff2SEmmanuel Vadot    patternProperties:
95aa1a8ff2SEmmanuel Vadot      ^port@[0-1]$:
96aa1a8ff2SEmmanuel Vadot        type: object
97aa1a8ff2SEmmanuel Vadot        description: ICSSG PRUETH external ports
98aa1a8ff2SEmmanuel Vadot        $ref: ethernet-controller.yaml#
99aa1a8ff2SEmmanuel Vadot        unevaluatedProperties: false
100aa1a8ff2SEmmanuel Vadot
101aa1a8ff2SEmmanuel Vadot        properties:
102aa1a8ff2SEmmanuel Vadot          reg:
103aa1a8ff2SEmmanuel Vadot            items:
104aa1a8ff2SEmmanuel Vadot              - enum: [0, 1]
105aa1a8ff2SEmmanuel Vadot            description: ICSSG PRUETH port number
106aa1a8ff2SEmmanuel Vadot
107aa1a8ff2SEmmanuel Vadot          interrupts:
108aa1a8ff2SEmmanuel Vadot            maxItems: 1
109aa1a8ff2SEmmanuel Vadot
110aa1a8ff2SEmmanuel Vadot          ti,syscon-rgmii-delay:
111aa1a8ff2SEmmanuel Vadot            items:
112aa1a8ff2SEmmanuel Vadot              - items:
113aa1a8ff2SEmmanuel Vadot                  - description: phandle to system controller node
114aa1a8ff2SEmmanuel Vadot                  - description: The offset to ICSSG control register
115aa1a8ff2SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/phandle-array
116aa1a8ff2SEmmanuel Vadot            description:
117aa1a8ff2SEmmanuel Vadot              phandle to system controller node and register offset
118aa1a8ff2SEmmanuel Vadot              to ICSSG control register for RGMII transmit delay
119aa1a8ff2SEmmanuel Vadot
12084943d6fSEmmanuel Vadot          ti,half-duplex-capable:
12184943d6fSEmmanuel Vadot            type: boolean
12284943d6fSEmmanuel Vadot            description:
12384943d6fSEmmanuel Vadot              Indicates that the PHY output pin COL is routed to ICSSG GPIO pin
12484943d6fSEmmanuel Vadot              (PRGx_PRU0/1_GPIO10) as input so that the ICSSG MII port is
12584943d6fSEmmanuel Vadot              capable of half duplex operations.
12684943d6fSEmmanuel Vadot
127aa1a8ff2SEmmanuel Vadot        required:
128aa1a8ff2SEmmanuel Vadot          - reg
129aa1a8ff2SEmmanuel Vadot    anyOf:
130aa1a8ff2SEmmanuel Vadot      - required:
131aa1a8ff2SEmmanuel Vadot          - port@0
132aa1a8ff2SEmmanuel Vadot      - required:
133aa1a8ff2SEmmanuel Vadot          - port@1
134aa1a8ff2SEmmanuel Vadot
135aa1a8ff2SEmmanuel Vadotrequired:
136aa1a8ff2SEmmanuel Vadot  - compatible
137aa1a8ff2SEmmanuel Vadot  - sram
138aa1a8ff2SEmmanuel Vadot  - dmas
139aa1a8ff2SEmmanuel Vadot  - dma-names
140aa1a8ff2SEmmanuel Vadot  - ethernet-ports
141aa1a8ff2SEmmanuel Vadot  - ti,mii-g-rt
142aa1a8ff2SEmmanuel Vadot  - interrupts
143aa1a8ff2SEmmanuel Vadot  - interrupt-names
144aa1a8ff2SEmmanuel Vadot
1457d0873ebSEmmanuel VadotallOf:
1467d0873ebSEmmanuel Vadot  - $ref: /schemas/remoteproc/ti,pru-consumer.yaml#
1477d0873ebSEmmanuel Vadot
1487d0873ebSEmmanuel Vadot  - if:
1497d0873ebSEmmanuel Vadot      properties:
1507d0873ebSEmmanuel Vadot        compatible:
1517d0873ebSEmmanuel Vadot          contains:
1527d0873ebSEmmanuel Vadot            const: ti,am654-sr1-icssg-prueth
1537d0873ebSEmmanuel Vadot    then:
1547d0873ebSEmmanuel Vadot      properties:
1557d0873ebSEmmanuel Vadot        dmas:
1567d0873ebSEmmanuel Vadot          minItems: 12
1577d0873ebSEmmanuel Vadot        dma-names:
1587d0873ebSEmmanuel Vadot          minItems: 12
1597d0873ebSEmmanuel Vadot    else:
1607d0873ebSEmmanuel Vadot      properties:
1617d0873ebSEmmanuel Vadot        dmas:
1627d0873ebSEmmanuel Vadot          maxItems: 10
1637d0873ebSEmmanuel Vadot        dma-names:
1647d0873ebSEmmanuel Vadot          maxItems: 10
1657d0873ebSEmmanuel Vadot
166aa1a8ff2SEmmanuel VadotunevaluatedProperties: false
167aa1a8ff2SEmmanuel Vadot
168aa1a8ff2SEmmanuel Vadotexamples:
169aa1a8ff2SEmmanuel Vadot  - |
170aa1a8ff2SEmmanuel Vadot    /* Example k3-am654 base board SR2.0, dual-emac */
171aa1a8ff2SEmmanuel Vadot    pruss2_eth: ethernet {
172aa1a8ff2SEmmanuel Vadot        compatible = "ti,am654-icssg-prueth";
173aa1a8ff2SEmmanuel Vadot        pinctrl-names = "default";
174aa1a8ff2SEmmanuel Vadot        pinctrl-0 = <&icssg2_rgmii_pins_default>;
175aa1a8ff2SEmmanuel Vadot        sram = <&msmc_ram>;
176aa1a8ff2SEmmanuel Vadot
177aa1a8ff2SEmmanuel Vadot        ti,prus = <&pru2_0>, <&rtu2_0>, <&tx_pru2_0>,
178aa1a8ff2SEmmanuel Vadot                  <&pru2_1>, <&rtu2_1>, <&tx_pru2_1>;
179aa1a8ff2SEmmanuel Vadot        firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",
180aa1a8ff2SEmmanuel Vadot                        "ti-pruss/am65x-rtu0-prueth-fw.elf",
181aa1a8ff2SEmmanuel Vadot                        "ti-pruss/am65x-txpru0-prueth-fw.elf",
182aa1a8ff2SEmmanuel Vadot                        "ti-pruss/am65x-pru1-prueth-fw.elf",
183aa1a8ff2SEmmanuel Vadot                        "ti-pruss/am65x-rtu1-prueth-fw.elf",
184aa1a8ff2SEmmanuel Vadot                        "ti-pruss/am65x-txpru1-prueth-fw.elf";
185aa1a8ff2SEmmanuel Vadot        ti,pruss-gp-mux-sel = <2>,      /* MII mode */
186aa1a8ff2SEmmanuel Vadot                              <2>,
187aa1a8ff2SEmmanuel Vadot                              <2>,
188aa1a8ff2SEmmanuel Vadot                              <2>,      /* MII mode */
189aa1a8ff2SEmmanuel Vadot                              <2>,
190aa1a8ff2SEmmanuel Vadot                              <2>;
191aa1a8ff2SEmmanuel Vadot        dmas = <&main_udmap 0xc300>, /* egress slice 0 */
192aa1a8ff2SEmmanuel Vadot               <&main_udmap 0xc301>, /* egress slice 0 */
193aa1a8ff2SEmmanuel Vadot               <&main_udmap 0xc302>, /* egress slice 0 */
194aa1a8ff2SEmmanuel Vadot               <&main_udmap 0xc303>, /* egress slice 0 */
195aa1a8ff2SEmmanuel Vadot               <&main_udmap 0xc304>, /* egress slice 1 */
196aa1a8ff2SEmmanuel Vadot               <&main_udmap 0xc305>, /* egress slice 1 */
197aa1a8ff2SEmmanuel Vadot               <&main_udmap 0xc306>, /* egress slice 1 */
198aa1a8ff2SEmmanuel Vadot               <&main_udmap 0xc307>, /* egress slice 1 */
199aa1a8ff2SEmmanuel Vadot               <&main_udmap 0x4300>, /* ingress slice 0 */
200aa1a8ff2SEmmanuel Vadot               <&main_udmap 0x4301>; /* ingress slice 1 */
201aa1a8ff2SEmmanuel Vadot        dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
202aa1a8ff2SEmmanuel Vadot                    "tx1-0", "tx1-1", "tx1-2", "tx1-3",
203aa1a8ff2SEmmanuel Vadot                    "rx0", "rx1";
204aa1a8ff2SEmmanuel Vadot        ti,mii-g-rt = <&icssg2_mii_g_rt>;
205*0e8011faSEmmanuel Vadot        ti,pa-stats = <&icssg2_pa_stats>;
206aa1a8ff2SEmmanuel Vadot        ti,iep = <&icssg2_iep0>, <&icssg2_iep1>;
207aa1a8ff2SEmmanuel Vadot        interrupt-parent = <&icssg2_intc>;
208aa1a8ff2SEmmanuel Vadot        interrupts = <24 0 2>, <25 1 3>;
209aa1a8ff2SEmmanuel Vadot        interrupt-names = "tx_ts0", "tx_ts1";
210aa1a8ff2SEmmanuel Vadot        ethernet-ports {
211aa1a8ff2SEmmanuel Vadot            #address-cells = <1>;
212aa1a8ff2SEmmanuel Vadot            #size-cells = <0>;
213aa1a8ff2SEmmanuel Vadot            pruss2_emac0: port@0 {
214aa1a8ff2SEmmanuel Vadot                reg = <0>;
215aa1a8ff2SEmmanuel Vadot                phy-handle = <&pruss2_eth0_phy>;
216aa1a8ff2SEmmanuel Vadot                phy-mode = "rgmii-id";
217aa1a8ff2SEmmanuel Vadot                interrupts-extended = <&icssg2_intc 24>;
218aa1a8ff2SEmmanuel Vadot                ti,syscon-rgmii-delay = <&scm_conf 0x4120>;
219aa1a8ff2SEmmanuel Vadot                /* Filled in by bootloader */
220aa1a8ff2SEmmanuel Vadot                local-mac-address = [00 00 00 00 00 00];
221aa1a8ff2SEmmanuel Vadot            };
222aa1a8ff2SEmmanuel Vadot
223aa1a8ff2SEmmanuel Vadot            pruss2_emac1: port@1 {
224aa1a8ff2SEmmanuel Vadot                reg = <1>;
225aa1a8ff2SEmmanuel Vadot                phy-handle = <&pruss2_eth1_phy>;
226aa1a8ff2SEmmanuel Vadot                phy-mode = "rgmii-id";
227aa1a8ff2SEmmanuel Vadot                interrupts-extended = <&icssg2_intc 25>;
228aa1a8ff2SEmmanuel Vadot                ti,syscon-rgmii-delay = <&scm_conf 0x4124>;
229aa1a8ff2SEmmanuel Vadot                /* Filled in by bootloader */
230aa1a8ff2SEmmanuel Vadot                local-mac-address = [00 00 00 00 00 00];
231aa1a8ff2SEmmanuel Vadot            };
232aa1a8ff2SEmmanuel Vadot        };
233aa1a8ff2SEmmanuel Vadot    };
234