All of lore.kernel.org
 help / color / mirror / Atom feed
From: Priit Laes <plaes-q/aMd4JkU83YtjvyW6yDsg@public.gmane.org>
To: mweseloh42-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Cc: 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>,
	Maxime Ripard
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	 Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
	Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v2] spi: dts: sun4i: Add support for inter-word wait cycles using the SPI Wait Clock Register
Date: Sat, 12 Dec 2015 11:19:40 +0200	[thread overview]
Message-ID: <1449911980.29015.7.camel@plaes.org> (raw)
In-Reply-To: <1449873940-10167-1-git-send-email-mweseloh42-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

On Fri, 2015-12-11 at 23:45 +0100, Marcus Weseloh wrote:

[...]
> 
> diff --git a/Documentation/devicetree/bindings/spi/spi-sun4i.txt b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
> index de827f5..d6c55fc 100644
> --- a/Documentation/devicetree/bindings/spi/spi-sun4i.txt
> +++ b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
> @@ -10,6 +10,10 @@ Required properties:
>    - "mod": the parent module clock
>  - clock-names: Must contain the clock names described just above
>  
> +Optional properties for slave devices:
> +- sun4i,spi-word-wait-ns: hardware based delay in nanoseconds between
> +			  transmission of words

Should be 'allwinner,spi-word-wait-ns'

Vendor prefix do come from:
Documentation/devicetree/bindings/vendor-prefixes.txt

