All of lore.kernel.org
 help / color / mirror / Atom feed
From: Parvathi Pudi <parvathi@couthit.com>
To: robh <robh@kernel.org>
Cc: nm <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>,
	tony <tony@atomide.com>, edumazet <edumazet@google.com>,
	glaroque <glaroque@baylibre.com>, pmohan <pmohan@couthit.com>,
	diogo ivo <diogo.ivo@siemens.com>,
	javier carrasco cruz <javier.carrasco.cruz@gmail.com>,
	praneeth <praneeth@ti.com>, m-karicheri2 <m-karicheri2@ti.com>,
	basharath <basharath@couthit.com>, kuba <kuba@kernel.org>,
	pabeni <pabeni@redhat.com>,
	richardcochran <richardcochran@gmail.com>,
	devicetree <devicetree@vger.kernel.org>,
	conor+dt <conor+dt@kernel.org>, schnelle <schnelle@linux.ibm.com>,
	mohan <mohan@couthit.com>, s hauer <s.hauer@pengutronix.de>,
	Prajith Jayarajan <prajith@ti.com>, rogerq <rogerq@kernel.org>,
	jacob e keller <jacob.e.keller@intel.com>,
	ssantosh <ssantosh@kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	rogerq <rogerq@ti.com>, srk <srk@ti.com>,
	pratheesh <pratheesh@ti.com>, m-malladi <m-malladi@ti.com>,
	netdev <netdev@vger.kernel.org>, rdunlap <rdunlap@infradead.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	danishanwar <danishanwar@ti.com>, afd <afd@ti.com>,
	andrew+netdev <andrew+netdev@lunn.ch>,
	parvathi <parvathi@couthit.com>, horms <horms@kernel.org>,
	krishna <krishna@couthit.com>, krzk+dt <krzk+dt@kernel.org>,
	davem <davem@davemloft.net>
Subject: Re: [PATCH net-next v6 01/11] dt-bindings: net: ti: Adds DUAL-EMAC mode support on PRU-ICSS2 for AM57xx, AM43xx and AM33xx SOCs
Date: Tue, 29 Apr 2025 15:41:22 +0530 (IST)	[thread overview]
Message-ID: <794684867.1172961.1745921482649.JavaMail.zimbra@couthit.local> (raw)
In-Reply-To: <20250425211917.GA3108205-robh@kernel.org>

Hi,

> On Wed, Apr 23, 2025 at 11:36:57AM +0530, Parvathi Pudi wrote:
>> Documentation update for the newly added "pruss2_eth" device tree
>> node and its dependencies along with compatibility for PRU-ICSS
>> Industrial Ethernet Peripheral (IEP), PRU-ICSS Enhanced Capture
>> (eCAP) peripheral and using YAML binding document for AM57xx SoCs.
>> 
>> Co-developed-by: Basharath Hussain Khaja <basharath@couthit.com>
>> Signed-off-by: Basharath Hussain Khaja <basharath@couthit.com>
>> Signed-off-by: Parvathi Pudi <parvathi@couthit.com>
>> ---
>>  .../devicetree/bindings/net/ti,icss-iep.yaml  |  10 +-
>>  .../bindings/net/ti,icssm-prueth.yaml         | 233 ++++++++++++++++++
>>  .../bindings/net/ti,pruss-ecap.yaml           |  32 +++
>>  .../devicetree/bindings/soc/ti/ti,pruss.yaml  |   9 +
>>  4 files changed, 281 insertions(+), 3 deletions(-)
>>  create mode 100644 Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
>>  create mode 100644 Documentation/devicetree/bindings/net/ti,pruss-ecap.yaml
>> 
>> diff --git a/Documentation/devicetree/bindings/net/ti,icss-iep.yaml
>> b/Documentation/devicetree/bindings/net/ti,icss-iep.yaml
>> index e36e3a622904..ea2659d90a52 100644
>> --- a/Documentation/devicetree/bindings/net/ti,icss-iep.yaml
>> +++ b/Documentation/devicetree/bindings/net/ti,icss-iep.yaml
>> @@ -8,6 +8,8 @@ title: Texas Instruments ICSS Industrial Ethernet Peripheral
>> (IEP) module
>>  
>>  maintainers:
>>    - Md Danish Anwar <danishanwar@ti.com>
>> +  - Parvathi Pudi <parvathi@couthit.com>
>> +  - Basharath Hussain Khaja <basharath@couthit.com>
>>  
>>  properties:
>>    compatible:
>> @@ -17,9 +19,11 @@ properties:
>>                - ti,am642-icss-iep
>>                - ti,j721e-icss-iep
>>            - const: ti,am654-icss-iep
>> -
>> -      - const: ti,am654-icss-iep
>> -
>> +      - enum:
>> +          - ti,am654-icss-iep
>> +          - ti,am5728-icss-iep
>> +          - ti,am4376-icss-iep
>> +          - ti,am3356-icss-iep
>>  
>>    reg:
>>      maxItems: 1
>> diff --git a/Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
>> b/Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
>> new file mode 100644
>> index 000000000000..d42aea70eb76
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
>> @@ -0,0 +1,233 @@
>> +# 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 MII_RT module's syscon regmap
> 
> regmap is a Linuxism. Say what functionality you need from this block.
> 

