public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [patch] net: micrel: configure skew values for
Date: Sun, 16 Nov 2014 00:42:23 +0100	[thread overview]
Message-ID: <201411160042.23232.marex@denx.de> (raw)
In-Reply-To: <20141025112752.GA19599@amd>

On Saturday, October 25, 2014 at 01:27:52 PM, Pavel Machek wrote:
> This adds skew timing configuration for micrel ksz9021
> configuration. With this patch, I can add
> 
> #define CONFIG_KSZ9021_CLK_SKEW_ENV    "micrel-ksz9021-clk-skew"
> #define CONFIG_KSZ9021_CLK_SKEW_VAL    0xf0f0
> #define CONFIG_KSZ9021_DATA_SKEW_ENV   "micrel-ksz9021-data-skew"
> #define CONFIG_KSZ9021_DATA_SKEW_VAL   0x0
> 
> to my board's configuration file, and get working networking in
> u-boot.
> 
> Signed-off-by: Pavel Machek <pavel@denx.de>
> 
> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
> index 507b9a3..7e4dbd6 100644
> --- a/drivers/net/phy/micrel.c
> +++ b/drivers/net/phy/micrel.c
> @@ -117,12 +119,31 @@ static int ksz9021_config(struct phy_device *phydev)
>  {
>  	unsigned ctrl1000 = 0;
>  	const unsigned master = CTRL1000_PREFER_MASTER |
> -			CTRL1000_CONFIG_MASTER | CTRL1000_MANUAL_CONFIG;
> +				CTRL1000_CONFIG_MASTER | CTRL1000_MANUAL_CONFIG;
>  	unsigned features = phydev->drv->features;
> 
> +	/* min rx data delay */
> +	if (ksz9021_phy_extended_write(phydev,
> +				       MII_KSZ9021_EXT_RGMII_RX_DATA_SKEW,
> +				       
getenv_ulong(CONFIG_KSZ9021_DATA_SKEW_ENV, 16,
> +						    
CONFIG_KSZ9021_DATA_SKEW_VAL)) < 0)
> +		return -1;

You should probably get rid of the getenv altogether and just let the board
define a static value in it's configuration (for now). In the long run, this
configuration value should be passed via the platform data or DT.

The new CONFIG_* macros should be documented, otherwise the sheer amount of
CONFIG_* in U-Boot will become impossible to manage. Speaking of CONFIG_*,
given that there is no default value for any of the new CONFIG_* macros, the
patch will break all boards using the Micrel PHY which do not define those
macros explicitly.

On a final note, not all boards using the Micrel PHY need to override those
registers, so this must also be solved in some way such that the behavior
of this driver doesn't change for the boards which do not implement this
override.

I am also curious if there will be more registers which would need such explicit 
override configuration option in the future or if these are all of them. I guess
we cannot tell right now.

[...]

Best regards,
Marek Vasut

      parent reply	other threads:[~2014-11-15 23:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-25 11:27 [patch] net: micrel: configure skew values for Pavel Machek
2014-10-25 14:29 ` [U-Boot] " Marek Vasut
2014-11-15 23:42 ` Marek Vasut [this message]

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=201411160042.23232.marex@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox