234 lines
6.3 KiB
YAML
234 lines
6.3 KiB
YAML
# 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];
|
|
};
|
|
};
|
|
};
|