Sure, we will update the documentation in the next version.

>> +
>> +  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 {
> 
> Drop unused labels.
> 

"pruss2_eth" label is the primary node of the PRU-ICSS2 and
PRUETH driver is referring to this label. A name followed by a
label is required. Do we need to rename "pruss2-eth" to any
other? if we try to remove the name, we expected to see a
syntax error.

>> +      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 {
> 
> Really need 3 examples?
> 

We included these examples to differentiate between three series
of devices (AM335x, AM437x and AM57xx) with same architecture
for PRU-ICSS but differences in number of instances, local
interrupt controller mapping, size, offset differences and etc. 

>> +      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];
>> +        };
>> +      };
>> +    };
>> diff --git a/Documentation/devicetree/bindings/net/ti,pruss-ecap.yaml
>> b/Documentation/devicetree/bindings/net/ti,pruss-ecap.yaml
>> new file mode 100644
>> index 000000000000..42f217099b2e
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/ti,pruss-ecap.yaml
>> @@ -0,0 +1,32 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/net/ti,pruss-ecap.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Texas Instruments PRU-ICSS Enhanced Capture (eCAP) event module
>> +
>> +maintainers:
>> +  - Murali Karicheri <m-karicheri2@ti.com>
>> +  - Parvathi Pudi <parvathi@couthit.com>
>> +  - Basharath Hussain Khaja <basharath@couthit.com>
>> +
>> +properties:
>> +  compatible:
>> +    const: ti,pruss-ecap
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> +  - |
>> +    pruss2_ecap: ecap@30000 {
>> +        compatible = "ti,pruss-ecap";
>> +        reg = <0x30000 0x60>;
>> +    };
>> diff --git a/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
>> b/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
>> index 927b3200e29e..594f54264a8c 100644
>> --- a/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
>> +++ b/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
>> @@ -251,6 +251,15 @@ patternProperties:
>>  
>>      type: object
>>  
>> +  ecap@[a-f0-9]+$:
>> +    description:
>> +      PRU-ICSS has a Enhanced Capture (eCAP) event module which can generate
>> +      and capture periodic timer based events which will be used for features
>> +      like RX Pacing to rise interrupt when the timer event has occurred.
>> +      Each PRU-ICSS instance has one eCAP modeule irrespective of SOCs.
>> +
>> +    type: object
> 
> This should either have a ref to ti,pruss-ecap.yaml or should just move
> reg and compatible here since it is only 2 properties.
> 

We will address this in the next version.

Thanks and Regards,
Parvathi.


