From patchwork Tue Nov 20 12:48:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1000483 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="iyjrKvJb"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42zmML0CtTz9s0n for ; Wed, 21 Nov 2018 00:12:13 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 9E53EC2206B; Tue, 20 Nov 2018 13:02:00 +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 9941BC220AA; Tue, 20 Nov 2018 12:53:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AE679C22097; Tue, 20 Nov 2018 12:50:01 +0000 (UTC) Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) by lists.denx.de (Postfix) with ESMTPS id B72E4C220BE for ; Tue, 20 Nov 2018 12:49:56 +0000 (UTC) Received: by mail-pl1-f195.google.com with SMTP id t13so946161ply.13 for ; Tue, 20 Nov 2018 04:49:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3+zrc8YXdu1YPs3Ta/qcyBsbCfSMa9I+/ZdZimt8nJQ=; b=iyjrKvJbevw1CKe66T+WqPeoxaCt8b12vRQV4t7CBkCsNj1hvvNcm7TxHnDTqM7Mo+ Sl37nEU6YQs9yEKYsScOCyR3Kqy1PsQzbHeqfez2Pcp2m3+4/o3ZrLvTH2aD/pBuXLG2 +6h3ueaRQR3bAj2Ts47P+qvJzo5f20QRiCvyQ= 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=3+zrc8YXdu1YPs3Ta/qcyBsbCfSMa9I+/ZdZimt8nJQ=; b=pdmK1Lbp6dQUDAD53gX9AAeHbgGoffWJJxwqyjc0c/ZupZIUYBh3btC/QahBLu8lY1 E1pIFMemGQkFRo0FpCuZokSKf+UIP2g/NE1xHoULRDOItGVhJ/AK356wKtxy+VyMe1M2 KM7nusEPATjnJaroxWI27oWOmdo2s5TTsoJdarTJLS5mczxWXX7JSTJqcidPapXgM/Kv 2y1bHbed8pUqMXxr1aedcAg6DD3FUEv+C7XRu9IYHjdj6vguBuUFTUWIrYS5/fYoswq4 Pz1mam/LJPIqHD3dgx5DPp4ssAOfA6Nh/Pm+ZMp9mW2dWLIGKZrcdu0J2waDY+l7Wf2e qQ8Q== X-Gm-Message-State: AA+aEWbukthDkl+2hA8qClSndsZhnhm/GdqgvgsGiOnLpzzpkThh29oL cymCAsr/XmyMFRLQiFmAYa0Tk994IIs= X-Google-Smtp-Source: AFSGD/V42PIGar1HY5z10UPzK37xu7Jvnk61GJzq+VFolJ8XmtkB2Vw0kGyPKGyZ6+ug+nHVm0dXbw== X-Received: by 2002:a17:902:8c91:: with SMTP id t17mr2020916plo.119.1542718195053; Tue, 20 Nov 2018 04:49:55 -0800 (PST) Received: from localhost.localdomain ([115.97.190.86]) by smtp.gmail.com with ESMTPSA id b5sm34880349pfc.150.2018.11.20.04.49.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Nov 2018 04:49:54 -0800 (PST) From: Jagan Teki To: u-boot@lists.denx.de Date: Tue, 20 Nov 2018 18:18:10 +0530 Message-Id: <20181120124814.23293-31-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20181120124814.23293-1-jagan@amarulasolutions.com> References: <20181120124814.23293-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini Subject: [U-Boot] [PATCH 30/34] spi: Zap mxc_spi 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 - mxc_spi driver - SPI, SPI flash CONFIG-items - CMD_SPI, CMD_SF..etc Dropped becuase - no active updates - no dm conversion - no reponse for dm converted patch - driver-model migration expiry Signed-off-by: Jagan Teki --- Makefile | 2 +- drivers/spi/Makefile | 2 +- drivers/spi/mxc_spi.c | 123 ++---------------------------------------- drivers/spi/spi.c | 1 + 4 files changed, 6 insertions(+), 122 deletions(-) diff --git a/Makefile b/Makefile index 7c1d934493..3be3bb3118 100644 --- a/Makefile +++ b/Makefile @@ -920,7 +920,7 @@ ifeq ($(CONFIG_DM_I2C_COMPAT)$(CONFIG_SANDBOX),y) endif ifeq ($(CONFIG_DM_SPI),) ifeq ($(filter $(CONFIG_DAVINCI_SPI) $(CONFIG_KIRKWOOD_SPI) $(CONFIG_MPC8XXX_SPI) \ - $(CONFIG_TI_QSPI),y),y) + $(CONFIG_MXC_SPI) $(CONFIG_TI_QSPI),y),y) @echo "===================== WARNING ======================" @echo "This board uses SPI driver from drivers/spi/ without" @echo "enabling CONFIG_DM_SPI. Please enable CONFIG_DM_SPI" diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile index 09e22dc233..549d104016 100644 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile @@ -9,6 +9,7 @@ obj-y += spi-uclass.o obj-$(CONFIG_DAVINCI_SPI) += davinci_spi.o obj-$(CONFIG_KIRKWOOD_SPI) += kirkwood_spi.o obj-$(CONFIG_MPC8XXX_SPI) += mpc8xxx_spi.o +obj-$(CONFIG_MXC_SPI) += mxc_spi.o obj-$(CONFIG_SANDBOX) += spi-emul-uclass.o obj-$(CONFIG_SOFT_SPI) += soft_spi.o obj-$(CONFIG_SPI_MEM) += spi-mem.o @@ -32,7 +33,6 @@ obj-$(CONFIG_FSL_QSPI) += fsl_qspi.o obj-$(CONFIG_ICH_SPI) += ich.o obj-$(CONFIG_MT7621_SPI) += mt7621_spi.o obj-$(CONFIG_MVEBU_A3700_SPI) += mvebu_a3700_spi.o -obj-$(CONFIG_MXC_SPI) += mxc_spi.o obj-$(CONFIG_ATCSPI200_SPI) += atcspi200_spi.o obj-$(CONFIG_OMAP3_SPI) += omap3_spi.o obj-$(CONFIG_PIC32_SPI) += pic32_spi.o diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c index b2636909ce..f6c6685e7e 100644 --- a/drivers/spi/mxc_spi.c +++ b/drivers/spi/mxc_spi.c @@ -57,26 +57,6 @@ static inline struct mxc_spi_slave *to_mxc_spi_slave(struct spi_slave *slave) return container_of(slave, struct mxc_spi_slave, slave); } -static void mxc_spi_cs_activate(struct mxc_spi_slave *mxcs) -{ - if (CONFIG_IS_ENABLED(DM_SPI)) { - dm_gpio_set_value(&mxcs->ss, 1); - } else { - if (mxcs->gpio > 0) - gpio_set_value(mxcs->gpio, mxcs->ss_pol); - } -} - -static void mxc_spi_cs_deactivate(struct mxc_spi_slave *mxcs) -{ - if (CONFIG_IS_ENABLED(DM_SPI)) { - dm_gpio_set_value(&mxcs->ss, 0); - } else { - if (mxcs->gpio > 0) - gpio_set_value(mxcs->gpio, !(mxcs->ss_pol)); - } -} - u32 get_cspi_div(u32 div) { int i; @@ -345,7 +325,7 @@ static int mxc_spi_xfer_internal(struct mxc_spi_slave *mxcs, return -EINVAL; if (flags & SPI_XFER_BEGIN) - mxc_spi_cs_activate(mxcs); + dm_gpio_set_value(&mxcs->ss, 1); while (n_bytes > 0) { if (n_bytes < MAX_SPI_BYTES) @@ -366,9 +346,8 @@ static int mxc_spi_xfer_internal(struct mxc_spi_slave *mxcs, n_bytes -= blk_size; } - if (flags & SPI_XFER_END) { - mxc_spi_cs_deactivate(mxcs); - } + if (flags & SPI_XFER_END) + dm_gpio_set_value(&mxcs->ss, 0); return 0; } @@ -391,101 +370,6 @@ static int mxc_spi_claim_bus_internal(struct mxc_spi_slave *mxcs, int cs) return 0; } -#ifndef CONFIG_DM_SPI -int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout, - void *din, unsigned long flags) -{ - struct mxc_spi_slave *mxcs = to_mxc_spi_slave(slave); - - return mxc_spi_xfer_internal(mxcs, bitlen, dout, din, flags); -} - -/* - * Some SPI devices require active chip-select over multiple - * transactions, we achieve this using a GPIO. Still, the SPI - * controller has to be configured to use one of its own chipselects. - * To use this feature you have to implement board_spi_cs_gpio() to assign - * a gpio value for each cs (-1 if cs doesn't need to use gpio). - * You must use some unused on this SPI controller cs between 0 and 3. - */ -static int setup_cs_gpio(struct mxc_spi_slave *mxcs, - unsigned int bus, unsigned int cs) -{ - int ret; - - mxcs->gpio = board_spi_cs_gpio(bus, cs); - if (mxcs->gpio == -1) - return 0; - - gpio_request(mxcs->gpio, "spi-cs"); - ret = gpio_direction_output(mxcs->gpio, !(mxcs->ss_pol)); - if (ret) { - printf("mxc_spi: cannot setup gpio %d\n", mxcs->gpio); - return -EINVAL; - } - - return 0; -} - -static unsigned long spi_bases[] = { - MXC_SPI_BASE_ADDRESSES -}; - -struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, - unsigned int max_hz, unsigned int mode) -{ - struct mxc_spi_slave *mxcs; - int ret; - - if (bus >= ARRAY_SIZE(spi_bases)) - return NULL; - - if (max_hz == 0) { - printf("Error: desired clock is 0\n"); - return NULL; - } - - mxcs = spi_alloc_slave(struct mxc_spi_slave, bus, cs); - if (!mxcs) { - puts("mxc_spi: SPI Slave not allocated !\n"); - return NULL; - } - - mxcs->ss_pol = (mode & SPI_CS_HIGH) ? 1 : 0; - - ret = setup_cs_gpio(mxcs, bus, cs); - if (ret < 0) { - free(mxcs); - return NULL; - } - - mxcs->base = spi_bases[bus]; - mxcs->max_hz = max_hz; - mxcs->mode = mode; - - return &mxcs->slave; -} - -void spi_free_slave(struct spi_slave *slave) -{ - struct mxc_spi_slave *mxcs = to_mxc_spi_slave(slave); - - free(mxcs); -} - -int spi_claim_bus(struct spi_slave *slave) -{ - struct mxc_spi_slave *mxcs = to_mxc_spi_slave(slave); - - return mxc_spi_claim_bus_internal(mxcs, slave->cs); -} - -void spi_release_bus(struct spi_slave *slave) -{ - /* TODO: Shut the controller down */ -} -#else - static int mxc_spi_probe(struct udevice *bus) { struct mxc_spi_slave *plat = bus->platdata; @@ -575,4 +459,3 @@ U_BOOT_DRIVER(mxc_spi) = { .platdata_auto_alloc_size = sizeof(struct mxc_spi_slave), .probe = mxc_spi_probe, }; -#endif diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 8116193d27..5c13f85841 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -43,6 +43,7 @@ void *spi_do_alloc_slave(int offset, int size, unsigned int bus, defined(CONFIG_DAVINCI_SPI) || \ defined(CONFIG_KIRKWOOD_SPI) || \ defined(CONFIG_MPC8XXX_SPI) || \ + defined(CONFIG_MXC_SPI) || \ defined(CONFIG_TI_QSPI) void spi_cs_activate(struct spi_slave *slave) {