mbox series

[net-next,v10,0/5] RGMII Internal delay common property

Message ID 20200623134836.21981-1-dmurphy@ti.com
Headers show
Series RGMII Internal delay common property | expand


Dan Murphy June 23, 2020, 1:48 p.m. UTC

The RGMII internal delay is a common setting found in most RGMII capable PHY
devices.  It was found that many vendor specific device tree properties exist
to do the same function. This creates a common property to be used for PHY's
that have internal delays for the Rx and Tx paths.

If the internal delay is tunable then the caller needs to pass the internal
delay array and the return will be the index in the array that was found in
the firmware node.

If the internal delay is fixed then the caller only needs to indicate which
delay to return.  There is no need for a fixed delay to add device properties
since the value is not configurable. Per the ethernet-controller.yaml the
interface type indicates that the PHY should provide the delay.

This series contains examples of both a configurable delay and a fixed delay.

Dan Murphy (5):
  dt-bindings: net: Add tx and rx internal delays
  net: phy: Add a helper to return the index for of the internal delay
  dt-bindings: net: Add RGMII internal delay for DP83869
  net: dp83869: Add RGMII internal delay configuration
  net: phy: DP83822: Add setting the fixed internal delay

 .../devicetree/bindings/net/ethernet-phy.yaml |  12 +++
 .../devicetree/bindings/net/ti,dp83869.yaml   |  16 ++-
 drivers/net/phy/dp83822.c                     |  79 ++++++++++++--
 drivers/net/phy/dp83869.c                     |  53 +++++++++-
 drivers/net/phy/phy_device.c                  | 100 ++++++++++++++++++
 include/linux/phy.h                           |   4 +
 6 files changed, 250 insertions(+), 14 deletions(-)


David Miller June 23, 2020, 10:02 p.m. UTC | #1
From: Dan Murphy <dmurphy@ti.com>
Date: Tue, 23 Jun 2020 08:48:33 -0500

> diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
> index 29ef4456ac25..96f242eed058 100644
> --- a/drivers/net/phy/phy_device.c
> +++ b/drivers/net/phy/phy_device.c
> +static inline int phy_get_int_delay_property(struct device *dev,
> +					     const char *name)

Please do not use inline in foo.c files, thank you.