From patchwork Fri Mar 22 06:29:25 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajeshwari Shinde X-Patchwork-Id: 15524 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 370AF23E2C for ; Fri, 22 Mar 2013 06:23:30 +0000 (UTC) Received: from mail-vc0-f170.google.com (mail-vc0-f170.google.com [209.85.220.170]) by fiordland.canonical.com (Postfix) with ESMTP id D4524A1806B for ; Fri, 22 Mar 2013 06:23:29 +0000 (UTC) Received: by mail-vc0-f170.google.com with SMTP id lf10so3006993vcb.29 for ; Thu, 21 Mar 2013 23:23:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-forwarded-to:x-forwarded-for:delivered-to:x-received :received-spf:x-auditid:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references:x-brightmail-tracker:x-brightmail-tracker :dlp-filter:x-mtr:x-cfilter-loop:x-gm-message-state; bh=QAUkJRLsC4tKISxUqYyH4OH37kfQFa6vnxzBW9JMEv4=; b=V3P/pDdjOZAERNOmSBZJX35fNVne78d2Fn5ydKRUCwA5MRTn0kD+xsgMAPlmhis6vc cRWXuNJ4lQE4aQVd3cP5UWJ9BdYvgAw+h/J38MBKZajfre7Tw+BIMmCk73itoWmi13Mx xzBNbiX8yxPfR+y7wMei4cIMorlPb9OjEdNqgBofBgHzCbxXZ9AvWpXQMmN1E51RYu7F idJhh0XRIWbJ+dpPvSZ61Tz80mv+cB74NVgTBGiBGYaKmgJgZl425+Iv8AwdJWffmtrK DHmtOUQeYQ/zi4mJEYUk441vPN3uzAuhZ85OQWkKOfjWD4tGAEVimH4ivHxOJKRFB7h1 dVVg== X-Received: by 10.52.93.20 with SMTP id cq20mr625209vdb.38.1363933409397; Thu, 21 Mar 2013 23:23:29 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.58.233.198 with SMTP id ty6csp92053vec; Thu, 21 Mar 2013 23:23:28 -0700 (PDT) X-Received: by 10.66.252.73 with SMTP id zq9mr1603017pac.7.1363933408125; Thu, 21 Mar 2013 23:23:28 -0700 (PDT) Received: from mailout1.samsung.com (mailout1.samsung.com. [203.254.224.24]) by mx.google.com with ESMTP id ul7si1230370pbc.298.2013.03.21.23.23.27; Thu, 21 Mar 2013 23:23:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of rajeshwari.s@samsung.com designates 203.254.224.24 as permitted sender) client-ip=203.254.224.24; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of rajeshwari.s@samsung.com designates 203.254.224.24 as permitted sender) smtp.mail=rajeshwari.s@samsung.com Received: from epcpsbgr5.samsung.com (u145.gpu120.samsung.co.kr [203.254.230.145]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MK1000BNTQJPU70@mailout1.samsung.com>; Fri, 22 Mar 2013 15:23:27 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.123]) by epcpsbgr5.samsung.com (EPCPMTA) with SMTP id 85.34.12250.FD8FB415; Fri, 22 Mar 2013 15:23:27 +0900 (KST) X-AuditID: cbfee691-b7f5f6d000002fda-2b-514bf8df9ae5 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 94.A5.13494.ED8FB415; Fri, 22 Mar 2013 15:23:27 +0900 (KST) Received: from rajeshwari-linux.sisodomain.com ([107.108.215.115]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MK100JW5TQV6080@mmp1.samsung.com>; Fri, 22 Mar 2013 15:23:26 +0900 (KST) From: Rajeshwari Shinde To: u-boot@lists.denx.de Cc: patches@linaro.org, sjg@chromium.org, mk7.kang@samsung.com, chander.kashyap@linaro.org Subject: [PATCH 1/2] SPI: Add support for preamble bytes Date: Fri, 22 Mar 2013 11:59:25 +0530 Message-id: <1363933766-6555-2-git-send-email-rajeshwari.s@samsung.com> X-Mailer: git-send-email 1.7.4.4 In-reply-to: <1363933766-6555-1-git-send-email-rajeshwari.s@samsung.com> References: <1363933766-6555-1-git-send-email-rajeshwari.s@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrBLMWRmVeSWpSXmKPExsWyRsSkWvf+D+9Ag5kn+Cwerr/JYtFxpIXR YsrhLywW37ZsY7R4u7eT3YHVY3bDRRaPO9f2sHmcvbOD0aNvyyrGAJYoLpuU1JzMstQifbsE royVW2ewF3zhqfhzpZ+1gXEDVxcjJ4eEgInEyn23GSFsMYkL99azdTFycQgJLGWUePagiRWm aPbsI0wQiUWMEr3/t0I5E5kkPk/8xQZSxSZgJLH15DSwUSICEhK/+q+C2cwCMRKv9/8AqxEW sJDYsGUvmM0ioCrxu/ktC4jNK+AuMWndVSaIbQoSx6Z+BdvMKeAhcfzzIrB6IaCalzNusEPU NLNL/JqVDTFHQOLb5ENAcziA4rISmw4wQ5RIShxccYNlAqPwAkaGVYyiqQXJBcVJ6UWmesWJ ucWleel6yfm5mxiBoXz637OJOxjvH7A+xJgMNG4is5Rocj4wFvJK4g2NzYwsTE1MjY3MLc1I E1YS51VvsQ4UEkhPLEnNTk0tSC2KLyrNSS0+xMjEwSnVwCj29RyHqdj24ICaqAshRlkF7+V/ S8Wpl7fu9zt5Jyz0yPyyg/pFpsfmtPE91hGdJNV+a9MD9Z3bU2sn9gh0Jp5K9U4P0zFfbRmY eipI57f345UJFelzlxVJTyjVv2JfdUOlLerrxdsZS2YdSfi5Q/S30h/Dq2m+tpNFnt8MXiq6 63Nlyp86WyWW4oxEQy3mouJEAOVG6td7AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGIsWRmVeSWpSXmKPExsVy+t9jAd37P7wDDZ5/Z7V4uP4mi0XHkRZG iymHv7BYfNuyjdHi7d5OdgdWj9kNF1k87lzbw+Zx9s4ORo++LasYA1iiGhhtMlITU1KLFFLz kvNTMvPSbZW8g+Od403NDAx1DS0tzJUU8hJzU22VXHwCdN0yc4A2KymUJeaUAoUCEouLlfTt ME0IDXHTtYBpjND1DQmC6zEyQAMJaxgzVm6dwV7whafiz5V+1gbGDVxdjJwcEgImErNnH2GC sMUkLtxbz9bFyMUhJLCIUaL3/1YmCGcik8Tnib/YQKrYBIwktp6cxghiiwhISPzqvwpmMwvE SLze/wOsRljAQmLDlr1gNouAqsTv5rcsIDavgLvEpHVXobYpSByb+pUVxOYU8JA4/nkRWL0Q UM3LGTfYJzDyLmBkWMUomlqQXFCclJ5rpFecmFtcmpeul5yfu4kRHCvPpHcwrmqwOMQowMGo xMOroeMdKMSaWFZcmXuIUYKDWUmENzIFKMSbklhZlVqUH19UmpNafIgxGeiqicxSosn5wDjO K4k3NDYxNzU2tTSxMDGzJE1YSZz3YKt1oJBAemJJanZqakFqEcwWJg5OqQZG9+aSd4sZ7q9N +n5k6fVJ/KtmdHL7iVqVhG9eW7Wk1ETY7pGEWeGLFwa79f2KOgJzXmna/O8wfLv7crXv8U/2 buzhr+ar/Z396ox+ufC04lOaj0R47z/V2hhrkpwoPK3UvN9f3teobe1sg+N9GU76RyN4r6YI Lv+ZzcymPklh76c10tOr+KuVWIozEg21mIuKEwG+qScp2QIAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Gm-Message-State: ALoCoQlh+tnzMi85fH0kZFG0W7mHKSBcjVENHJuKiAqTtBy5qjl2aG76ApWKWfZiFHdRemWmMa87 A SPI slave may take time to react to a request. For SPI flash devices this time is defined as one bit time, or a whole byte for 'fast read' mode. If the SPI slave is another CPU, then the time it takes to react may vary. It is convenient to allow the slave device to tag the start of the actual reply so that the host can determine when this 'preamble' finishes and the actual message starts. Add a preamble flag to the available SPI flags. If supported by the driver then it will ignore any received bytes before the preamble on each transaction. This ensures that reliable communication with the slave is possible. Signed-off-by: Simon Glass Signed-off-by: Rajeshwari Shinde Acked-by: Simon Glass --- include/spi.h | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/include/spi.h b/include/spi.h index 60e85db..5351c59 100644 --- a/include/spi.h +++ b/include/spi.h @@ -37,11 +37,16 @@ #define SPI_LSB_FIRST 0x08 /* per-word bits-on-wire */ #define SPI_3WIRE 0x10 /* SI/SO signals shared */ #define SPI_LOOP 0x20 /* loopback mode */ +#define SPI_SLAVE 0x40 /* slave mode */ +#define SPI_PREAMBLE 0x80 /* Skip preamble bytes */ /* SPI transfer flags */ #define SPI_XFER_BEGIN 0x01 /* Assert CS before transfer */ #define SPI_XFER_END 0x02 /* Deassert CS after transfer */ +/* Header byte that marks the start of the message */ +#define SPI_PREAMBLE_END_BYTE 0xec + /*----------------------------------------------------------------------- * Representation of a SPI slave, i.e. what we're communicating with. *