mirror-linux/drivers/net
Arkadiusz Kubalewski ad1df4f2d5 ice: dpll: Support E825-C SyncE and dynamic pin discovery
Implement SyncE support for the E825-C Ethernet controller using the
DPLL subsystem. Unlike E810, the E825-C architecture relies on platform
firmware (ACPI) to describe connections between the NIC's recovered clock
outputs and external DPLL inputs.

Implement the following mechanisms to support this architecture:

1. Discovery Mechanism: The driver parses the 'dpll-pins' and 'dpll-pin names'
   firmware properties to identify the external DPLL pins (parents)
   corresponding to its RCLK outputs ("rclk0", "rclk1"). It uses
   fwnode_dpll_pin_find() to locate these parent pins in the DPLL core.

2. Asynchronous Registration: Since the platform DPLL driver (e.g.
   zl3073x) may probe independently of the network driver, utilize
   the DPLL notifier chain The driver listens for DPLL_PIN_CREATED
   events to detect when the parent MUX pins become available, then
   registers its own Recovered Clock (RCLK) pins as children of those
   parents.

3. Hardware Configuration: Implement the specific register access logic
   for E825-C CGU (Clock Generation Unit) registers (R10, R11). This
   includes configuring the bypass MUXes and clock dividers required to
   drive SyncE signals.

4. Split Initialization: Refactor `ice_dpll_init()` to separate the
   static initialization path of E810 from the dynamic, firmware-driven
   path required for E825-C.

Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Co-developed-by: Ivan Vecera <ivecera@redhat.com>
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Co-developed-by: Grzegorz Nitka <grzegorz.nitka@intel.com>
Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com>
Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Link: https://patch.msgid.link/20260203174002.705176-10-ivecera@redhat.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-02-05 15:57:46 +01:00
..
arcnet net: remove unnecessary module_init/exit functions 2026-02-02 17:25:23 -08:00
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-01-29 17:28:54 -08:00
caif
can can: gw: use can_gw_hops instead of sk_buff::csum_start 2026-02-05 11:58:40 +01:00
dsa net: dsa: yt921x: Add DCB/QoS support 2026-02-03 15:09:31 +01:00
ethernet ice: dpll: Support E825-C SyncE and dynamic pin discovery 2026-02-05 15:57:46 +01:00
fddi
fjes
hamradio net: remove unnecessary module_init/exit functions 2026-02-02 17:25:23 -08:00
hyperv
ieee802154
ipa
ipvlan ipvlan: remove ipvlan_ht_addr_lookup() 2026-01-25 14:35:19 -08:00
mctp mctp i2c: initialise event handler read bytes 2026-01-17 15:14:18 -08:00
mdio
netdevsim netdevsim: use u64_stats_t with u64_stats_sync properly 2026-01-26 19:53:36 -08:00
ovpn ovpn: Replace use of system_wq with system_percpu_wq 2026-02-04 20:41:38 -08:00
pcs Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-01-22 20:14:36 -08:00
phy net: phy: remove modalias-based mdio bus matching 2026-02-03 12:46:55 +01:00
plip
ppp ppp: enable TX scatter-gather 2026-02-05 10:06:27 +01:00
pse-pd
slip
team
thunderbolt net: thunderbolt: Allow reading link settings 2026-01-19 12:09:58 -08:00
usb net: usb: sr9700: remove code to drive nonexistent multicast filter 2026-02-03 19:42:15 -08:00
vmxnet3
vxlan vxlan: vnifilter: fix memcpy with u64_stats 2026-01-25 13:14:11 -08:00
wan
wireguard
wireless Some more changes, including pulls from drivers: 2026-02-04 20:31:05 -08:00
wwan net: wwan: mhi_wwan_ctrl: Add NMEA channel support 2026-01-30 18:27:00 -08:00
xen-netback net/xen-netback: Fix mispelling of "Software" as "Softare" 2026-01-20 19:00:46 -08:00
Kconfig net: remove HIPPI support and RoadRunner HIPPI driver 2026-01-20 19:12:06 -08:00
LICENSE.SRC
Makefile net: remove HIPPI support and RoadRunner HIPPI driver 2026-01-20 19:12:06 -08:00
Space.c
amt.c
bareudp.c
dummy.c
eql.c
geneve.c geneve: use GRO hint option in the RX path 2026-01-23 11:31:14 -08:00
gtp.c
ifb.c net: ifb: use u64_stats_t with u64_stats_sync properly 2026-01-22 13:00:36 +01:00
loopback.c
macsec.c macsec: fix memcpy with u64_stats 2026-01-25 13:14:11 -08:00
macvlan.c
macvtap.c
mdio.c
mhi_net.c
mii.c
net_failover.c net: remove unnecessary module_init/exit functions 2026-02-02 17:25:23 -08:00
netconsole.c netconsole: resume previously deactivated target 2026-01-21 19:09:11 -08:00
netkit.c Revert "Merge branch 'netkit-support-for-io_uring-zero-copy-and-af_xdp'" 2026-01-20 18:06:01 -08:00
nlmon.c
ntb_netdev.c
pfcp.c
rionet.c
sungem_phy.c
tap.c
tun.c
tun_vnet.h
veth.c veth: fix data race in veth_get_ethtool_stats 2026-01-17 16:22:18 -08:00
virtio_net.c
vrf.c
vsockmon.c
xen-netfront.c xen/netfront: Use u64_stats_t with u64_stats_sync properly 2026-01-22 13:00:49 +01:00