WARNING: multiple messages have this Message-ID (diff)
From: Parvathi Pudi <parvathi@couthit.com>
To: robh <robh@kernel.org>
Cc: parvathi <parvathi@couthit.com>, danishanwar <danishanwar@ti.com>,
	 rogerq <rogerq@kernel.org>,
	andrew+netdev <andrew+netdev@lunn.ch>,
	 davem <davem@davemloft.net>, edumazet <edumazet@google.com>,
	 kuba <kuba@kernel.org>, pabeni <pabeni@redhat.com>,
	 krzk+dt <krzk+dt@kernel.org>, conor+dt <conor+dt@kernel.org>,
	 nm <nm@ti.com>, ssantosh <ssantosh@kernel.org>,
	 tony <tony@atomide.com>,
	richardcochran <richardcochran@gmail.com>,
	 glaroque <glaroque@baylibre.com>,
	schnelle <schnelle@linux.ibm.com>,
	 m-karicheri2 <m-karicheri2@ti.com>,
	s hauer <s.hauer@pengutronix.de>,
	 rdunlap <rdunlap@infradead.org>,
	diogo ivo <diogo.ivo@siemens.com>,
	 basharath <basharath@couthit.com>, horms <horms@kernel.org>,
	 jacob e keller <jacob.e.keller@intel.com>,
	 m-malladi <m-malladi@ti.com>,
	 javier carrasco cruz <javier.carrasco.cruz@gmail.com>,
	 afd <afd@ti.com>, s-anna <s-anna@ti.com>,
	 linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	 netdev <netdev@vger.kernel.org>,
	 devicetree <devicetree@vger.kernel.org>,
	 linux-kernel <linux-kernel@vger.kernel.org>,
	 pratheesh <pratheesh@ti.com>, Prajith Jayarajan <prajith@ti.com>,
	 Vignesh Raghavendra <vigneshr@ti.com>,
	praneeth <praneeth@ti.com>,  srk <srk@ti.com>,
	rogerq <rogerq@ti.com>,  krishna <krishna@couthit.com>,
	pmohan <pmohan@couthit.com>,  mohan <mohan@couthit.com>
Subject: Re: [PATCH net-next v6 01/11] dt-bindings: net: ti: Adds DUAL-EMAC mode support on PRU-ICSS2 for AM57xx, AM43xx and AM33xx SOCs
Date: Tue, 29 Apr 2025 15:41:22 +0530 (IST)	[thread overview]
Message-ID: <794684867.1172961.1745921482649.JavaMail.zimbra@couthit.local> (raw)
In-Reply-To: <20250425211917.GA3108205-robh@kernel.org>

Hi,

> On Wed, Apr 23, 2025 at 11:36:57AM +0530, Parvathi Pudi wrote:
>> Documentation update for the newly added "pruss2_eth" device tree
>> node and its dependencies along with compatibility for PRU-ICSS
>> Industrial Ethernet Peripheral (IEP), PRU-ICSS Enhanced Capture
>> (eCAP) peripheral and using YAML binding document for AM57xx SoCs.
>> 
>> Co-developed-by: Basharath Hussain Khaja <basharath@couthit.com>
>> Signed-off-by: Basharath Hussain Khaja <basharath@couthit.com>
>> Signed-off-by: Parvathi Pudi <parvathi@couthit.com>
>> ---
>>  .../devicetree/bindings/net/ti,icss-iep.yaml  |  10 +-
>>  .../bindings/net/ti,icssm-prueth.yaml         | 233 ++++++++++++++++++
>>  .../bindings/net/ti,pruss-ecap.yaml           |  32 +++
>>  .../devicetree/bindings/soc/ti/ti,pruss.yaml  |   9 +
>>  4 files changed, 281 insertions(+), 3 deletions(-)
>>  create mode 100644 Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
>>  create mode 100644 Documentation/devicetree/bindings/net/ti,pruss-ecap.yaml
>> 
>> diff --git a/Documentation/devicetree/bindings/net/ti,icss-iep.yaml
>> b/Documentation/devicetree/bindings/net/ti,icss-iep.yaml
>> index e36e3a622904..ea2659d90a52 100644
>> --- a/Documentation/devicetree/bindings/net/ti,icss-iep.yaml
>> +++ b/Documentation/devicetree/bindings/net/ti,icss-iep.yaml
>> @@ -8,6 +8,8 @@ title: Texas Instruments ICSS Industrial Ethernet Peripheral
>> (IEP) module
>>  
>>  maintainers:
>>    - Md Danish Anwar <danishanwar@ti.com>
>> +  - Parvathi Pudi <parvathi@couthit.com>
>> +  - Basharath Hussain Khaja <basharath@couthit.com>
>>  
>>  properties:
>>    compatible:
>> @@ -17,9 +19,11 @@ properties:
>>                - ti,am642-icss-iep
>>                - ti,j721e-icss-iep
>>            - const: ti,am654-icss-iep
>> -
>> -      - const: ti,am654-icss-iep
>> -
>> +      - enum:
>> +          - ti,am654-icss-iep
>> +          - ti,am5728-icss-iep
>> +          - ti,am4376-icss-iep
>> +          - ti,am3356-icss-iep
>>  
>>    reg:
>>      maxItems: 1
>> diff --git a/Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
>> b/Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
>> new file mode 100644
>> index 000000000000..d42aea70eb76
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
>> @@ -0,0 +1,233 @@
>> +# 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 MII_RT module's syscon regmap
> 
> regmap is a Linuxism. Say what functionality you need from this block.
> 

