From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755392AbbJHJ3R (ORCPT ); Thu, 8 Oct 2015 05:29:17 -0400 Received: from mail-by2on0132.outbound.protection.outlook.com ([207.46.100.132]:42594 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755225AbbJHJ3H (ORCPT ); Thu, 8 Oct 2015 05:29:07 -0400 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; mentor.com; dkim=none (message not signed) header.d=none;mentor.com; dmarc=none action=none header.from=freescale.com; Date: Thu, 8 Oct 2015 17:28:28 +0800 From: Robin Gong To: "Bondarenko, Anton" CC: "broonie@kernel.org" , "linux-kernel@vger.kernel.org" , "linux-spi@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "Wang, Jiada (ESD)" , "Zapolskiy, Vladimir" Subject: Re: [PATCH v2 5/8] spi: imx: Add support for loopback for ECSPI controllers Message-ID: <20151008092827.GB6101@shlinux2> References: <20150930084219.GE2709@shlinux2> <04376A3D786BD947B28569C998A374A62E280E0F@NA-MBX-02.mgc.mentorg.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <04376A3D786BD947B28569C998A374A62E280E0F@NA-MBX-02.mgc.mentorg.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11OLC005;1:GL5xcMI4M3YxDm7tkRbIY7TGYTEjVY2+eNO6XkLERukMfCBdXp6uzVt42KIRtbCNwrFXZc89NlxQNW64QRqcoDgkyY7fZC3UmQzJ0rO3nlkvSrngliI03L+Ag9aBIHnLI9/fVaRdeSVpe8hBBNKBo3Y2E6fK2AS5Z+2UFw3m7cRw+6NbQe4fBRKo8wQAVpI+yx9Qfhxj7Twtchf/Uixz4ssRF8wS8hTEGrtFQeWwKKIwPZ1EfM7NnbLynB7PIvBvzIV1c/z3Z7R0gH/ciXhCtM1Za7zml29vnRJaM18FeovJRpCRPd99ad0UvhVT7NogW9h9lRmXdJg7X+ksjZ7Aqg== X-Forefront-Antispam-Report: CIP:192.88.158.2;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(199003)(24454002)(189002)(50986999)(64706001)(47776003)(87936001)(76176999)(50466002)(93886004)(54356999)(5001960100002)(46406003)(189998001)(110136002)(5008740100001)(85426001)(83506001)(33656002)(46102003)(2950100001)(33716001)(23726002)(106466001)(92566002)(105606002)(97756001)(6806005)(104016004)(77096005)(97736004)(69596002)(4001350100001)(81156007)(11100500001)(5007970100001)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR03MB495;H:az84smr01.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB495;2:f1trQJMyB0ThUgGZOgHATpYX53qQ1zfUaV/HosQIkz3uxKX2AHRfP6q+95JUJ9YWx72+9tOsoMCKFJ08t0qEpSqki0xTsZf5zuKNbJkUGPAUaYggagZgRqFxaFTxQcnmVmBx1FjpI/UyehxQ3iqhKUk/ZWlZz0plVcdkY4CPQh8=;3:wW6VFG4fw++bw0eerys2wxeUn2Fam9UQk7xLMiLurOwgWjKskO/glQ1C6a+qEnK690fNGblRu2Em75R72vo9r0Lw1GH6qdEiIyXBG2bos8fgv3QS7PZnoUz571CDKCceSkIEG2e1hq1EyTHCzG3G4tJB2n81W0N60GHtNmo7Yfo7WgAvwAIVhFeWhPrLsSk+z50FaL6LaC3CASTzdfhWYDFAc+OAsop1Zl+K6tP+faU=;25:emJQd7rffEM9svPraiAiiowGEsI917MJnZdmPOJiKikneli2Ub8WURRx40ebXn82OYfmRxk3zg3NScBrszp0eC1HQdTEtXBK6wFp/jiM5CNvFkk52E4kiuDgqDXDu4H8DRBIiknIbUzbPNJaJcwk0QtVo1YQf9jHtcn7X6KitFfMQO9AZiGq0thNXW/2b14m+/aTzaYN1qqhoKOI+nvE7m8QsQPcNIWcm+SWjnVnzsuuyKcpJZM8J7BRqK96QJhp X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB495; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB495;20:4+FrDBpfmRG9dYnekIRPwfciijdq/YmTmJo5mPJV+LFwpX211TNpfcOLe4zfKW9tnmp5Gpmgfoqi14vuAWYAC+zc2aPvBPbQJ5vGhdQHThssIdB0/z2SGWhcmIgNMfyKa+kvBp7CNlB2B37mfcgQjIEDCKEZBtTPo+Q7A8rKd2OJ7ptDFAzdKxMxtVSX8d2O2B/Q0CBfyUasyJzZ0Gw3iBNQ//XKnzcnmZ29rUaVThT2sTd5Ye0pb03cH2LVPkSdWPKW+9jXDk0bmRYZo721kObaHGL7LPCGOi2lAOy4F3nhRQko36huFit2Fm/moCBBZAuRcNbevMyMT7JZCpks0hBMjhzd3xoDLx+pEPsq7X4=;4:VBk8Uli4b8PdRG3kSWe7Ymx8hSMHoDq8okU2Ulx9HEUXpiaFe8wc59exioa0RCLBpGmheckjTAkq6gXNcKf2HZU67fffELG0DLq9GP3AlYK/jeugl8+PFBCFfOwbFhU9grqrR0cTvkgPm34Oej1cjVpqPpwNvINJjnRhHLi0SQtluQEOLB2YPShVGhDfSfhSM1+CSB1cHSBl7BH12+r+XtQyiRPkrFjXwEQ0w2Zu1IP+stInapXwLcu0HSRQObROwaQCtYjcW6o7+bCKP6uVOW+VrrQEcWtbs+c+hYYQdw38Z3FRmT822ichrGsFYF7LpGiePzaPSPgysp0XsNK9OESq4pZxHSgpX1uI+5RGsBA= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001);SRVR:DM2PR03MB495;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB495; X-Forefront-PRVS: 0723A02764 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR03MB495;23:EZ4H0u4PMipGGIcl31o+fk4QhicRh1RvhbAQiWDIcY?= =?us-ascii?Q?x9M+bA3h8GZT95Eqgf4A6rP4Z9kwAlydEwXDc7QQLSWxc+vF51mW50FyLaAV?= =?us-ascii?Q?TPDUxVpUlsHOmcyiPIsQCXtJlQD4L3WXy5cbgJNjebxFIT23WOyoDcTaJL2e?= =?us-ascii?Q?dSlCeoXkfsphVJDbEvfIe2NDCjBLKRV07F2SUSq14ZTm2QV0l7b+kOMZs8As?= =?us-ascii?Q?0iHtmlqn9R78fAKkOSW8oXXezMQMPkfXrw/qNYM6pQBlOvqOEuoGGAesp8YD?= =?us-ascii?Q?hO5xdAaamOuQJC05A/8XnjOWxrH3MEF2tY+e5ntyuBMHVJbSGZJ5hq4sHUNS?= =?us-ascii?Q?+QMNmVGG9nA5WmiD+70IrO8yduuOqc01sdshdHN/B0hV8Fn+6WIFCfVp/xuH?= =?us-ascii?Q?HjYcuHTHgyAtWmdLh4a8Yin4pB+TZDF16pUnvFcS15cm3frc0vcltDplL7Zn?= =?us-ascii?Q?61rhKJg4DDNWcEUEW1kpBZp68YMZvfuPIkGustpQnthZmeiq5cEVXSCCbO85?= =?us-ascii?Q?6aGMkqIU+Bxy8Pp/C6umc4So4+YiP2ALHq5A/VOi/t8Wr8OgcMJbbiiV6vNs?= =?us-ascii?Q?rj+3+uvFWqEDPnJT+QzekqLKlcXOnH0Ej5MD2/btBr8lVZzdu/v8ZmPr9dhj?= =?us-ascii?Q?xSQ/wXnWCpPjmt5p388dtDMtIfTwLatBEuViRoDy/osLKxNzhpTRwGN1ljvt?= =?us-ascii?Q?mP47gju5RhLgFZ13LKlQZkhJ8vjZw+Aw8RuKo9UJcJFbWXs7UwXGnnnQ0voJ?= =?us-ascii?Q?f+XUJKpXH80JsrghnE85TZVbByGfi0tJVSPQZ5yFk4+RhRtB+zCY1aHU0DbO?= =?us-ascii?Q?HVjvUnlgMJCetziiKAS/VOVV2n2YzbhvZrrOo46lgXobV9x8L9fyrAZLQAX1?= =?us-ascii?Q?W6I6SaRWMafUyJzH1ITcQZZFL3MB4VlwA3NUWHoKqKAeslRteVg+8T/LXSHP?= =?us-ascii?Q?uyrPjg1NsyBRgvidu7t9MLbLBPkJrt2g/nttLBxHcXWCKqkgS6R3OeqOM7N8?= =?us-ascii?Q?v1n83xX+tFhiUPAkIJLkE+2+UWHzZx4gaEcGjtqXWmRsz/Gh/hZBUiQhEPfV?= =?us-ascii?Q?y9YKjiQxDtfWuNOp0SK+5ulI1+w8FuxqsVHYvP2HqcXXclvcOW23R9O6WhcJ?= =?us-ascii?Q?c3xuWIkMA=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB495;5:/cDx7M0E9bmaRLrDolF8pNxYyYXLVq5PkgmOhrSgkpdueg8vykbeMIDpqsZqyk2Xi68ine4HobJflVRFgzKyZ1DAcYfr5RmFvbdIf5QXNKf94qXumc3jp5Qr5Br7vVtx+Sp/GmKjNl1yw+YX1Gz/KA==;24:Hc3s779flzsqEkfqfrf2CpYLKoVRblncOzYiI9Zgcsv/gVgC9EkwD+nSInc3+y5k44K2p/FoITmvp9xMsKHGWeWPXbPwmGqwKGwQAWJbX6M=;20:Ht2+5mFbZ79hYXYpIc+DbPQ4mrrlPnjblW+pOrAz+gHV5dIwuRtRHXsx408p8NZLzMn8jlB3PkBEtrFED3a+yg== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2015 09:29:04.6308 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR03MB495 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Oct 01, 2015 at 12:16:49AM +0000, Bondarenko, Anton wrote: > On 30.09.2015 10:42, Robin Gong wrote: > > On Fri, Sep 25, 2015 at 07:57:12PM +0200, Anton Bondarenko wrote: > >> @@ -370,8 +374,12 @@ static int __maybe_unused mx51_ecspi_config(struct spi_imx_data *spi_imx, > >> if (config->mode & SPI_CS_HIGH) > >> cfg |= MX51_ECSPI_CONFIG_SSBPOL(config->cs); > >> > >> + if (config->mode & SPI_LOOP) > >> + lpb |= MX51_ECSPI_LOOP; > >> + > >> writel(ctrl, spi_imx->base + MX51_ECSPI_CTRL); > >> writel(cfg, spi_imx->base + MX51_ECSPI_CONFIG); > >> + writel(lpb, spi_imx->base + MX51_ECSPI_TEST); > > It's better write this MX51_ECSPI_TEST only in LOOP mode. > LOOP mode can be set dynamically. This mean we should be able to set and clear the flag. > Currently only LOOP flag is used. I did not find any problems with writing 0 in the rest > fields of TEST register. Yes, I know writing 0 is harmless, but we never need to touch this register if SPI_LOOP flags not set, I'd like below: if (config->mode & SPI_LOOP) { lpb |= MX51_ECSPI_LOOP; writel(lgb, spi_imx->base + MX51_ECSPI_TEST); } > >> > >> /* > >> * Wait until the changes in the configuration register CONFIGREG > >> @@ -1276,12 +1287,13 @@ static int spi_imx_probe(struct platform_device *pdev) > >> spi_imx->bitbang.master->cleanup = spi_imx_cleanup; > >> spi_imx->bitbang.master->prepare_message = spi_imx_prepare_message; > >> spi_imx->bitbang.master->unprepare_message = spi_imx_unprepare_message; > >> - spi_imx->bitbang.master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; > >> + spi_imx->bitbang.master->mode_bits = SPI_CPOL | SPI_CPHA | > >> + SPI_CS_HIGH; > > Any change? > Will be fixed in V3 > >> > >> - init_completion(&spi_imx->xfer_done); > >> + if (is_imx5x_ecspi(spi_imx)) > >> + spi_imx->bitbang.master->mode_bits |= SPI_LOOP; > >> > >> - spi_imx->devtype_data = of_id ? of_id->data : > >> - (struct spi_imx_devtype_data *) pdev->id_entry->driver_data; > >> + init_completion(&spi_imx->xfer_done); > >> > >> res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > >> spi_imx->base = devm_ioremap_resource(&pdev->dev, res); > >> -- > >> 2.5.2 > >> >