mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
0da4c3d393
Add a Lynx PCS module which exposes the necessary operations to drive the PCS using phylink. The majority of the code is extracted from the Felix DSA driver, which will be also modified in a later patch, and exposed as a separate module for code reusability purposes. As such, this aims at feature and bug parity with the existing Felix DSA driver, and thus USXGMII, SGMII, QSGMII and 2500Base-X (only w/o in-band AN) are supported by the Lynx PCS module since these were also supported by Felix. The module can only be enabled by the drivers in need and not user selectable. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
21 lines
425 B
C
21 lines
425 B
C
/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
|
|
/* Copyright 2020 NXP
|
|
* Lynx PCS helpers
|
|
*/
|
|
|
|
#ifndef __LINUX_PCS_LYNX_H
|
|
#define __LINUX_PCS_LYNX_H
|
|
|
|
#include <linux/mdio.h>
|
|
#include <linux/phylink.h>
|
|
|
|
struct lynx_pcs {
|
|
struct phylink_pcs pcs;
|
|
struct mdio_device *mdio;
|
|
};
|
|
|
|
struct lynx_pcs *lynx_pcs_create(struct mdio_device *mdio);
|
|
|
|
void lynx_pcs_destroy(struct lynx_pcs *pcs);
|
|
|
|
#endif /* __LINUX_PCS_LYNX_H */
|