From patchwork Fri Apr 19 07:04:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1087966 X-Patchwork-Delegate: jagannadh.teki@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amarulasolutions.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amarulasolutions.com header.i=@amarulasolutions.com header.b="Pt7XfStU"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44ln6h1VYKz9s3l for ; Fri, 19 Apr 2019 17:05:16 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id D6B40C21DFB; Fri, 19 Apr 2019 07:05:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 1C408C21CB1; Fri, 19 Apr 2019 07:05:09 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4A3DBC21CB1; Fri, 19 Apr 2019 07:05:07 +0000 (UTC) Received: from mail-pg1-f193.google.com (mail-pg1-f193.google.com [209.85.215.193]) by lists.denx.de (Postfix) with ESMTPS id 9754FC21C8B for ; Fri, 19 Apr 2019 07:05:06 +0000 (UTC) Received: by mail-pg1-f193.google.com with SMTP id e6so2303272pgc.4 for ; Fri, 19 Apr 2019 00:05:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=fQmh1lvIuBunBIQvOfNYeS0Uvd0i31dwX1Kzc8s8jdc=; b=Pt7XfStUPcQZxar5mhl75+ZXUbxdKLqpOPeGxXYVFqi/eU8twkFIfUccLf/At+dQQO U7S84jho3g+arw3+bAgooBLCGWXVR2cj/l9IHoAPiUH/wsAcqJutvBjC635DzdYXdvwu 1ESzGqZsBSrhFitLF/xmRmAEB36rbxkoJtgP8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=fQmh1lvIuBunBIQvOfNYeS0Uvd0i31dwX1Kzc8s8jdc=; b=Ypa9NFSAjUsw56o/u+ImV46olmcgC2pO8wRjdMQsMm/X6Hw6I1iE35AYX6xKZuJnaL bDswRVqRUc2W+y+NS0H0dPwNEdOof9yQifp/kDX2d7Uakk+Y735WndH+VEcaA4n9J/FM paoioA4rhFnzkL+F/OKjONXQJEF9679Pz9Yt5f5cDQo7TXwnj6SdGegvQunjrV0JCvEw Un0lJTKN18yUAmbaMnsLt/nfdGeXMOgaJJjkVK0uzjFTQuQIURT/A2EfFWzw9P20x3+2 WzG7XRdhEckyAi6ERUeqDEGLhR7yipHeVf47Tyy0oKODR/fEgDD2RsjfRVjO/YCGaRbA Q6Aw== X-Gm-Message-State: APjAAAXkHN0YJdXeaTPxUctOO6LfxxJVRi2o6bxKzPig5grRe9jmOq2G dfGBjq2YKUNeJHgEyb6ZkOSkug== X-Google-Smtp-Source: APXvYqyEuOqGKbwPSiY/4Ulsq/Y4GWM6aeyHndNigmqXV2mI3HjGP4maEM7/0wjZoBp1eTxUYsck+A== X-Received: by 2002:aa7:8c56:: with SMTP id e22mr2221982pfd.155.1555657505122; Fri, 19 Apr 2019 00:05:05 -0700 (PDT) Received: from localhost.localdomain ([115.97.185.144]) by smtp.gmail.com with ESMTPSA id w189sm8391932pfw.147.2019.04.19.00.05.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Apr 2019 00:05:04 -0700 (PDT) From: Jagan Teki To: Tom Rini , u-boot@lists.denx.de Date: Fri, 19 Apr 2019 12:34:54 +0530 Message-Id: <20190419070454.9136-1-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 MIME-Version: 1.0 Cc: linux-amarula@amarulasolutions.com Subject: [U-Boot] [PATCH v3] spi: Zap soft_spi_legacy driver-related code X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Dropped - soft_spi_legacy driver - CONFIG_SOFT_SPI Dropped due to: - no active updates - no dm conversion - multiple pings for asking dm-conversion - driver-model migration expiry Cc: Vasily Khoruzhick Signed-off-by: Jagan Teki --- Changes for v3: - rebase on master drivers/spi/Kconfig | 12 +-- drivers/spi/Makefile | 1 - drivers/spi/soft_spi_legacy.c | 168 ---------------------------------- include/configs/MPC8349EMDS.h | 3 - include/configs/zipitz2.h | 1 - 5 files changed, 6 insertions(+), 179 deletions(-) delete mode 100644 drivers/spi/soft_spi_legacy.c diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 4095bf5950..8a86878fee 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -213,6 +213,12 @@ config SANDBOX_SPI }; }; +config SOFT_SPI + bool "Soft SPI driver" + help + Enable Soft SPI driver. This driver is to use GPIO simulate + the SPI protocol. + config SPI_SUNXI bool "Allwinner SoC SPI controllers" help @@ -301,12 +307,6 @@ config ZYNQMP_GQSPI endif # if DM_SPI -config SOFT_SPI - bool "Soft SPI driver" - help - Enable Soft SPI driver. This driver is to use GPIO simulate - the SPI protocol. - config MSCC_BB_SPI bool "MSCC bitbang SPI driver" depends on SOC_VCOREIII diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile index fd147447fe..be4b4c140d 100644 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile @@ -13,7 +13,6 @@ obj-$(CONFIG_TI_QSPI) += ti_qspi.o else obj-y += spi.o obj-$(CONFIG_SPI_MEM) += spi-mem-nodm.o -obj-$(CONFIG_SOFT_SPI) += soft_spi_legacy.o endif obj-$(CONFIG_ALTERA_SPI) += altera_spi.o diff --git a/drivers/spi/soft_spi_legacy.c b/drivers/spi/soft_spi_legacy.c deleted file mode 100644 index cc5ab5f991..0000000000 --- a/drivers/spi/soft_spi_legacy.c +++ /dev/null @@ -1,168 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * (C) Copyright 2002 - * Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com. - * - * Influenced by code from: - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - */ - -#include -#include - -#include - -/*----------------------------------------------------------------------- - * Definitions - */ - -#ifdef DEBUG_SPI -#define PRINTD(fmt,args...) printf (fmt ,##args) -#else -#define PRINTD(fmt,args...) -#endif - -struct soft_spi_slave { - struct spi_slave slave; - unsigned int mode; -}; - -static inline struct soft_spi_slave *to_soft_spi(struct spi_slave *slave) -{ - return container_of(slave, struct soft_spi_slave, slave); -} - -/*=====================================================================*/ -/* Public Functions */ -/*=====================================================================*/ - -struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, - unsigned int max_hz, unsigned int mode) -{ - struct soft_spi_slave *ss; - - if (!spi_cs_is_valid(bus, cs)) - return NULL; - - ss = spi_alloc_slave(struct soft_spi_slave, bus, cs); - if (!ss) - return NULL; - - ss->mode = mode; - - /* TODO: Use max_hz to limit the SCK rate */ - - return &ss->slave; -} - -void spi_free_slave(struct spi_slave *slave) -{ - struct soft_spi_slave *ss = to_soft_spi(slave); - - free(ss); -} - -int spi_claim_bus(struct spi_slave *slave) -{ -#ifdef CONFIG_SYS_IMMR - volatile immap_t *immr = (immap_t *)CONFIG_SYS_IMMR; -#endif - struct soft_spi_slave *ss = to_soft_spi(slave); - - /* - * Make sure the SPI clock is in idle state as defined for - * this slave. - */ - if (ss->mode & SPI_CPOL) - SPI_SCL(1); - else - SPI_SCL(0); - - return 0; -} - -void spi_release_bus(struct spi_slave *slave) -{ - /* Nothing to do */ -} - -/*----------------------------------------------------------------------- - * SPI transfer - * - * This writes "bitlen" bits out the SPI MOSI port and simultaneously clocks - * "bitlen" bits in the SPI MISO port. That's just the way SPI works. - * - * The source of the outgoing bits is the "dout" parameter and the - * destination of the input bits is the "din" parameter. Note that "dout" - * and "din" can point to the same memory location, in which case the - * input data overwrites the output data (since both are buffered by - * temporary variables, this is OK). - */ -int spi_xfer(struct spi_slave *slave, unsigned int bitlen, - const void *dout, void *din, unsigned long flags) -{ -#ifdef CONFIG_SYS_IMMR - volatile immap_t *immr = (immap_t *)CONFIG_SYS_IMMR; -#endif - struct soft_spi_slave *ss = to_soft_spi(slave); - uchar tmpdin = 0; - uchar tmpdout = 0; - const u8 *txd = dout; - u8 *rxd = din; - int cpol = ss->mode & SPI_CPOL; - int cpha = ss->mode & SPI_CPHA; - unsigned int j; - - PRINTD("spi_xfer: slave %u:%u dout %08X din %08X bitlen %u\n", - slave->bus, slave->cs, *(uint *)txd, *(uint *)rxd, bitlen); - - if (flags & SPI_XFER_BEGIN) - spi_cs_activate(slave); - - for(j = 0; j < bitlen; j++) { - /* - * Check if it is time to work on a new byte. - */ - if ((j % 8) == 0) { - if (txd) - tmpdout = *txd++; - else - tmpdout = 0; - if(j != 0) { - if (rxd) - *rxd++ = tmpdin; - } - tmpdin = 0; - } - - if (!cpha) - SPI_SCL(!cpol); - SPI_SDA(tmpdout & 0x80); - SPI_DELAY; - if (cpha) - SPI_SCL(!cpol); - else - SPI_SCL(cpol); - tmpdin <<= 1; - tmpdin |= SPI_READ; - tmpdout <<= 1; - SPI_DELAY; - if (cpha) - SPI_SCL(cpol); - } - /* - * If the number of bits isn't a multiple of 8, shift the last - * bits over to left-justify them. Then store the last byte - * read in. - */ - if (rxd) { - if ((bitlen % 8) != 0) - tmpdin <<= 8 - (bitlen % 8); - *rxd++ = tmpdin; - } - - if (flags & SPI_XFER_END) - spi_cs_deactivate(slave); - - return(0); -} diff --git a/include/configs/MPC8349EMDS.h b/include/configs/MPC8349EMDS.h index bda477cc16..a54f4ca251 100644 --- a/include/configs/MPC8349EMDS.h +++ b/include/configs/MPC8349EMDS.h @@ -320,9 +320,6 @@ #define CONFIG_SYS_FSL_I2C2_OFFSET 0x3100 #define CONFIG_SYS_I2C_NOPROBES { {0, 0x69} } -/* SPI */ -#undef CONFIG_SOFT_SPI /* SPI bit-banged */ - /* GPIOs. Used as SPI chip selects */ #define CONFIG_SYS_GPIO1_PRELIM #define CONFIG_SYS_GPIO1_DIR 0xC0000000 /* SPI CS on 0, LED on 1 */ diff --git a/include/configs/zipitz2.h b/include/configs/zipitz2.h index 24fea68a11..baf3e6e130 100644 --- a/include/configs/zipitz2.h +++ b/include/configs/zipitz2.h @@ -59,7 +59,6 @@ * SPI and LCD */ #ifdef CONFIG_CMD_SPI -#define CONFIG_SOFT_SPI #define CONFIG_LCD_ROTATION #define CONFIG_PXA_LCD #define CONFIG_LMS283GF05