From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 1/5] spi: cadence_qspi: Ensure spi_calibration is run when sclk change
Date: Thu, 24 Sep 2015 09:16:29 +0200 [thread overview]
Message-ID: <201509240916.29424.marex@denx.de> (raw)
In-Reply-To: <1442978511.2244.14.camel@clsee-VirtualBox>
On Wednesday, September 23, 2015 at 05:21:51 AM, Chin Liang See wrote:
> Hi,
Hi!
> On Wed, 2015-09-23 at 11:13 +0800, Chin Liang See wrote:
> > From: marex at denx.de
> > Sent: Thursday, September 10, 2015 7:52 PM
> > To: Chin Liang See
> > Cc: ZY - u-boot; Dinh Nguyen; Dinh Nguyen; ZY - sr; Vikas Manocha;
> > Jagannadh Teki; ZY - pavel Subject: Re: [PATCH v3 1/5] spi:
> > cadence_qspi: Ensure spi_calibration is run when sclk change
> >
> > On Thursday, September 10, 2015 at 07:01:12 AM, Chin Liang See wrote:
> > > Ensuring spi_calibration is run when there is a change of sclk
> > > frequency. This will ensure the qspi flash access works for high
> > > sclk frequency
> > >
> > > Signed-off-by: Chin Liang See <clsee@altera.com>
> > > Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> > > Cc: Dinh Nguyen <dinh.linux@gmail.com>
> > > Cc: Marek Vasut <marex@denx.de>
> > > Cc: Stefan Roese <sr@denx.de>
> > > Cc: Vikas Manocha <vikas.manocha@st.com>
> > > Cc: Jagannadh Teki <jteki@openedev.com>
> > > Cc: Pavel Machek <pavel@denx.de>
> > > Acked-by: Marek Vasut <marex@denx.de>
> > > Reviewed-by: Jagan Teki <jteki@openedev.com>
> > > ---
> > > Changes for v2
> > > - remove frequency set before calibration
> > > - introducing previous_hz to store requested frequency
> > > - prevent calibration run when request same frequency
> > > ---
> > >
> > > drivers/spi/cadence_qspi.c | 20 ++++++++++++--------
> > > drivers/spi/cadence_qspi.h | 1 +
> > > 2 files changed, 13 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
> > > index 34a0f46..0e7450c 100644
> > > --- a/drivers/spi/cadence_qspi.c
> > > +++ b/drivers/spi/cadence_qspi.c
> > > @@ -37,15 +37,18 @@ static int cadence_spi_write_speed(struct udevice
> > > *bus, uint hz) }
> > >
> > > /* Calibration sequence to determine the read data capture delay
> > > register
> > >
> > > */ -static int spi_calibration(struct udevice *bus)
> > > +static int spi_calibration(struct udevice *bus, uint hz)
> > >
> > > {
> > >
> > > - struct cadence_spi_platdata *plat = bus->platdata;
> > >
> > > struct cadence_spi_priv *priv = dev_get_priv(bus);
> > > void *base = priv->regbase;
> > > u8 opcode_rdid = 0x9F;
> > > unsigned int idcode = 0, temp = 0;
> > > int err = 0, i, range_lo = -1, range_hi = -1;
> > >
> > > + /* if calibrated frequency same as reqeusted, skip it */
> > > + if (priv->qspi_calibrated_hz == hz)
> > > + return 0;
> >
> > Do you need this check ? I think you're doing the same check in
> > cadence_spi_set_speed() down below here, so this is redundant.
>
> Oh this is checked against calibrated value. It works together with the
> check of previous_hz. This is to cater the incident where the calibrated
> frequency = max frequency when requested frequency exceed the max
> frequency. Some examples as below
>
> Request 100MHz, Max 50MHz, run, calibrated 50MHz, previous 100MHz
> Request 100MHz, Max 50MHz, skip, calibrated 50MHz, previous 100MHz
> Request 90MHz, Max 50MHz, skip, calibrated 50MHz, previous 90MHz
>
> The check here will skip calibration for third incident.
> Hope that explains.
Ah, I see, that makes sense now, thanks!
Wouldn't it thus make more sense to place this check into the
cadence_spi_set_speed() function instead , so that the spi_calibrate()
function only really does calibration , no matter what ?
next prev parent reply other threads:[~2015-09-24 7:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-10 5:01 [U-Boot] [PATCH v3 1/5] spi: cadence_qspi: Ensure spi_calibration is run when sclk change Chin Liang See
2015-09-10 11:52 ` Marek Vasut
[not found] ` <0016CF5815A1B142902817051AF62EB305F787ED@PG-ITEXCH02.altera.priv.altera.com>
2015-09-23 3:21 ` Chin Liang See
2015-09-24 7:16 ` Marek Vasut [this message]
2015-09-30 0:29 ` Chin Liang See
2015-09-10 20:48 ` Pavel Machek
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=201509240916.29424.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.