All of lore.kernel.org
 help / color / mirror / Atom feed
From: Talel Shenhar <talel@amazon.com>
To: Trent Piepho <tpiepho@impinj.com>,
	"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
	"mark.rutland@arm.com" <mark.rutland@arm.com>,
	"broonie@kernel.org" <broonie@kernel.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "barakw@amazon.com" <barakw@amazon.com>,
	"ronenk@amazon.com" <ronenk@amazon.com>,
	"dwmw@amazon.co.uk" <dwmw@amazon.co.uk>, <jonnyc@amazon.com>
Subject: Re: [PATCH 1/2] dt-bindings: spi: dw: add cs-override property
Date: Thu, 11 Oct 2018 10:39:22 +0300	[thread overview]
Message-ID: <3ad7fac8-2f13-690b-9e4b-c6b2373756b0@amazon.com> (raw)
In-Reply-To: <1539210111.1944.31.camel@impinj.com>



On 10/11/2018 01:21 AM, Trent Piepho wrote:
> On Wed, 2018-10-10 at 10:08 +0300, Talel Shenhar wrote:
>> The dw spi controller has an auto-deselect of Chip-Select, in case there is
>> no data inside the Tx FIFO. While working on platforms with Alpine chips,
>> auto-deselect mode causes an issue for some spi devices that can't handle
>> the Chip-Select deselect in the middle of a transaction. It is a normal
>> behavior for a Tx FIFO to be empty in the middle of a transaction, due to
>>
> So that's the problem!  I, like everyone else I suspect, switched to
> using GPIO chip selects with this driver because of this.  I narrowed
> it down to a CS de-assert when the bus switched from TX to RX, which of
> course makes a SPI register read fail on most devices.  The TX FIFO
> would empty at this point, so that would explain it.
>
> Did the designers of this IP ever read a SPI device datasheet???
>
> Got to agree with Mark Brown, why would anyone ever want to NOT have it
> work properly?  The previous behavior is not "alternate correct", it's
> Broken.
This patch allow the Amazon changed hw to work in a correct way.
Unfortunately, the original hw doesn't support auto-deselect disable.
auto-deselect disable is a hw fixup Amazon hw engineers added on top
of the original dw IP.
The fix was to disable the auto-deselect and to allow sw
to manually control the chip-select.
This patch enables the above described Amazon hw fixup and
adds manual control over chip-select.

WARNING: multiple messages have this Message-ID (diff)
From: Talel Shenhar <talel@amazon.com>
To: Trent Piepho <tpiepho@impinj.com>,
	"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
	"mark.rutland@arm.com" <mark.rutland@arm.com>,
	"broonie@kernel.org" <broonie@kernel.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "barakw@amazon.com" <barakw@amazon.com>,
	"ronenk@amazon.com" <ronenk@amazon.com>,
	"dwmw@amazon.co.uk" <dwmw@amazon.co.uk>,
	jonnyc@amazon.com
Subject: Re: [PATCH 1/2] dt-bindings: spi: dw: add cs-override property
Date: Thu, 11 Oct 2018 10:39:22 +0300	[thread overview]
Message-ID: <3ad7fac8-2f13-690b-9e4b-c6b2373756b0@amazon.com> (raw)
In-Reply-To: <1539210111.1944.31.camel@impinj.com>