Sure, we will update the documentation in the next version.

>> +
>> +  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 {
> 
> Drop unused labels.
> 

"pruss2_eth" label is the primary node of the PRU-ICSS2 and
PRUETH driver is referring to this label. A name followed by a
label is required. Do we need to rename "pruss2-eth" to any
other? if we try to remove the name, we expected to see a
syntax error.

>> +      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 {
> 
> Really need 3 examples?
> 

We included these examples to differentiate between three series
of devices (AM335x, AM437x and AM57xx) with same architecture
for PRU-ICSS but differences in number of instances, local
interrupt controller mapping, size, offset differences and etc. 

>> +      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];
>> +        };
>> +      };
>> +    };
>> diff --git a/Documentation/devicetree/bindings/net/ti,pruss-ecap.yaml
>> b/Documentation/devicetree/bindings/net/ti,pruss-ecap.yaml
>> new file mode 100644
>> index 000000000000..42f217099b2e
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/ti,pruss-ecap.yaml
>> @@ -0,0 +1,32 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/net/ti,pruss-ecap.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Texas Instruments PRU-ICSS Enhanced Capture (eCAP) event module
>> +
>> +maintainers:
>> +  - Murali Karicheri <m-karicheri2@ti.com>
>> +  - Parvathi Pudi <parvathi@couthit.com>
>> +  - Basharath Hussain Khaja <basharath@couthit.com>
>> +
>> +properties:
>> +  compatible:
>> +    const: ti,pruss-ecap
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> +  - |
>> +    pruss2_ecap: ecap@30000 {
>> +        compatible = "ti,pruss-ecap";
>> +        reg = <0x30000 0x60>;
>> +    };
>> diff --git a/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
>> b/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
>> index 927b3200e29e..594f54264a8c 100644
>> --- a/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
>> +++ b/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
>> @@ -251,6 +251,15 @@ patternProperties:
>>  
>>      type: object
>>  
>> +  ecap@[a-f0-9]+$:
>> +    description:
>> +      PRU-ICSS has a Enhanced Capture (eCAP) event module which can generate
>> +      and capture periodic timer based events which will be used for features
>> +      like RX Pacing to rise interrupt when the timer event has occurred.
>> +      Each PRU-ICSS instance has one eCAP modeule irrespective of SOCs.
>> +
>> +    type: object
> 
> This should either have a ref to ti,pruss-ecap.yaml or should just move
> reg and compatible here since it is only 2 properties.
> 

We will address this in the next version.

