From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753764AbbGINCF (ORCPT ); Thu, 9 Jul 2015 09:02:05 -0400 Received: from mail-bn1bon0056.outbound.protection.outlook.com ([157.56.111.56]:33660 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753142AbbGINBz (ORCPT ); Thu, 9 Jul 2015 09:01:55 -0400 Authentication-Results: spf=temperror (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none; From: Ranjit Waghmode To: broonie@kernel.org, michal.simek@xilinx.com, soren.brinkmann@xilinx.com, dwmw2@infradead.org, computersforpeace@gmail.com, zajec5@gmail.com, marex@denx.de, shijie.huang@intel.com, juhosg@openwrt.org, ben@decadent.org.uk CC: linux-mtd@lists.infradead.org, linux-spi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, harinik@xilinx.com, punnaia@xilinx.com, ran27jit@gmail.com, Ranjit Waghmode Subject: [RFC PATCH 0/2] spi: add dual parallel & stacked mode support in Zynq MPSoC GQSPI controller Date: Thu, 9 Jul 2015 18:14:53 +0530 Message-ID: <1436445895-25504-1-git-send-email-ranjit.waghmode@xilinx.com> X-Mailer: git-send-email 2.1.2 X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-21666.003 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD040;1:fG+CQqfgYrEeUB+Y9IWTNo6pPG2zHtGUKfQvlX8WPAvt1+LCX2cH28Rv6WDis3sObRx3il0j/MJkIOvQIaGySXYu6sUGrAAt908pnFLbZNzqlU2L6Ru4KDghjEhzRmGEOhmVxQJkQTc1EOokhT7m73EuhhZxsFnHqnXSSuFB5kC6NJ1aS2J5HNLwWnE/YelBzE42xg3LUPFgHYmCMYwhceHmo4vvgcsHdp3vk0g/HOvdBYna1HH3N1ubX1jfsEsJaQhrYT3E8H47Z592JyjrbtOUsyoopcVXAUA5qmhJxhk5dXmso0SwvzAQEpOReSszUbiZLv+Q5ge848ZGq6n/uQ== X-Forefront-Antispam-Report: CIP:149.199.60.83;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(189002)(199003)(47776003)(6806004)(50986999)(45336002)(46102003)(33646002)(229853001)(5001960100002)(77156002)(5003940100001)(189998001)(110136002)(62966003)(107886002)(46386002)(50466002)(36386004)(48376002)(103686003)(86362001)(106466001)(42186005)(87936001)(52956003)(92566002)(63266004)(36756003)(50226001)(921003)(107986001)(90966001)(4001430100001)(1121003)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2FFO11HUB039;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;MLV:nov;MX:1;A:1;PTR:unknown-60-83.xilinx.com;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11HUB039;2:LUB1cz2ugJb5knkMFmGBxW7Mp21jcct+pxg77hu9OnDx4Oo9Bd0cT35BEE30mwVx;3:chu4j8PfA/OMdLH8Mcq4535hVElwn6s5/5TOd0lwwmLtrjPT5Y5d4K30jGbJaGA1nIGvjau9MmnFfuzL0zG6tVodn7FdQtnxzYU5D8xNT4GxNGbSDJGfkTE9BnoBBF+cpF8rF2/YqSl9+5hxNPiW+yabh3mwy9T7E6N4CKQugpWPFbEBJ5GOzA1OuIRCPKCF3RJnxzau+GWjfumcdDa31DxV4g4mwW0aoMqxgTJRJY4=;25:JDqkEgh1m7kIx4R5XcECu1P7JpNvxziPKgWOmQNHVD8DqeViGLqOOe/cosaWPYLju4tqFiR5rvVTX6y9ejpnpOYrwwWOlBWEJG/NDA5o3h57NpHni3HYksGURhgwEFM55JlqaTpE6yo3uY6mn9h9VDaOPPEzU0RNq8LvRPAlG8lPPmUOQRnTMawp9mPtS3fD733SfLzqRZMhHL2Iy8792q830aJgF8ono8f0XP0q40nrYHzkPLaoYnYck5/m9Fy8 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2FFO11HUB039; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11HUB039;20:oztpN6ebTcV0haLGWGbA0+pVNq/pXBkDC1SRhTyhabCfLjP7dymCuUhMrOha5FyqzkvpbK/XOW3z+yZGRJH9WCMOsLMswFCtbX1qVDQx8nO64GwJt4mUWZyAdWaP79ALOVj4ojzh5aa9jWiIDUf9CVjGomCn99NA3KVUmduu2KN86bMrXfHNgWe5wC/2RoZA8MORKTTmKzk8z2/BFszrDsnq1CutPRoUbOb+HbRtlpsald0hUjC8PFNobAZM1JVGyCgygR0gt5PyhW0wZkMSUBAMsKCVwvUCzhBke6V0wIclb+j2f9Dzd0dmjcIwjzj9kfSli4jZIuyPDRtL1/7tHPcV85INt/V1GS3SfMHWw9cxyrrI+3F3C7aLyMYzjzhrtkD4CLt4hOC85uK5rBUvgjGxyokqeXI3os5FRv7QCVydoXqiS0nstynQUHb7MWuY9nNNPpM8zX+ZuG6rx98uHbDXgSgRKzTp4YwOQ8sz+1RDlJ0oBAJfvQSB/tKE082t;4:AI9lONK0sJxwKI5aOMxezgCBnokWN0ulP/8ClsbEVhxyqmotToUKKDkeeSsBn0AAAhh2vRD9A3gX+HxIe1aFgFGgW+SrsDQnrYHVClw3fU9L13C1ElnXfuqfd8Bf0X4sAeEQEjlD4enE8meiVdnSJs1ID2y982wdpSoa0QxiypGyggCC7Y2pcv4SNHSCykIv62h7Z8WdWbgrWBRngPJlDPWlagwWZvBrCj9LLAPCfFIDlnBQowUKM+ccU8lZoJXle3gwa7upl4RNTWtvCmSNeSu31N/O++xoLka9bZZ1S3k= BY2FFO11HUB039: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:BY2FFO11HUB039;BCL:0;PCL:0;RULEID:;SRVR:BY2FFO11HUB039; X-Forefront-PRVS: 0632519F33 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2FFO11HUB039;23:EvSjiNHZ+2tZ2qEDRwEWKqFxFNfw7nMPXrUyVH+z?= =?us-ascii?Q?5OnR+cvxsPJSeJrTnbTgNJU9Ikw/mrNjAZ+PXpDnzzoJtXN2lODLQkkxcXA/?= =?us-ascii?Q?YyS12/I+RE2txZ/21YraGNVfD8Bf73NAfBu/yHo1hWou3uOSZDy2FhLCok8x?= =?us-ascii?Q?RgxyiwMOuC+kDoNh53iUfKAnEvgCpsx/xuanmlyFrGQ3d2MZ4Qc1lbfXYS0X?= =?us-ascii?Q?tk8+xx7Ths7B/Eom7dreOE/o7ytINx0obJKTnXzpssun1NnNxyYMk1/cR68S?= =?us-ascii?Q?Iln+hUD2v0u94Jx4oUbpNzwhM+oEwXd6+TPp4JxHSi0i6Ya7NOqP6pxvj4z+?= =?us-ascii?Q?hIMKGK012swj5fQy/2w3OqgJwEQ473HFIMau9RSvBmH/3djzX5Bj6wzeopgX?= =?us-ascii?Q?KCUcoZSYdvw433ue2IlXMdCNZkcqmTjWlQh2Mij2re6yIUIU2bwaBX5Jw+Lh?= =?us-ascii?Q?0MrKFrBlZDwuakGgoPgdI8jSb8X5Up/LvS6Gc7dvMFPg+xk3/UnJUhjIc61O?= =?us-ascii?Q?nFXiF7mbVAG5G54L/S8Zh1YdKoXEeV4zCeDjni01s6pb1NKDeCW+wlAV4Ory?= =?us-ascii?Q?hhNA4/9JxvewgwGL19Xz7C28vR/opa5yI29vGO/lxk/9Gnu9Ey4BiKJQrvld?= =?us-ascii?Q?z5fvCypNtStvvL6sa0zlBNUa/gQAXzoFlCoyFSAtbnChSGG8Aods0lMvDAu/?= =?us-ascii?Q?Iz3vjRC6ocb8aARVz1IUJM38vHIkczBWeHrmdLW8PyncBjkMRKsANI/oXRdF?= =?us-ascii?Q?ChxBh0baG9BihnEAoOgXTczgVgznIGJWPG1dyBj7j4TWKjLvdrj7SZLJPoKo?= =?us-ascii?Q?dAruc65lizjXUWQiV3/XBme5GEZX5eKlKiqpuWp8A4irl23REZXfou4isw9e?= =?us-ascii?Q?qY23gvUYuGiBDyXjLdOFEYty+WTrQ+oGVIoCZNTMSLa3HFgYiIfZuT03XDft?= =?us-ascii?Q?4o3yVILOAsz5RaCvci7AcA+P3y1Xn1z5Jiq8siA41/WsJvLmczxJ6VIgnZwk?= =?us-ascii?Q?WQQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11HUB039;5:XYOmlZP426D9G0t3ni17P2sm5vJYF6j+Z0yLkZ+TJgjc4xbL0xE8jH3n3MsTb35EXusOl6sS5tKi4b9o2Jb18Q/zqGw8UECN+kG5FBW3hrG4/S2WdqUHwLA781x/FigbDbVZIEXy4cbqkYO1CPCLyQ==;24:d11c9Mq+9lJpcEWLOYMcjKa0UWNs7VjFwM7ALdEiCdo2ssUoNaD6RJRckMdpthd7NG7FgjOxd4XgMif0mCjeHMn9oMBeWK8lO0U8glHcHbQ= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2015 12:45:59.6376 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2FFO11HUB039 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series of patches is to add dual parallel and stacked mode support for Zynq Ultrascale+ MPSoC GQSPI controller driver. These are all very high level changes and expected to make an idea clear. Comments and suggestions are welcomed. What is dual parallel mode? --------------------------- ZynqMP GQSPI controller supports Dual Parallel mode with following functionalities: 1) Supporting two SPI flash memories operating in parallel. 8 I/O lines. 2) Chip selects and clock are shared to both the flash devices 3) This mode is targeted for faster read/write speed and also doubles the size 4) Commands/data can be transmitted/received from both the devices(mirror), or only upper or only lower flash memory devices. 5) Data arrangement: With stripe enabled, Even bytes i.e. 0, 2, 4,... are transmitted on Lower Data Bus Odd bytes i.e. 1, 3, 5,.. are transmitted on Upper Data Bus. What is stacked mode? --------------------- ZynqMP GQSPI controller supports stacked mode with following functionalities: 1) The Generic Quad-SPI controller also supports two SPI flash memories in a shared bus arrangement to reduce IO pin count. 2) Separate chip select lines 3) Shared I/O lines 4) This mode is targeted for increasing the flash memory and no performance improvement when compared with single. Suggestions on MTD layer support -------------------------------- In order to add above two specified modes, we may required to get some support from MTD layer. I'm trying to list the dependencies as follows: 1) Support for two flashes 2) Enable/Disable data stripe as and when required. 3) May need to update read_sr() to get status of both flashes 4) May also need to update read_fsr() to get status of both flashes 5) Adjustment of offset value based on the parallel/stacked mode configuration 6) Setting either parallel or stacked mode during the scan process. 7) In case of stacked mode, is there a MTD concatenation support? Kindly suggest us the way by which we can proceed further for adding this support. Will plan to send RFC for MTD related changes, based on above dependencies. Ranjit Waghmode (2): spi: zynqmp: gqspi: add support for dual parallel mode configuration spi: zynqmp: gqspi: add support for stacked mode configuration drivers/spi/spi-zynqmp-gqspi.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) -- 2.1.2 From mboxrd@z Thu Jan 1 00:00:00 1970 From: ranjit.waghmode@xilinx.com (Ranjit Waghmode) Date: Thu, 9 Jul 2015 18:14:53 +0530 Subject: [RFC PATCH 0/2] spi: add dual parallel & stacked mode support in Zynq MPSoC GQSPI controller Message-ID: <1436445895-25504-1-git-send-email-ranjit.waghmode@xilinx.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org This series of patches is to add dual parallel and stacked mode support for Zynq Ultrascale+ MPSoC GQSPI controller driver. These are all very high level changes and expected to make an idea clear. Comments and suggestions are welcomed. What is dual parallel mode? --------------------------- ZynqMP GQSPI controller supports Dual Parallel mode with following functionalities: 1) Supporting two SPI flash memories operating in parallel. 8 I/O lines. 2) Chip selects and clock are shared to both the flash devices 3) This mode is targeted for faster read/write speed and also doubles the size 4) Commands/data can be transmitted/received from both the devices(mirror), or only upper or only lower flash memory devices. 5) Data arrangement: With stripe enabled, Even bytes i.e. 0, 2, 4,... are transmitted on Lower Data Bus Odd bytes i.e. 1, 3, 5,.. are transmitted on Upper Data Bus. What is stacked mode? --------------------- ZynqMP GQSPI controller supports stacked mode with following functionalities: 1) The Generic Quad-SPI controller also supports two SPI flash memories in a shared bus arrangement to reduce IO pin count. 2) Separate chip select lines 3) Shared I/O lines 4) This mode is targeted for increasing the flash memory and no performance improvement when compared with single. Suggestions on MTD layer support -------------------------------- In order to add above two specified modes, we may required to get some support from MTD layer. I'm trying to list the dependencies as follows: 1) Support for two flashes 2) Enable/Disable data stripe as and when required. 3) May need to update read_sr() to get status of both flashes 4) May also need to update read_fsr() to get status of both flashes 5) Adjustment of offset value based on the parallel/stacked mode configuration 6) Setting either parallel or stacked mode during the scan process. 7) In case of stacked mode, is there a MTD concatenation support? Kindly suggest us the way by which we can proceed further for adding this support. Will plan to send RFC for MTD related changes, based on above dependencies. Ranjit Waghmode (2): spi: zynqmp: gqspi: add support for dual parallel mode configuration spi: zynqmp: gqspi: add support for stacked mode configuration drivers/spi/spi-zynqmp-gqspi.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) -- 2.1.2 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ranjit Waghmode Subject: [RFC PATCH 0/2] spi: add dual parallel & stacked mode support in Zynq MPSoC GQSPI controller Date: Thu, 9 Jul 2015 18:14:53 +0530 Message-ID: <1436445895-25504-1-git-send-email-ranjit.waghmode@xilinx.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: harinik@xilinx.com, Ranjit Waghmode , linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, linux-mtd@lists.infradead.org, punnaia@xilinx.com, ran27jit@gmail.com, linux-arm-kernel@lists.infradead.org To: broonie@kernel.org, michal.simek@xilinx.com, soren.brinkmann@xilinx.com, dwmw2@infradead.org, computersforpeace@gmail.com, zajec5@gmail.com, marex@denx.de, shijie.huang@intel.com, juhosg@openwrt.org, ben@decadent.org.uk Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org List-Id: linux-spi.vger.kernel.org This series of patches is to add dual parallel and stacked mode support for Zynq Ultrascale+ MPSoC GQSPI controller driver. These are all very high level changes and expected to make an idea clear. Comments and suggestions are welcomed. What is dual parallel mode? --------------------------- ZynqMP GQSPI controller supports Dual Parallel mode with following functionalities: 1) Supporting two SPI flash memories operating in parallel. 8 I/O lines. 2) Chip selects and clock are shared to both the flash devices 3) This mode is targeted for faster read/write speed and also doubles the size 4) Commands/data can be transmitted/received from both the devices(mirror), or only upper or only lower flash memory devices. 5) Data arrangement: With stripe enabled, Even bytes i.e. 0, 2, 4,... are transmitted on Lower Data Bus Odd bytes i.e. 1, 3, 5,.. are transmitted on Upper Data Bus. What is stacked mode? --------------------- ZynqMP GQSPI controller supports stacked mode with following functionalities: 1) The Generic Quad-SPI controller also supports two SPI flash memories in a shared bus arrangement to reduce IO pin count. 2) Separate chip select lines 3) Shared I/O lines 4) This mode is targeted for increasing the flash memory and no performance improvement when compared with single. Suggestions on MTD layer support -------------------------------- In order to add above two specified modes, we may required to get some support from MTD layer. I'm trying to list the dependencies as follows: 1) Support for two flashes 2) Enable/Disable data stripe as and when required. 3) May need to update read_sr() to get status of both flashes 4) May also need to update read_fsr() to get status of both flashes 5) Adjustment of offset value based on the parallel/stacked mode configuration 6) Setting either parallel or stacked mode during the scan process. 7) In case of stacked mode, is there a MTD concatenation support? Kindly suggest us the way by which we can proceed further for adding this support. Will plan to send RFC for MTD related changes, based on above dependencies. Ranjit Waghmode (2): spi: zynqmp: gqspi: add support for dual parallel mode configuration spi: zynqmp: gqspi: add support for stacked mode configuration drivers/spi/spi-zynqmp-gqspi.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) -- 2.1.2