> +
>  Example:
>  
>  spi1: spi@01c06000 {
> @@ -21,4 +25,11 @@ spi1: spi@01c06000 {
>  	status = "disabled";
>  	#address-cells = <1>;
>  	#size-cells = <0>;
> +
> +	spi1_0 {
> +		compatible = "example,dummy";
> +		reg = <0>;
> +		spi-max-frequency = <1000000>;
> +		sun4i,spi-word-wait-ns = <12000>;
> +	};
>  };
> diff --git a/drivers/spi/spi-sun4i.c b/drivers/spi/spi-sun4i.c
> index f60a6d6..8cfd96c 100644
> --- a/drivers/spi/spi-sun4i.c
> +++ b/drivers/spi/spi-sun4i.c
> @@ -19,6 +19,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  #include 
>  
> @@ -173,6 +174,9 @@ static int sun4i_spi_transfer_one(struct spi_master *master,
>  	unsigned int tx_len = 0;
>  	int ret = 0;
>  	u32 reg;
> +	u32 wait_ns = 0;
> +	int wait_clk = 0;
> +	int clk_ns = 0;
>  
>  	/* We don't support transfer larger than the FIFO */
>  	if (tfr->len > SUN4I_FIFO_DEPTH)
> @@ -261,6 +265,25 @@ static int sun4i_spi_transfer_one(struct spi_master *master,
>  
>  	sun4i_spi_write(sspi, SUN4I_CLK_CTL_REG, reg);
>  
> +	/* Setup wait time beteen words */
typo

> +	of_property_read_u32(spi->dev.of_node, "sun4i,spi-word-wait-ns",
> +			     &wait_ns);
> +	if (wait_ns) {
> +		/* The wait time is set in SPI_CLK cycles. The SPI hardware
> +		 * needs 3 additional cycles to setup the wait counter, so
> +		 * the minimum delay time is 4 cycles.
> +		 */
> +		clk_ns = DIV_ROUND_UP(1000000000, tfr->speed_hz);
> +		wait_clk = DIV_ROUND_UP(wait_ns, clk_ns) - 3;
> +		if (wait_clk < 1) {
> +			wait_clk = 1;
> +			dev_info(&spi->dev,
> +				 "using minimum of 4 word wait cycles (%uns)",
> +				 4 * clk_ns);
> +		}
> +	}
> +	sun4i_spi_write(sspi, SUN4I_WAIT_REG, (u16)wait_clk);
> +
>  	/* Setup the transfer now... */
>  	if (sspi->tx_buf)
>  		tx_len = tfr->len;
> -- 
> 1.9.1
> 

-- 
You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/d/optout.

WARNING: multiple messages have this Message-ID (diff)
From: plaes@plaes.org (Priit Laes)
To: linux-arm-kernel@lists.infradead.org
Subject: [linux-sunxi] [PATCH v2] spi: dts: sun4i: Add support for inter-word wait cycles using the SPI Wait Clock Register
Date: Sat, 12 Dec 2015 11:19:40 +0200	[thread overview]
Message-ID: <1449911980.29015.7.camel@plaes.org> (raw)
In-Reply-To: <1449873940-10167-1-git-send-email-mweseloh42@gmail.com>

On Fri, 2015-12-11 at 23:45 +0100, Marcus Weseloh wrote:

[...]
> 
> diff --git a/Documentation/devicetree/bindings/spi/spi-sun4i.txt b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
> index de827f5..d6c55fc 100644
> --- a/Documentation/devicetree/bindings/spi/spi-sun4i.txt
> +++ b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
> @@ -10,6 +10,10 @@ Required properties:
> ???- "mod": the parent module clock
> ?- clock-names: Must contain the clock names described just above
> ?
> +Optional properties for slave devices:
> +- sun4i,spi-word-wait-ns: hardware based delay in nanoseconds between
> +			??transmission of words

Should be 'allwinner,spi-word-wait-ns'

Vendor prefix do come from:
Documentation/devicetree/bindings/vendor-prefixes.txt

> +
> ?Example:
> ?
> ?spi1: spi at 01c06000 {
> @@ -21,4 +25,11 @@ spi1: spi at 01c06000 {
> ?	status = "disabled";
> ?	#address-cells = <1>;
> ?	#size-cells = <0>;
> +
> +	spi1_0 {
> +		compatible = "example,dummy";
> +		reg = <0>;
> +		spi-max-frequency = <1000000>;
> +		sun4i,spi-word-wait-ns = <12000>;
> +	};
> ?};
> diff --git a/drivers/spi/spi-sun4i.c b/drivers/spi/spi-sun4i.c
> index f60a6d6..8cfd96c 100644
> --- a/drivers/spi/spi-sun4i.c
> +++ b/drivers/spi/spi-sun4i.c
> @@ -19,6 +19,7 @@
> ?#include 
> ?#include 
> ?#include 
> +#include 
> ?
> ?#include 
> ?
> @@ -173,6 +174,9 @@ static int sun4i_spi_transfer_one(struct spi_master *master,
> ?	unsigned int tx_len = 0;
> ?	int ret = 0;
> ?	u32 reg;
> +	u32 wait_ns = 0;
> +	int wait_clk = 0;
> +	int clk_ns = 0;
> ?
> ?	/* We don't support transfer larger than the FIFO */
> ?	if (tfr->len > SUN4I_FIFO_DEPTH)
> @@ -261,6 +265,25 @@ static int sun4i_spi_transfer_one(struct spi_master *master,
> ?
> ?	sun4i_spi_write(sspi, SUN4I_CLK_CTL_REG, reg);
> ?
> +	/* Setup wait time beteen words */
typo

> +	of_property_read_u32(spi->dev.of_node, "sun4i,spi-word-wait-ns",
> +			?????&wait_ns);
> +	if (wait_ns) {
> +		/* The wait time is set in SPI_CLK cycles. The SPI hardware
> +		?* needs 3 additional cycles to setup the wait counter, so
> +		?* the minimum delay time is 4 cycles.
> +		?*/
> +		clk_ns = DIV_ROUND_UP(1000000000, tfr->speed_hz);
> +		wait_clk = DIV_ROUND_UP(wait_ns, clk_ns) - 3;
> +		if (wait_clk < 1) {
> +			wait_clk = 1;
> +			dev_info(&spi->dev,
> +				?"using minimum of 4 word wait cycles (%uns)",
> +				?4 * clk_ns);
> +		}
> +	}
> +	sun4i_spi_write(sspi, SUN4I_WAIT_REG, (u16)wait_clk);
> +
> ?	/* Setup the transfer now... */
> ?	if (sspi->tx_buf)
> ?		tx_len = tfr->len;
> --?
> 1.9.1
> 

WARNING: multiple messages have this Message-ID (diff)
From: Priit Laes <plaes@plaes.org>
To: mweseloh42@gmail.com, linux-sunxi@googlegroups.com
Cc: 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>,
	Maxime Ripard <maxime.ripard@free-electrons.com>,
	Chen-Yu Tsai <wens@csie.org>, Mark Brown <broonie@kernel.org>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org
Subject: Re: [linux-sunxi] [PATCH v2] spi: dts: sun4i: Add support for inter-word wait cycles using the SPI Wait Clock Register
Date: Sat, 12 Dec 2015 11:19:40 +0200	[thread overview]
Message-ID: <1449911980.29015.7.camel@plaes.org> (raw)
In-Reply-To: <1449873940-10167-1-git-send-email-mweseloh42@gmail.com>

On Fri, 2015-12-11 at 23:45 +0100, Marcus Weseloh wrote:

[...]
> 
> diff --git a/Documentation/devicetree/bindings/spi/spi-sun4i.txt b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
> index de827f5..d6c55fc 100644
> --- a/Documentation/devicetree/bindings/spi/spi-sun4i.txt
> +++ b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
> @@ -10,6 +10,10 @@ Required properties:
>    - "mod": the parent module clock
>  - clock-names: Must contain the clock names described just above
>  
> +Optional properties for slave devices:
> +- sun4i,spi-word-wait-ns: hardware based delay in nanoseconds between
> +			  transmission of words

Should be 'allwinner,spi-word-wait-ns'

Vendor prefix do come from:
Documentation/devicetree/bindings/vendor-prefixes.txt

> +
>  Example:
>  
>  spi1: spi@01c06000 {
> @@ -21,4 +25,11 @@ spi1: spi@01c06000 {
>  	status = "disabled";
>  	#address-cells = <1>;
>  	#size-cells = <0>;
> +
> +	spi1_0 {
> +		compatible = "example,dummy";
> +		reg = <0>;
> +		spi-max-frequency = <1000000>;
> +		sun4i,spi-word-wait-ns = <12000>;
> +	};
>  };
> diff --git a/drivers/spi/spi-sun4i.c b/drivers/spi/spi-sun4i.c
> index f60a6d6..8cfd96c 100644
> --- a/drivers/spi/spi-sun4i.c
> +++ b/drivers/spi/spi-sun4i.c
> @@ -19,6 +19,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  #include 
>  
> @@ -173,6 +174,9 @@ static int sun4i_spi_transfer_one(struct spi_master *master,
>  	unsigned int tx_len = 0;
>  	int ret = 0;
>  	u32 reg;
> +	u32 wait_ns = 0;
> +	int wait_clk = 0;
> +	int clk_ns = 0;
>  
>  	/* We don't support transfer larger than the FIFO */
>  	if (tfr->len > SUN4I_FIFO_DEPTH)
> @@ -261,6 +265,25 @@ static int sun4i_spi_transfer_one(struct spi_master *master,
>  
>  	sun4i_spi_write(sspi, SUN4I_CLK_CTL_REG, reg);
>  
> +	/* Setup wait time beteen words */
typo

> +	of_property_read_u32(spi->dev.of_node, "sun4i,spi-word-wait-ns",
> +			     &wait_ns);
> +	if (wait_ns) {
> +		/* The wait time is set in SPI_CLK cycles. The SPI hardware
> +		 * needs 3 additional cycles to setup the wait counter, so
> +		 * the minimum delay time is 4 cycles.
> +		 */
> +		clk_ns = DIV_ROUND_UP(1000000000, tfr->speed_hz);
> +		wait_clk = DIV_ROUND_UP(wait_ns, clk_ns) - 3;
> +		if (wait_clk < 1) {
> +			wait_clk = 1;
> +			dev_info(&spi->dev,
> +				 "using minimum of 4 word wait cycles (%uns)",
> +				 4 * clk_ns);
> +		}
> +	}
> +	sun4i_spi_write(sspi, SUN4I_WAIT_REG, (u16)wait_clk);
> +
>  	/* Setup the transfer now... */
>  	if (sspi->tx_buf)
>  		tx_len = tfr->len;
> -- 
> 1.9.1
> 

  parent reply	other threads:[~2015-12-12  9:19 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-11 22:45 [PATCH v2] spi: dts: sun4i: Add support for inter-word wait cycles using the SPI Wait Clock Register Marcus Weseloh
2015-12-11 22:45 ` Marcus Weseloh
2015-12-11 22:45 ` Marcus Weseloh
     [not found] ` <1449873940-10167-1-git-send-email-mweseloh42-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-12-12  9:19   ` Priit Laes [this message]
2015-12-12  9:19     ` [linux-sunxi] " Priit Laes
2015-12-12  9:19     ` Priit Laes
     [not found]     ` <1449911980.29015.7.camel-q/aMd4JkU83YtjvyW6yDsg@public.gmane.org>
2015-12-12 10:44       ` Marcus Weseloh
2015-12-12 10:44         ` [linux-sunxi] " Marcus Weseloh
2015-12-12 10:44         ` Marcus Weseloh
2015-12-13 21:07   ` Maxime Ripard
2015-12-13 21:07     ` Maxime Ripard
2015-12-13 21:07     ` Maxime Ripard
2015-12-13 21:52     ` Marcus Weseloh
2015-12-13 21:52       ` Marcus Weseloh
2015-12-13 21:52       ` Marcus Weseloh
2015-12-13 23:04   ` [PATCH v3] spi: dts: sun4i: Add support for hardware-based wait time between words Marcus Weseloh
2015-12-13 23:04     ` Marcus Weseloh
2015-12-13 23:04     ` Marcus Weseloh
     [not found]     ` <1450047853-9005-1-git-send-email-mweseloh42-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-12-13 23:08       ` Mark Brown
2015-12-13 23:08         ` Mark Brown
2015-12-13 23:08         ` Mark Brown
     [not found]         ` <20151213230837.GT5727-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-12-13 23:23           ` Marcus Weseloh
2015-12-13 23:23             ` Marcus Weseloh
2015-12-13 23:23             ` Marcus Weseloh
     [not found]             ` <CAGNoLaOS94iHHSpFtYC-72TUvJj5dtrY7imW835OCRoCY8R4SA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-14 10:57               ` Mark Brown
2015-12-14 10:57                 ` Mark Brown
2015-12-14 10:57                 ` Mark Brown
2015-12-14  1:29       ` Rob Herring
2015-12-14  1:29         ` Rob Herring
2015-12-14  1:29         ` Rob Herring
2015-12-14  7:31         ` Marcus Weseloh
2015-12-14  7:31           ` Marcus Weseloh
2015-12-14  7:31           ` Marcus Weseloh
     [not found]           ` <CAGNoLaOckrgv5NP6eTOt8shj5f069DKFrxx+8afydqcAZH5HMw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-14  8:08             ` Marcus Weseloh
2015-12-14  8:08               ` Marcus Weseloh
2015-12-14  8:08               ` Marcus Weseloh

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=1449911980.29015.7.camel@plaes.org \
    --to=plaes-q/amd4jku83ytjvyw6ydsg@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=mweseloh42-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=wens-jdAy2FN1RRM@public.gmane.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.