[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <180076068.145887.1768567659299.JavaMail.zimbra@couthit.local>
Date: Fri, 16 Jan 2026 18:17:39 +0530 (IST)
From: Parvathi Pudi <parvathi@...thit.com>
To: Andrew Davis <afd@...com>
Cc: nm <nm@...com>, Vignesh Raghavendra <vigneshr@...com>,
Kevin Hilman <khilman@...libre.com>, rogerq <rogerq@...nel.org>,
tony <tony@...mide.com>, robh <robh@...nel.org>,
krzk+dt <krzk+dt@...nel.org>, conor+dt <conor+dt@...nel.org>,
richardcochran <richardcochran@...il.com>,
aaro koskinen <aaro.koskinen@....fi>, andreas <andreas@...nade.info>,
Andrew Lunn <andrew@...n.ch>,
linux-omap <linux-omap@...r.kernel.org>,
devicetree <devicetree@...r.kernel.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
netdev <netdev@...r.kernel.org>, danishanwar <danishanwar@...com>,
pratheesh <pratheesh@...com>, j-rameshbabu <j-rameshbabu@...com>,
praneeth <praneeth@...com>, srk <srk@...com>, rogerq <rogerq@...com>,
krishna <krishna@...thit.com>, mohan <mohan@...thit.com>,
pmohan <pmohan@...thit.com>, basharath <basharath@...thit.com>,
Murali Karicheri <m-karicheri2@...com>,
parvathi <parvathi@...thit.com>
Subject: Re: [PATCH v4 2/2] arm: dts: ti: Adds support for AM335x and AM437x
Hi,
> Hi,
>
>> On 1/5/26 10:21 AM, Parvathi Pudi wrote:
>>> From: Roger Quadros <rogerq@...com>
>>>
>>> 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.
>>>
>>> The TI Sitara AM335x ICE-V2 consists of single PRU-ICSS instance,
>>> This patch adds the new device tree overlay file in-order to enable
>>> PRU-ICSS instance, along with makefile changes.
>>>
>>> The TI Sitara AM437x series of devices consists of 2 PRU-ICSS instances
>>> (PRU-ICSS0 and PRU-ICSS1). This patch adds the device tree nodes for the
>>> PRU-ICSS1 instance to support DUAL-MAC mode of operation. Support for
>>> Ethernet over PRU is available only for ICSS1 instance.
>>>
>>> am33xx-l4.dtsi, am4372.dtsi - Adds IEP and eCAP peripheral as child nodes
>>> of the PRUSS subsystem node.
>>>
>>> am335x-icev2-prueth.dtso, am437x-idk-evm.dts - Adds PRU-ICSS
>>> 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,
>>>
>>> GPIO configuration, boot strapping along with delay configuration for
>>> individual PRU Ethernet port and other required nodes.
>>>
>>> Signed-off-by: Roger Quadros <rogerq@...com>
>>> Signed-off-by: Andrew F. Davis <afd@...com>
>>> Signed-off-by: Murali Karicheri <m-karicheri2@...com>
>>> Signed-off-by: Basharath Hussain Khaja <basharath@...thit.com>
>>> Signed-off-by: Parvathi Pudi <parvathi@...thit.com>
>>> ---
>>> arch/arm/boot/dts/ti/omap/Makefile | 5 +
>>> .../ti/omap/am335x-icev2-prueth-overlay.dtso | 190 ++++++++++++++++++
>>> arch/arm/boot/dts/ti/omap/am33xx-l4.dtsi | 11 +
>>> arch/arm/boot/dts/ti/omap/am4372.dtsi | 11 +
>>> arch/arm/boot/dts/ti/omap/am437x-idk-evm.dts | 137 ++++++++++++-
>>> 5 files changed, 353 insertions(+), 1 deletion(-)
>>> create mode 100644 arch/arm/boot/dts/ti/omap/am335x-icev2-prueth-overlay.dtso
>>>
>>> diff --git a/arch/arm/boot/dts/ti/omap/Makefile
>>> b/arch/arm/boot/dts/ti/omap/Makefile
>>> index 14e500846875..c68948035eca 100644
>>> --- a/arch/arm/boot/dts/ti/omap/Makefile
>>> +++ b/arch/arm/boot/dts/ti/omap/Makefile
>>> @@ -82,6 +82,10 @@ dtb-$(CONFIG_ARCH_OMAP4) += \
>>> omap4-var-stk-om44.dtb \
>>> omap4-xyboard-mz609.dtb \
>>> omap4-xyboard-mz617.dtb
>>> +
>>> +am335x-icev2-prueth-dtbs := am335x-icev2.dtb \
>>> + am335x-icev2-prueth-overlay.dtbo
>>> +
>>> dtb-$(CONFIG_SOC_AM33XX) += \
>>> am335x-baltos-ir2110.dtb \
>>> am335x-baltos-ir3220.dtb \
>>> @@ -100,6 +104,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
>>> am335x-evmsk.dtb \
>>> am335x-guardian.dtb \
>>> am335x-icev2.dtb \
>>> + am335x-icev2-prueth.dtb \
>>> am335x-lxm.dtb \
>>> am335x-mba335x.dtb \
>>> am335x-moxa-uc-2101.dtb \
>>> diff --git a/arch/arm/boot/dts/ti/omap/am335x-icev2-prueth-overlay.dtso
>>> b/arch/arm/boot/dts/ti/omap/am335x-icev2-prueth-overlay.dtso
>>> new file mode 100644
>>> index 000000000000..abde5119875f
>>> --- /dev/null
>>> +++ b/arch/arm/boot/dts/ti/omap/am335x-icev2-prueth-overlay.dtso
>>> @@ -0,0 +1,190 @@
>>> +// SPDX-License-Identifier: GPL-2.0
>>> +/*
>>> + * DT overlay for IDK AM335x
>>> + *
>>> + * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
>>> + */
>>> +
>>> +/*
>>> + * AM335x ICE V2 board
>>> + * http://www.ti.com/tool/tmdsice3359
>>> + */
>>> +
>>> +/dts-v1/;
>>> +/plugin/;
>>> +
>>> +#include <dt-bindings/bus/ti-sysc.h>
>>> +#include <dt-bindings/gpio/gpio.h>
>>> +#include <dt-bindings/pinctrl/am33xx.h>
>>> +#include <dt-bindings/clock/am3.h>
>>> +
>>> +&{/} {
>>> + /* 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];
>>> + };
>>> + };
>>> + };
>>> +};
>>> +
>>> +&am33xx_pinmux {
>>> + /* MDIO node for PRU-ICSS */
>>> + pruss_mdio_default: pruss_mdio_default {
>>> + pinctrl-single,pins = <
>>> + /* gpmc_clk.pr1_mdio_mdclk */
>>> + AM33XX_PADCONF(0x88c, PIN_OUTPUT, MUX_MODE5)
>>> + /* gpmc_csn3.pr1_mdio_data */
>>> + AM33XX_PADCONF(0x888, PIN_INPUT, MUX_MODE5)
>>
>> Have you regenerated this list lately? The pinmux tool usually puts the
>> comment after the PADCONF entry. It also now also shows the pin number
>> in the comment which is nice:
>>
>> AM33XX_IOPAD(0x88c, PIN_OUTPUT, MUX_MODE5) /* (V12) gpmc_clk.pr1_mdio_mdclk */
>> AM33XX_IOPAD(0x888, PIN_INPUT, MUX_MODE5) /* (T13) gpmc_csn3.pr1_mdio_data */
>>
>> I'd recommend regenerating these nodes to match the latest pinmux tool output.
>>
>
> Sure, we will check and regenerate these nodes using the pinmux tool and
> update accordingly.
>
>>> + /* gpmc_ben0_cle.gpio2_5 */
>>> + AM33XX_PADCONF(0x89c, PIN_INPUT_PULLUP, MUX_MODE7)
>>> + /* disable CPSW MDIO */
>>
>> Is this needed? If you disable the CPSW MDIO node the pinmux should be unset,
>> so not sure why you are muxing these to GPIO pins.
>>
>
> We will review and get back with more details on this.
>
On the AM335x board, the CPSW MDIO and PRUSS MDIO signals are routed to the same physical
pins (as shown in the schematic, see page 10 “MII_MUX” in tmdxice3359_sch_3h0013_v2_1a.pdf
from https://www.ti.com/lit/zip/TIDR336 ). Because of this shared routing, the pinmux
configuration applied by U-Boot for CPSW MDIO remains active even if the CPSW MDIO node is
later disabled in Linux, and Linux does not automatically revert the pins to their reset state.
To prevent signal contention and ensure correct PRUSS MDIO operation, we explicitly re-mux
the CPSW MDIO pins to GPIO in the PRUSS pinctrl. Without this explicit reconfiguration, we
observed PHY connection issues during startup.
Thanks and Regards,
Parvathi.
Powered by blists - more mailing lists