Thanks and Regards,
Parvathi.

  reply	other threads:[~2025-04-29 10:20 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-23  6:06 [PATCH net-next v6 00/11] PRU-ICSSM Ethernet Driver Parvathi Pudi
2025-04-23  6:06 ` [PATCH net-next v6 01/11] dt-bindings: net: ti: Adds DUAL-EMAC mode support on PRU-ICSS2 for AM57xx, AM43xx and AM33xx SOCs Parvathi Pudi
2025-04-25 21:19   ` Rob Herring
2025-04-25 21:19     ` Rob Herring
2025-04-29 10:11     ` Parvathi Pudi [this message]
2025-04-29 10:11       ` Parvathi Pudi
2025-05-02 20:08   ` ALOK TIWARI
2025-04-23  6:06 ` [PATCH net-next v6 02/11] net: ti: prueth: Adds ICSSM Ethernet driver Parvathi Pudi
2025-04-23  6:06 ` [PATCH net-next v6 03/11] net: ti: prueth: Adds PRUETH HW and SW configuration Parvathi Pudi
2025-04-23  7:23 ` [PATCH net-next v6 04/11] net: ti: prueth: Adds link detection, RX and TX support Parvathi Pudi
2025-04-25  2:13   ` Jakub Kicinski
2025-04-25  2:13     ` Jakub Kicinski
2025-04-29 10:03     ` Parvathi Pudi
2025-04-29 10:03       ` Parvathi Pudi
2025-05-03  9:01   ` ALOK TIWARI
2025-04-23  7:23 ` [PATCH net-next v6 05/11] net: ti: prueth: Adds ethtool support for ICSSM PRUETH Driver Parvathi Pudi
2025-04-25  2:17   ` Jakub Kicinski
2025-04-25  2:17     ` Jakub Kicinski
2025-04-29 10:06     ` Parvathi Pudi
2025-04-29 10:06       ` Parvathi Pudi
2025-05-03  9:29   ` ALOK TIWARI
2025-04-23  7:23 ` [PATCH net-next v6 06/11] net: ti: prueth: Adds HW timestamping support for PTP using PRU-ICSS IEP module Parvathi Pudi
2025-04-25  2:16   ` Jakub Kicinski
2025-04-25  2:16     ` Jakub Kicinski
2025-04-29 10:04     ` Parvathi Pudi
2025-04-29 10:04       ` Parvathi Pudi
2025-04-23  7:23 ` [PATCH net-next v6 07/11] net: ti: prueth: Adds support for network filters for traffic control supported by PRU-ICSS Parvathi Pudi
2025-05-03  9:26   ` ALOK TIWARI
2025-05-05 13:34     ` Parvathi Pudi
2025-05-05 13:34       ` Parvathi Pudi
2025-04-23  9:06 ` [PATCH net-next v6 08/11] net: ti: prueth: Adds support for RX interrupt coalescing/pacing Parvathi Pudi
2025-04-23  9:06 ` [PATCH net-next v6 09/11] net: ti: prueth: Adds power management support for PRU-ICSS Parvathi Pudi
2025-04-23  9:06 ` [PATCH net-next v6 10/11] net: ti: prueth: Adds support for PRUETH on AM33x and AM43x SOCs Parvathi Pudi
2025-04-23  9:06 ` [PATCH net-next v6 11/11] net: ti: prueth: Adds PTP OC Support for AM335x and AM437x Parvathi Pudi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=794684867.1172961.1745921482649.JavaMail.zimbra@couthit.local \
    --to=parvathi@couthit.com \
    --cc=afd@ti.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=basharath@couthit.com \
    --cc=conor+dt@kernel.org \
    --cc=danishanwar@ti.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=diogo.ivo@siemens.com \
    --cc=edumazet@google.com \
    --cc=glaroque@baylibre.com \
    --cc=horms@kernel.org \
    --cc=jacob.e.keller@intel.com \
    --cc=javier.carrasco.cruz@gmail.com \
    --cc=krishna@couthit.com \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m-karicheri2@ti.com \
    --cc=m-malladi@ti.com \
    --cc=mohan@couthit.com \
    --cc=netdev@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=pabeni@redhat.com \
    --cc=pmohan@couthit.com \
    --cc=prajith@ti.com \
    --cc=praneeth@ti.com \
    --cc=pratheesh@ti.com \
    --cc=rdunlap@infradead.org \
    --cc=richardcochran@gmail.com \
    --cc=robh@kernel.org \
    --cc=rogerq@kernel.org \
    --cc=rogerq@ti.com \
    --cc=s.hauer@pengutronix.de \
    --cc=schnelle@linux.ibm.com \
    --cc=srk@ti.com \
    --cc=ssantosh@kernel.org \
    --cc=tony@atomide.com \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.