| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/net/ti,icssm-prueth.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Texas Instruments ICSSM PRUSS Ethernet |
| |
| maintainers: |
| - Roger Quadros <rogerq@ti.com> |
| - Andrew F. Davis <afd@ti.com> |
| - Parvathi Pudi <parvathi@couthit.com> |
| - Basharath Hussain Khaja <basharath@couthit.com> |
| |
| description: |
| Ethernet based on the Programmable Real-Time Unit and Industrial |
| Communication Subsystem. |
| |
| properties: |
| compatible: |
| enum: |
| - ti,am57-prueth # for AM57x SoC family |
| - ti,am4376-prueth # for AM43x SoC family |
| - ti,am3359-prueth # for AM33x SoC family |
| |
| sram: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| phandle to OCMC SRAM node |
| |
| ti,mii-rt: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| phandle to the MII_RT peripheral for ICSS |
| |
| ti,iep: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| phandle to IEP (Industrial Ethernet Peripheral) for ICSS |
| |
| ti,ecap: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| phandle to Enhanced Capture (eCAP) event for ICSS |
| |
| interrupts: |
| items: |
| - description: High priority Rx Interrupt specifier. |
| - description: Low priority Rx Interrupt specifier. |
| |
| interrupt-names: |
| items: |
| - const: rx_hp |
| - const: rx_lp |
| |
| ethernet-ports: |
| type: object |
| additionalProperties: false |
| |
| properties: |
| '#address-cells': |
| const: 1 |
| '#size-cells': |
| const: 0 |
| |
| patternProperties: |
| ^ethernet-port@[0-1]$: |
| type: object |
| description: ICSSM PRUETH external ports |
| $ref: ethernet-controller.yaml# |
| unevaluatedProperties: false |
| |
| properties: |
| reg: |
| items: |
| - enum: [0, 1] |
| description: ICSSM PRUETH port number |
| |
| interrupts: |
| maxItems: 3 |
| |
| interrupt-names: |
| items: |
| - const: rx |
| - const: emac_ptp_tx |
| - const: hsr_ptp_tx |
| |
| required: |
| - reg |
| |
| anyOf: |
| - required: |
| - ethernet-port@0 |
| - required: |
| - ethernet-port@1 |
| |
| required: |
| - compatible |
| - sram |
| - ti,mii-rt |
| - ti,iep |
| - ti,ecap |
| - ethernet-ports |
| - interrupts |
| - interrupt-names |
| |
| allOf: |
| - $ref: /schemas/remoteproc/ti,pru-consumer.yaml# |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| /* Dual-MAC Ethernet application node on PRU-ICSS2 */ |
| pruss2_eth: pruss2-eth { |
| compatible = "ti,am57-prueth"; |
| ti,prus = <&pru2_0>, <&pru2_1>; |
| sram = <&ocmcram1>; |
| ti,mii-rt = <&pruss2_mii_rt>; |
| ti,iep = <&pruss2_iep>; |
| ti,ecap = <&pruss2_ecap>; |
| interrupts = <20 2 2>, <21 3 3>; |
| interrupt-names = "rx_hp", "rx_lp"; |
| interrupt-parent = <&pruss2_intc>; |
| |
| ethernet-ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| pruss2_emac0: ethernet-port@0 { |
| reg = <0>; |
| phy-handle = <&pruss2_eth0_phy>; |
| phy-mode = "mii"; |
| interrupts = <20 2 2>, <26 6 6>, <23 6 6>; |
| interrupt-names = "rx", "emac_ptp_tx", "hsr_ptp_tx"; |
| /* Filled in by bootloader */ |
| local-mac-address = [00 00 00 00 00 00]; |
| }; |
| |
| pruss2_emac1: ethernet-port@1 { |
| reg = <1>; |
| phy-handle = <&pruss2_eth1_phy>; |
| phy-mode = "mii"; |
| interrupts = <21 3 3>, <27 9 7>, <24 9 7>; |
| interrupt-names = "rx", "emac_ptp_tx", "hsr_ptp_tx"; |
| /* Filled in by bootloader */ |
| local-mac-address = [00 00 00 00 00 00]; |
| }; |
| }; |
| }; |
| - | |
| /* Dual-MAC Ethernet application node on PRU-ICSS1 */ |
| pruss1_eth: pruss1-eth { |
| compatible = "ti,am4376-prueth"; |
| ti,prus = <&pru1_0>, <&pru1_1>; |
| sram = <&ocmcram>; |
| ti,mii-rt = <&pruss1_mii_rt>; |
| ti,iep = <&pruss1_iep>; |
| ti,ecap = <&pruss1_ecap>; |
| interrupts = <20 2 2>, <21 3 3>; |
| interrupt-names = "rx_hp", "rx_lp"; |
| interrupt-parent = <&pruss1_intc>; |
| |
| pinctrl-0 = <&pruss1_eth_default>; |
| pinctrl-names = "default"; |
| |
| ethernet-ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| pruss1_emac0: ethernet-port@0 { |
| reg = <0>; |
| phy-handle = <&pruss1_eth0_phy>; |
| phy-mode = "mii"; |
| interrupts = <20 2 2>, <26 6 6>, <23 6 6>; |
| interrupt-names = "rx", "emac_ptp_tx", |
| "hsr_ptp_tx"; |
| /* Filled in by bootloader */ |
| local-mac-address = [00 00 00 00 00 00]; |
| }; |
| |
| pruss1_emac1: ethernet-port@1 { |
| reg = <1>; |
| phy-handle = <&pruss1_eth1_phy>; |
| phy-mode = "mii"; |
| interrupts = <21 3 3>, <27 9 7>, <24 9 7>; |
| interrupt-names = "rx", "emac_ptp_tx", |
| "hsr_ptp_tx"; |
| /* Filled in by bootloader */ |
| local-mac-address = [00 00 00 00 00 00]; |
| }; |
| }; |
| }; |
| - | |
| /* Dual-MAC Ethernet application node on PRU-ICSS */ |
| pruss_eth: pruss-eth { |
| compatible = "ti,am3359-prueth"; |
| ti,prus = <&pru0>, <&pru1>; |
| sram = <&ocmcram>; |
| ti,mii-rt = <&pruss_mii_rt>; |
| ti,iep = <&pruss_iep>; |
| ti,ecap = <&pruss_ecap>; |
| interrupts = <20 2 2>, <21 3 3>; |
| interrupt-names = "rx_hp", "rx_lp"; |
| interrupt-parent = <&pruss_intc>; |
| |
| pinctrl-0 = <&pruss_eth_default>; |
| pinctrl-names = "default"; |
| |
| ethernet-ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| pruss_emac0: ethernet-port@0 { |
| reg = <0>; |
| phy-handle = <&pruss_eth0_phy>; |
| phy-mode = "mii"; |
| interrupts = <20 2 2>, <26 6 6>, <23 6 6>; |
| interrupt-names = "rx", "emac_ptp_tx", |
| "hsr_ptp_tx"; |
| /* Filled in by bootloader */ |
| local-mac-address = [00 00 00 00 00 00]; |
| }; |
| |
| pruss_emac1: ethernet-port@1 { |
| reg = <1>; |
| phy-handle = <&pruss_eth1_phy>; |
| phy-mode = "mii"; |
| interrupts = <21 3 3>, <27 9 7>, <24 9 7>; |
| interrupt-names = "rx", "emac_ptp_tx", |
| "hsr_ptp_tx"; |
| /* Filled in by bootloader */ |
| local-mac-address = [00 00 00 00 00 00]; |
| }; |
| }; |
| }; |