All of lore.kernel.org
 help / color / mirror / Atom feed
From: kishon@ti.com (Kishon Vijay Abraham I)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 7/8] phy: miphy28lp: Add SSC support for PCIE
Date: Mon, 8 Sep 2014 20:45:43 +0530	[thread overview]
Message-ID: <540DC81F.6000901@ti.com> (raw)
In-Reply-To: <1409758637-28654-8-git-send-email-gabriel.fernandez@linaro.org>



On Wednesday 03 September 2014 09:07 PM, Gabriel FERNANDEZ wrote:
> SSC is the technique of modulating the operating frequency of a signal
> slightly to spread its radiated emissions over a range of frequencies.
> This reduction in the maximum emission for a given frequency helps meet
> radiated emission requirements.
> These settings are applicable for PCIE with Internal clock.
> 
> Signed-off-by: Harsh Gupta <harsh.gupta@st.com>
> Signed-off-by: Gabriel Fernandez <gabriel.fernandez@linaro.orgm>
> ---
>  drivers/phy/phy-miphy28lp.c | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
> 
> diff --git a/drivers/phy/phy-miphy28lp.c b/drivers/phy/phy-miphy28lp.c
> index b36e737..976fdda 100644
> --- a/drivers/phy/phy-miphy28lp.c
> +++ b/drivers/phy/phy-miphy28lp.c
> @@ -679,6 +679,36 @@ static int miphy28lp_init_sata(struct miphy28lp_phy *miphy_phy)
>  	return miphy_is_ready(miphy_phy);
>  }
>  
> +static void miphy_pcie_tune_ssc(struct miphy28lp_phy *miphy_phy)
> +{
> +	u8 val;
> +
> +	/* Compensate Tx impedance to avoid out of range values */
> +	if (miphy_phy->ssc) {
> +		/*
> +		 * Enable the SSC on PLL for all banks
> +		 * SSC Modulation @ 31 KHz and 4000 ppm modulation amp
> +		 */
> +		val = readb_relaxed(miphy_phy->base + 0x0c);
> +		val |= 0x04;
> +		writeb_relaxed(val, miphy_phy->base + 0x0c);
> +		val = readb_relaxed(miphy_phy->base + 0x0a);
> +		val |= 0x10;
> +		writeb_relaxed(val, miphy_phy->base + 0x0a);

macros for these registers and values is needed. Or else it's difficult to review.
> +
> +		for (val = 0; val < 2; val++) {
> +			writeb_relaxed(val, miphy_phy->base + 0x0f);
> +			writeb_relaxed(0x69, miphy_phy->base + 0xe5);

Do these registers have to be written for every iteration?

Thanks
Kishon

WARNING: multiple messages have this Message-ID (diff)
From: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>
To: Gabriel FERNANDEZ
	<gabriel.fernandez-qxv4g6HH51o@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	Ian Campbell
	<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
	Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	Srinivas Kandagatla
	<srinivas.kandagatla-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Maxime Coquelin <maxime.coquelin-qxv4g6HH51o@public.gmane.org>,
	Patrice Chotard <patrice.chotard-qxv4g6HH51o@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	Grant Likely
	<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	kernel-F5mvAk5X5gdBDgjK7y7TUQ@public.gmane.org,
	Gabriel Fernandez
	<gabriel.fernandez-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Harsh Gupta <harsh.gupta-qxv4g6HH51o@public.gmane.org>,
	Gabriel Fernandez
	<gabriel.fernandez-QSEj5FYQhm7YdoiemnsNIQ@public.gmane.org>
Subject: Re: [PATCH v2 7/8] phy: miphy28lp: Add SSC support for PCIE
Date: Mon, 8 Sep 2014 20:45:43 +0530	[thread overview]
Message-ID: <540DC81F.6000901@ti.com> (raw)
In-Reply-To: <1409758637-28654-8-git-send-email-gabriel.fernandez-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>



On Wednesday 03 September 2014 09:07 PM, Gabriel FERNANDEZ wrote:
> SSC is the technique of modulating the operating frequency of a signal
> slightly to spread its radiated emissions over a range of frequencies.
> This reduction in the maximum emission for a given frequency helps meet
> radiated emission requirements.
> These settings are applicable for PCIE with Internal clock.
> 
> Signed-off-by: Harsh Gupta <harsh.gupta-qxv4g6HH51o@public.gmane.org>
> Signed-off-by: Gabriel Fernandez <gabriel.fernandez-QSEj5FYQhm7YdoiemnsNIQ@public.gmane.org>
> ---
>  drivers/phy/phy-miphy28lp.c | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
> 
> diff --git a/drivers/phy/phy-miphy28lp.c b/drivers/phy/phy-miphy28lp.c
> index b36e737..976fdda 100644
> --- a/drivers/phy/phy-miphy28lp.c
> +++ b/drivers/phy/phy-miphy28lp.c
> @@ -679,6 +679,36 @@ static int miphy28lp_init_sata(struct miphy28lp_phy *miphy_phy)
>  	return miphy_is_ready(miphy_phy);
>  }
>  
> +static void miphy_pcie_tune_ssc(struct miphy28lp_phy *miphy_phy)
> +{
> +	u8 val;
> +
> +	/* Compensate Tx impedance to avoid out of range values */
> +	if (miphy_phy->ssc) {
> +		/*
> +		 * Enable the SSC on PLL for all banks
> +		 * SSC Modulation @ 31 KHz and 4000 ppm modulation amp
> +		 */
> +		val = readb_relaxed(miphy_phy->base + 0x0c);
> +		val |= 0x04;
> +		writeb_relaxed(val, miphy_phy->base + 0x0c);
> +		val = readb_relaxed(miphy_phy->base + 0x0a);
> +		val |= 0x10;
> +		writeb_relaxed(val, miphy_phy->base + 0x0a);

macros for these registers and values is needed. Or else it's difficult to review.
> +
> +		for (val = 0; val < 2; val++) {
> +			writeb_relaxed(val, miphy_phy->base + 0x0f);
> +			writeb_relaxed(0x69, miphy_phy->base + 0xe5);

Do these registers have to be written for every iteration?

Thanks
Kishon
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Kishon Vijay Abraham I <kishon@ti.com>
To: Gabriel FERNANDEZ <gabriel.fernandez@st.com>,
	Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	Srinivas Kandagatla <srinivas.kandagatla@gmail.com>,
	Maxime Coquelin <maxime.coquelin@st.com>,
	Patrice Chotard <patrice.chotard@st.com>,
	Russell King <linux@arm.linux.org.uk>,
	Grant Likely <grant.likely@linaro.org>
Cc: <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <kernel@stlinux.com>,
	Gabriel Fernandez <gabriel.fernandez@linaro.org>,
	Harsh Gupta <harsh.gupta@st.com>,
	Gabriel Fernandez <gabriel.fernandez@linaro.orgm>
Subject: Re: [PATCH v2 7/8] phy: miphy28lp: Add SSC support for PCIE
Date: Mon, 8 Sep 2014 20:45:43 +0530	[thread overview]
Message-ID: <540DC81F.6000901@ti.com> (raw)
In-Reply-To: <1409758637-28654-8-git-send-email-gabriel.fernandez@linaro.org>



On Wednesday 03 September 2014 09:07 PM, Gabriel FERNANDEZ wrote:
> SSC is the technique of modulating the operating frequency of a signal
> slightly to spread its radiated emissions over a range of frequencies.
> This reduction in the maximum emission for a given frequency helps meet
> radiated emission requirements.
> These settings are applicable for PCIE with Internal clock.
> 
> Signed-off-by: Harsh Gupta <harsh.gupta@st.com>
> Signed-off-by: Gabriel Fernandez <gabriel.fernandez@linaro.orgm>
> ---
>  drivers/phy/phy-miphy28lp.c | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
> 
> diff --git a/drivers/phy/phy-miphy28lp.c b/drivers/phy/phy-miphy28lp.c
> index b36e737..976fdda 100644
> --- a/drivers/phy/phy-miphy28lp.c
> +++ b/drivers/phy/phy-miphy28lp.c
> @@ -679,6 +679,36 @@ static int miphy28lp_init_sata(struct miphy28lp_phy *miphy_phy)
>  	return miphy_is_ready(miphy_phy);
>  }
>  
> +static void miphy_pcie_tune_ssc(struct miphy28lp_phy *miphy_phy)
> +{
> +	u8 val;
> +
> +	/* Compensate Tx impedance to avoid out of range values */
> +	if (miphy_phy->ssc) {
> +		/*
> +		 * Enable the SSC on PLL for all banks
> +		 * SSC Modulation @ 31 KHz and 4000 ppm modulation amp
> +		 */
> +		val = readb_relaxed(miphy_phy->base + 0x0c);
> +		val |= 0x04;
> +		writeb_relaxed(val, miphy_phy->base + 0x0c);
> +		val = readb_relaxed(miphy_phy->base + 0x0a);
> +		val |= 0x10;
> +		writeb_relaxed(val, miphy_phy->base + 0x0a);

macros for these registers and values is needed. Or else it's difficult to review.
> +
> +		for (val = 0; val < 2; val++) {
> +			writeb_relaxed(val, miphy_phy->base + 0x0f);
> +			writeb_relaxed(0x69, miphy_phy->base + 0xe5);

Do these registers have to be written for every iteration?

Thanks
Kishon

  reply	other threads:[~2014-09-08 15:15 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-03 15:37 [PATCH v2 0/8] phy: miphy28lp: Introduce support for MiPHY28lp Gabriel FERNANDEZ
2014-09-03 15:37 ` Gabriel FERNANDEZ
2014-09-03 15:37 ` [PATCH v2 1/8] phy: miphy28lp: Add Device Tree bindings for the MiPHY28lp Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ
2014-09-08 14:33   ` Kishon Vijay Abraham I
2014-09-08 14:33     ` Kishon Vijay Abraham I
2014-09-08 14:33     ` Kishon Vijay Abraham I
2014-09-09  9:24     ` Gabriel Fernandez
2014-09-09  9:24       ` Gabriel Fernandez
2014-09-09  9:24       ` Gabriel Fernandez
2014-09-03 15:37 ` [PATCH v2 2/8] phy: miphy28lp: Add MiPHY28lp header file for DT x Driver defines Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ
2014-09-03 15:37 ` [PATCH v2 3/8] phy: miphy28lp: Provide support for the MiPHY28lp Generic PHY Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ
2014-09-08 15:12   ` Kishon Vijay Abraham I
2014-09-08 15:12     ` Kishon Vijay Abraham I
2014-09-08 15:12     ` Kishon Vijay Abraham I
2014-09-09  9:15     ` Gabriel Fernandez
2014-09-09  9:15       ` Gabriel Fernandez
2014-09-09  9:15       ` Gabriel Fernandez
2014-09-03 15:37 ` [PATCH v2 4/8] ARM: DT: STi: STiH407: Add DT node for MiPHY28lp Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ
2014-09-03 15:37 ` [PATCH v2 5/8] ARM: multi_v7_defconfig: Enable MiPHY28lp - ST's Generic (SATA, PCIe & USB3) PHY Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ
2014-09-03 15:37 ` [PATCH v2 6/8] phy: miphy28lp: Add SSC support for SATA Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ
2014-09-03 15:37 ` [PATCH v2 7/8] phy: miphy28lp: Add SSC support for PCIE Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ
2014-09-08 15:15   ` Kishon Vijay Abraham I [this message]
2014-09-08 15:15     ` Kishon Vijay Abraham I
2014-09-08 15:15     ` Kishon Vijay Abraham I
2014-09-09  9:23     ` Gabriel Fernandez
2014-09-09  9:23       ` Gabriel Fernandez
2014-09-09  9:23       ` Gabriel Fernandez
2014-09-03 15:37 ` [PATCH v2 8/8] phy: miphy28lp: Tune tx impedance across Soc cuts Gabriel FERNANDEZ
2014-09-03 15:37   ` Gabriel FERNANDEZ

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=540DC81F.6000901@ti.com \
    --to=kishon@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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.