Linux-6.18.2/Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
2025-12-23 20:06:59 +08:00

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];
};
};
};