From patchwork Fri Aug 31 08:55:11 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dirk Behme X-Patchwork-Id: 1391611 Return-Path: X-Original-To: patchwork-spi-devel-general@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from lists.sourceforge.net (lists.sourceforge.net [216.34.181.88]) by patchwork1.kernel.org (Postfix) with ESMTP id 78BBF3FC85 for ; Fri, 31 Aug 2012 08:56:01 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=sfs-ml-4.v29.ch3.sourceforge.com) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1T7N1D-0007ru-NV; Fri, 31 Aug 2012 08:55:59 +0000 Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1T7N1C-0007ro-5e for spi-devel-general@lists.sourceforge.net; Fri, 31 Aug 2012 08:55:58 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of de.bosch.com designates 139.15.237.6 as permitted sender) client-ip=139.15.237.6; envelope-from=Dirk.Behme@de.bosch.com; helo=smtp2-v.fe.bosch.de; Received: from smtp2-v.fe.bosch.de ([139.15.237.6]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) id 1T7N1B-0000cw-BZ for spi-devel-general@lists.sourceforge.net; Fri, 31 Aug 2012 08:55:58 +0000 Received: from vsmta11.fe.internet.bosch.com (unknown [10.4.98.51]) by imta23.fe.bosch.de (Postfix) with ESMTP id D79F928C0229 for ; Fri, 31 Aug 2012 10:55:50 +0200 (CEST) Received: from localhost (vsgw3.fe.internet.bosch.com [10.4.98.16]) by vsmta11.fe.internet.bosch.com (Postfix) with SMTP id B4E1A43C06AD for ; Fri, 31 Aug 2012 10:55:50 +0200 (CEST) Received: from FE-HUB1000.de.bosch.com (10.4.103.107) by si-hub05.de.bosch.com (10.3.153.47) with Microsoft SMTP Server (TLS) id 8.3.264.0; Fri, 31 Aug 2012 10:55:39 +0200 Received: from hi-z5661.hi.de.bosch.com (10.34.219.178) by FE-HUB1000.de.bosch.com (10.4.103.107) with Microsoft SMTP Server id 14.2.309.2; Fri, 31 Aug 2012 10:55:38 +0200 Received: from localhost.localdomain (localhost [127.0.0.1]) by hi-z5661.hi.de.bosch.com (Postfix) with ESMTP id 2E0C04092C; Fri, 31 Aug 2012 10:55:38 +0200 (CEST) From: Dirk Behme To: , Grant Likely , , Rob Herring Subject: [PATCH] spi/imx: set the inactive state of the clock according to the clock polarity Date: Fri, 31 Aug 2012 10:55:11 +0200 Message-ID: <1346403311-25080-1-git-send-email-dirk.behme@de.bosch.com> X-Mailer: git-send-email 1.7.0.4 MIME-Version: 1.0 X-Spam-Score: -0.8 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain -0.0 SPF_PASS SPF: sender matches SPF record 0.7 AWL AWL: From: address is in the auto white-list X-Headers-End: 1T7N1B-0000cw-BZ Cc: Knut, Hui Wang , Shawn Guo , Wohlrab X-BeenThere: spi-devel-general@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: Linux SPI core/device drivers discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spi-devel-general-bounces@lists.sourceforge.net From: Knut Wohlrab There are SPI devices which need a SPI clock with active low polarity and high inactive state. Add the setting of the inactive state ECSPIx_CONFIGREG:SCLK CTL according to the clock polarity ECSPIx_CONFIGREG:SCLK POL: DT without "spi-cpol" = 0 = clock active high polarity = inactive state low DT with "spi-cpol" = 1 = clock active low polarity = inactive state high Signed-off-by: Knut Wohlrab Acked-by: Shawn Guo Signed-off-by: Dirk Behme --- Question: Are there real world examples for a need of an individual setting of clock polarity/inactive state? drivers/spi/spi-imx.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index e834ff8..d64655b 100644 --- a/drivers/spi/spi-imx.c +++ b/drivers/spi/spi-imx.c @@ -197,6 +197,7 @@ static unsigned int spi_imx_clkdiv_2(unsigned int fin, #define MX51_ECSPI_CONFIG_SCLKPOL(cs) (1 << ((cs) + 4)) #define MX51_ECSPI_CONFIG_SBBCTRL(cs) (1 << ((cs) + 8)) #define MX51_ECSPI_CONFIG_SSBPOL(cs) (1 << ((cs) + 12)) +#define MX51_ECSPI_CONFIG_SCLKCTL(cs) (1 << ((cs) + 20)) #define MX51_ECSPI_INT 0x10 #define MX51_ECSPI_INT_TEEN (1 << 0) @@ -287,9 +288,10 @@ static int __maybe_unused mx51_ecspi_config(struct spi_imx_data *spi_imx, if (config->mode & SPI_CPHA) cfg |= MX51_ECSPI_CONFIG_SCLKPHA(config->cs); - if (config->mode & SPI_CPOL) + if (config->mode & SPI_CPOL) { cfg |= MX51_ECSPI_CONFIG_SCLKPOL(config->cs); - + cfg |= MX51_ECSPI_CONFIG_SCLKCTL(config->cs); + } if (config->mode & SPI_CS_HIGH) cfg |= MX51_ECSPI_CONFIG_SSBPOL(config->cs);