mirror of
https://github.com/torvalds/linux.git
synced 2026-09-28 12:02:03 +02:00
arm: dts: ti: Add device tree support for PRU-ICSS on AM57xx
The TI Sitara AM57xx series of devices consists of 2 PRU-ICSS instances (PRU-ICSS1 and PRU-ICSS2). This patch adds the device tree nodes for the PRU-ICSS2 instance to support DUAL-MAC mode of operation. Each PRU-ICSS instance consists of two PRU cores along with various peripherals such as the Interrupt Controller (PRU_INTC), the Industrial Ethernet Peripheral(IEP), the Real Time Media Independent Interface controller (MII_RT), and the Enhanced Capture (eCAP) event module. am57-pruss.dtsi - Adds IEP and eCAP peripheral as child nodes of the PRUSS subsystem node. am57xx-idk-common.dtsi - Adds PRU-ICSS2 instance node along with PRU eth port information and corresponding port configuration. It includes interrupt mapping for packet reception, HW timestamp collection, and PRU Ethernet ports in MII mode. am571x-idk.dts, am572x-idk.dts and am574x-idk.dts - GPIO configuration along with delay configuration for individual PRU Ethernet port. Signed-off-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com> Signed-off-by: Basharath Hussain Khaja <basharath@couthit.com> Signed-off-by: Parvathi Pudi <parvathi@couthit.com> Reviewed-by: MD Danish Anwar <danishanwar@ti.com> Link: https://patch.msgid.link/20260428072046.3022679-2-parvathi@couthit.com Signed-off-by: Kevin Hilman (TI) <khilman@baylibre.com>
This commit is contained in:
parent
d8f1b27c9f
commit
381819c384
|
|
@ -170,6 +170,17 @@ pruss2_iepclk_mux: iepclk-mux@30 {
|
|||
};
|
||||
};
|
||||
|
||||
pruss2_iep: iep@2e000 {
|
||||
compatible = "ti,am5728-icss-iep";
|
||||
reg = <0x2e000 0x31c>;
|
||||
clocks = <&pruss2_iepclk_mux>;
|
||||
};
|
||||
|
||||
pruss2_ecap: ecap@30000 {
|
||||
compatible = "ti,pruss-ecap";
|
||||
reg = <0x30000 0x60>;
|
||||
};
|
||||
|
||||
pruss2_mii_rt: mii-rt@32000 {
|
||||
compatible = "ti,pruss-mii", "syscon";
|
||||
reg = <0x32000 0x58>;
|
||||
|
|
|
|||
|
|
@ -214,5 +214,11 @@ &pruss1_mdio {
|
|||
};
|
||||
|
||||
&pruss2_mdio {
|
||||
status = "disabled";
|
||||
reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <2>; /* PHY datasheet states 1uS min */
|
||||
};
|
||||
|
||||
&pruss2_eth {
|
||||
ti,pruss-gp-mux-sel = <4>, /* MII2, needed for PRUSS1_MII0 */
|
||||
<4>; /* MII2, needed for PRUSS1_MII1 */
|
||||
};
|
||||
|
|
|
|||
|
|
@ -28,10 +28,12 @@ &mmc2 {
|
|||
pinctrl-2 = <&mmc2_pins_ddr_rev20>;
|
||||
};
|
||||
|
||||
&pruss1_mdio {
|
||||
status = "disabled";
|
||||
&pruss2_eth0_phy {
|
||||
reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <2>; /* PHY datasheet states 1uS min */
|
||||
};
|
||||
|
||||
&pruss2_mdio {
|
||||
status = "disabled";
|
||||
&pruss2_eth1_phy {
|
||||
reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <2>; /* PHY datasheet states 1uS min */
|
||||
};
|
||||
|
|
|
|||
|
|
@ -40,10 +40,12 @@ &emif1 {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&pruss1_mdio {
|
||||
status = "disabled";
|
||||
&pruss2_eth0_phy {
|
||||
reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <2>; /* PHY datasheet states 1uS min */
|
||||
};
|
||||
|
||||
&pruss2_mdio {
|
||||
status = "disabled";
|
||||
&pruss2_eth1_phy {
|
||||
reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <2>; /* PHY datasheet states 1uS min */
|
||||
};
|
||||
|
|
|
|||
|
|
@ -155,6 +155,52 @@ src_clk_x1: src_clk_x1 {
|
|||
compatible = "fixed-clock";
|
||||
clock-frequency = <20000000>;
|
||||
};
|
||||
|
||||
/* 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];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&pruss2_iep {
|
||||
interrupt-parent = <&pruss2_intc>;
|
||||
interrupts = <7 7 8>;
|
||||
interrupt-names = "iep_cap_cmp";
|
||||
};
|
||||
|
||||
&dra7_pmx_core {
|
||||
|
|
@ -606,3 +652,18 @@ dpi_out: endpoint {
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pruss2_mdio {
|
||||
status = "okay";
|
||||
pruss2_eth0_phy: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
|
||||
pruss2_eth1_phy: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user