1. 28 Aug, 2023 38 commits
  2. 27 Aug, 2023 2 commits
    • David S. Miller's avatar
      Merge branch 'iep-drver-timestamping-support' · aa05346d
      David S. Miller authored
      MD Danish Anwar says:
      
      ====================
      Introduce IEP driver and packet timestamping support
      
      This series introduces Industrial Ethernet Peripheral (IEP) driver to
      support timestamping of ethernet packets and thus support PTP and PPS
      for PRU ICSSG ethernet ports.
      
      This series also adds 10M full duplex support for ICSSG ethernet driver.
      
      There are two IEP instances. IEP0 is used for packet timestamping while IEP1
      is used for 10M full duplex support.
      
      This is v7 of the series [v1]. It addresses comments made on [v6].
      This series is based on linux-next(#next-20230823).
      
      Changes from v6 to v7:
      *) Dropped blank line in example section of patch 1.
      *) Patch 1 previously had three examples, removed two examples and kept only
         one example as asked by Krzysztof.
      *) Added Jacob Keller's RB tag in patch 5.
      *) Dropped Roger's RB tags from the patches that he has authored (Patch 3 and 4)
      
      Changes from v5 to v6:
      *) Added description of IEP in commit messages of patch 2 as asked by Rob.
      *) Described the items constraints properly for iep property in patch 2 as
         asked by Rob.
      *) Added Roger and Simon's RB tags.
      
      Changes from v4 to v5:
      *) Added comments on why we are using readl / writel instead of regmap_read()
         / write() in icss_iep_gettime() / settime() APIs as asked by Roger.
      *) Added Conor's RB tag in patch 1 and 2.
      
      Change from v3 to v4:
      *) Changed compatible in iep dt bindings. Now each SoC has their own compatible
         in the binding with "ti,am654-icss-iep" as a fallback as asked by Conor.
      *) Addressed Andew's comments and removed helper APIs icss_iep_readl() /
         writel(). Now the settime/gettime APIs directly use readl() / writel().
      *) Moved selecting TI_ICSS_IEP in Kconfig from patch 3 to patch 4.
      *) Removed forward declaration of icss_iep_of_match in patch 3.
      *) Replaced use of of_device_get_match_data() to device_get_match_data() in
         patch 3.
      *) Removed of_match_ptr() from patch 3 as it is not needed.
      
      Changes from v2 to v3:
      *) Addressed Roger's comment and moved IEP1 related changes in patch 5.
      *) Addressed Roger's comment and moved icss_iep.c / .h changes from patch 4
         to patch 3.
      *) Added support for multiple timestamping in patch 4 as asked by Roger.
      *) Addressed Andrew's comment and added comment in case SPEED_10 in
         icssg_config_ipg() API.
      *) Kept compatible as "ti,am654-icss-iep" for all TI K3 SoCs
      
      Changes from v1 to v2:
      *) Addressed Simon's comment to fix reverse xmas tree declaration. Some APIs
         in patch 3 and 4 were not following reverse xmas tree variable declaration.
         Fixed it in this version.
      *) Addressed Conor's comments and removed unsupported SoCs from compatible
         comment in patch 1.
      *) Addded patch 2 which was not part of v1. Patch 2, adds IEP node to dt
         bindings for ICSSG.
      
      [v1] https://lore.kernel.org/all/20230803110153.3309577-1-danishanwar@ti.com/
      [v2] https://lore.kernel.org/all/20230807110048.2611456-1-danishanwar@ti.com/
      [v3] https://lore.kernel.org/all/20230809114906.21866-1-danishanwar@ti.com/
      [v4] https://lore.kernel.org/all/20230814100847.3531480-1-danishanwar@ti.com/
      [v5] https://lore.kernel.org/all/20230817114527.1585631-1-danishanwar@ti.com/
      [v6] https://lore.kernel.org/all/20230823113254.292603-1-danishanwar@ti.com/
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aa05346d
    • Grygorii Strashko's avatar
      net: ti: icssg-prueth: am65x SR2.0 add 10M full duplex support · 443a2367
      Grygorii Strashko authored
      For AM65x SR2.0 it's required to enable IEP1 in raw 64bit mode which is
      used by PRU FW to monitor the link and apply w/a for 10M link issue.
      Note. No public errata available yet.
      
      Without this w/a the PRU FW will stuck if link state changes under TX
      traffic pressure.
      
      Hence, add support for 10M full duplex for AM65x SR2.0:
       - add new IEP API to enable IEP, but without PTP support
       - add pdata quirk_10m_link_issue to enable 10M link issue w/a.
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
      Reviewed-by: default avatarRoger Quadros <rogerq@kernel.org>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Signed-off-by: default avatarMD Danish Anwar <danishanwar@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      443a2367