On 10/11/2018 01:21 AM, Trent Piepho wrote:
> On Wed, 2018-10-10 at 10:08 +0300, Talel Shenhar wrote:
>> The dw spi controller has an auto-deselect of Chip-Select, in case there is
>> no data inside the Tx FIFO. While working on platforms with Alpine chips,
>> auto-deselect mode causes an issue for some spi devices that can't handle
>> the Chip-Select deselect in the middle of a transaction. It is a normal
>> behavior for a Tx FIFO to be empty in the middle of a transaction, due to
>>
> So that's the problem!  I, like everyone else I suspect, switched to
> using GPIO chip selects with this driver because of this.  I narrowed
> it down to a CS de-assert when the bus switched from TX to RX, which of
> course makes a SPI register read fail on most devices.  The TX FIFO
> would empty at this point, so that would explain it.
>
> Did the designers of this IP ever read a SPI device datasheet???
>
> Got to agree with Mark Brown, why would anyone ever want to NOT have it
> work properly?  The previous behavior is not "alternate correct", it's
> Broken.
This patch allow the Amazon changed hw to work in a correct way.
Unfortunately, the original hw doesn't support auto-deselect disable.
auto-deselect disable is a hw fixup Amazon hw engineers added on top
of the original dw IP.
The fix was to disable the auto-deselect and to allow sw
to manually control the chip-select.
This patch enables the above described Amazon hw fixup and
adds manual control over chip-select.

  reply	other threads:[~2018-10-11  7:39 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-10  7:08 [PATCH 1/2] dt-bindings: spi: dw: add cs-override property Talel Shenhar
2018-10-10  7:08 ` Talel Shenhar
2018-10-10  7:08 ` [PATCH 2/2] dw: spi: add 'cs-override' DT property support Talel Shenhar
2018-10-10  7:08   ` Talel Shenhar
2018-10-10 10:18 ` [PATCH 1/2] dt-bindings: spi: dw: add cs-override property Mark Brown
2018-10-10 10:34   ` Talel Shenhar
2018-10-10 10:34     ` Talel Shenhar
2018-10-10 11:29     ` David Woodhouse
2018-10-10 11:29       ` David Woodhouse
2018-10-10 11:23   ` Talel Shenhar
2018-10-10 11:23     ` Talel Shenhar
2018-10-10 11:27     ` Mark Brown
2018-10-10 11:58       ` Woodhouse, David
2018-10-10 12:27         ` Mark Brown
2018-10-10 22:52           ` Trent Piepho
2018-10-10 15:15 ` [PATCH 1/2] dt-bindings: spi: dw: add compatible for Alpine spi controller Talel Shenhar
2018-10-10 15:15   ` Talel Shenhar
2018-10-10 15:15   ` [PATCH 2/2] dw: spi: add support " Talel Shenhar
2018-10-10 15:15     ` Talel Shenhar
2018-10-10 22:08     ` Trent Piepho
2018-10-11 11:20       ` [PATCH 1/2] dt-bindings: spi: dw: add compatible for Amazon's " Talel Shenhar
2018-10-11 11:20         ` Talel Shenhar
2018-10-11 11:20         ` [PATCH 2/2] dw: spi: add support " Talel Shenhar
2018-10-11 11:20           ` Talel Shenhar
2018-10-11 14:58           ` Applied "dw: spi: add support for Amazon's Alpine spi controller" to the spi tree Mark Brown
2018-10-11 14:58             ` Mark Brown
2018-10-11 14:58             ` Mark Brown
2018-10-11 13:44         ` [PATCH 1/2] dt-bindings: spi: dw: add compatible for Amazon's Alpine spi controller Mark Brown
2018-10-11 14:58         ` Applied "spi: dw: add compatible for Amazon's Alpine spi controller" to the spi tree Mark Brown
2018-10-11 14:58           ` Mark Brown
2018-10-11 14:58           ` Mark Brown
2018-10-11 11:22       ` [PATCH 2/2] dw: spi: add support for Alpine spi controller Talel Shenhar
2018-10-10 22:21 ` [PATCH 1/2] dt-bindings: spi: dw: add cs-override property Trent Piepho
2018-10-11  7:39   ` Talel Shenhar [this message]
2018-10-11  7:39     ` Talel Shenhar
2018-10-11 13:46   ` Mark Brown

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=3ad7fac8-2f13-690b-9e4b-c6b2373756b0@amazon.com \
    --to=talel@amazon.com \
    --cc=barakw@amazon.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw@amazon.co.uk \
    --cc=jonnyc@amazon.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=ronenk@amazon.com \
    --cc=tpiepho@impinj.com \
    /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.