From patchwork Fri Aug 4 22:34:53 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 798098 X-Patchwork-Delegate: trini@ti.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; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="dXiGolx+"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xPMl436TSz9s1h for ; Sat, 5 Aug 2017 08:57:36 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 333FDC21DFA; Fri, 4 Aug 2017 22:48:24 +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_DNSWL_NONE, 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 74EA7C21FC3; Fri, 4 Aug 2017 22:36:27 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id F2250C21FBD; Fri, 4 Aug 2017 22:36:24 +0000 (UTC) Received: from mail-oi0-f52.google.com (mail-oi0-f52.google.com [209.85.218.52]) by lists.denx.de (Postfix) with ESMTPS id C68FCC21F67 for ; Fri, 4 Aug 2017 22:36:06 +0000 (UTC) Received: by mail-oi0-f52.google.com with SMTP id x3so27118241oia.1 for ; Fri, 04 Aug 2017 15:36:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=kih5iVfdJqM/4CJ23BxV5TUpbx7kzRf6DGrt+cs1Z/4=; b=dXiGolx+tnU6mQRl53klst6nFciyVcLwHCFHZf6OycVND+msm7asCZlFISyJ4QVa7w 5Pyqr1afwTrzn6pUbXAv+r4fJuV3zc8TmBciGY2vQs9t5q4tTIiCeX/IrY+Sx2CA6Qdq pn6J9y3AkDR4sJb8wzu6caKj6UaaI8lbywDu0mBXT3Zn4JtK/LANVe8YzJc/xDW/4kJZ ev2UMTzKgN8BoYOBwF+k/pFuKT8y+h7QYeGz9vtc+TqOn5KI0PFf9dzwy1M9yD688d1d utNAE1r8/aDbnSLxBU9Ozwn3dasKl9LxTHZ2oTKheSy7eubfJDPv2UjOephake02OeP6 rogQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=kih5iVfdJqM/4CJ23BxV5TUpbx7kzRf6DGrt+cs1Z/4=; b=fZ/IXDkm53PivAUpSbe4Z8eXQNLHlS3Okf+YrwdCzRVjrDshf1eQeb6st+b+FrvyGz 6AncqMsjWAFiwX9qvMwvV3fC5TqyRIIPET53K7BmHXrY+OZkthRMa3Y9QkfUe3wURjUt LS+cQ08LOAGbNjizbb6CYYpmGiYNEcTdC2vjw86ddRA79iH6wqZsb4gnVV+sT9V8qQPo 5Adn6sYWqrZAkrfGixgpZ+kligmSkX1LjVbf3CaJ1EgwuBgkb5qHRDpwFhTp6Cf9qC3K UStAosps0gAMRoCI1D0zB+HzL7kHLB9CWz1MEwDWeO8fQbTuDEWTC3Z4DGPkAmwQp4Bj Asaw== X-Gm-Message-State: AHYfb5hF35HA76P3A16s5IjS/3TrPVeVonUfWqCaMpw9PcuLyX7sAL7p DgA0KGguK3n/U7oC X-Received: by 10.202.66.7 with SMTP id p7mr3074037oia.162.1501886165374; Fri, 04 Aug 2017 15:36:05 -0700 (PDT) Received: from kiwi.bld.corp.google.com ([100.101.164.89]) by smtp.gmail.com with ESMTPSA id a195sm4388068oih.3.2017.08.04.15.36.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 04 Aug 2017 15:36:04 -0700 (PDT) Received: by kiwi.bld.corp.google.com (Postfix, from userid 121222) id 4BCF81407B8; Fri, 4 Aug 2017 16:36:04 -0600 (MDT) From: Simon Glass To: U-Boot Mailing List Date: Fri, 4 Aug 2017 16:34:53 -0600 Message-Id: <20170804223506.105306-30-sjg@chromium.org> X-Mailer: git-send-email 2.14.0.rc1.383.gd1ce394fe2-goog In-Reply-To: <20170804223506.105306-1-sjg@chromium.org> References: <20170804223506.105306-1-sjg@chromium.org> Cc: Stefan Roese , Tom Rini Subject: [U-Boot] [PATCH v2 29/42] gpio: Drop sx151x driver 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This driver is not used in U-Boot. Drop it and its associated CONFIG options. Signed-off-by: Simon Glass Reviewed-by: Bin Meng Reviewed-by: Philipp Tomsich --- Changes in v2: - Drop include/sx151x.h also drivers/gpio/Makefile | 1 - drivers/gpio/sx151x.c | 242 ------------------------------------------- include/sx151x.h | 17 --- scripts/config_whitelist.txt | 3 - 4 files changed, 263 deletions(-) delete mode 100644 drivers/gpio/sx151x.c delete mode 100644 include/sx151x.h diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index 8937e99b47..1396467ab6 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -45,7 +45,6 @@ obj-$(CONFIG_BCM2835_GPIO) += bcm2835_gpio.o obj-$(CONFIG_XILINX_GPIO) += xilinx_gpio.o obj-$(CONFIG_ADI_GPIO2) += adi_gpio2.o obj-$(CONFIG_TCA642X) += tca642x.o -oby-$(CONFIG_SX151X) += sx151x.o obj-$(CONFIG_SUNXI_GPIO) += sunxi_gpio.o obj-$(CONFIG_LPC32XX_GPIO) += lpc32xx_gpio.o obj-$(CONFIG_STM32_GPIO) += stm32_gpio.o diff --git a/drivers/gpio/sx151x.c b/drivers/gpio/sx151x.c deleted file mode 100644 index 167cf40c71..0000000000 --- a/drivers/gpio/sx151x.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * (C) Copyright 2013 - * Viktar Palstsiuk, Promwad, viktar.palstsiuk@promwad.com - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -/* - * Driver for Semtech SX151x SPI GPIO Expanders - */ - -#include -#include -#include - -#ifndef CONFIG_SX151X_SPI_BUS -#define CONFIG_SX151X_SPI_BUS 0 -#endif - -/* - * The SX151x registers - */ - -#ifdef CONFIG_SX151X_GPIO_COUNT_8 -/* 8bit: SX1511 */ -#define SX151X_REG_DIR 0x07 -#define SX151X_REG_DATA 0x08 -#else -/* 16bit: SX1512 */ -#define SX151X_REG_DIR 0x0F -#define SX151X_REG_DATA 0x11 -#endif -#define SX151X_REG_RESET 0x7D - -static int sx151x_spi_write(int chip, unsigned char reg, unsigned char val) -{ - struct spi_slave *slave; - unsigned char buf[2]; - int ret; - - slave = spi_setup_slave(CONFIG_SX151X_SPI_BUS, chip, 1000000, - SPI_MODE_0); - if (!slave) - return 0; - - spi_claim_bus(slave); - - buf[0] = reg; - buf[1] = val; - - ret = spi_xfer(slave, 16, buf, NULL, SPI_XFER_BEGIN | SPI_XFER_END); - if (ret < 0) - printf("spi%d.%d write fail: can't write %02x to %02x: %d\n", - CONFIG_SX151X_SPI_BUS, chip, val, reg, ret); - else - printf("spi%d.%d write 0x%02x to register 0x%02x\n", - CONFIG_SX151X_SPI_BUS, chip, val, reg); - spi_release_bus(slave); - spi_free_slave(slave); - - return ret; -} - -static int sx151x_spi_read(int chip, unsigned char reg) -{ - struct spi_slave *slave; - int ret; - - slave = spi_setup_slave(CONFIG_SX151X_SPI_BUS, chip, 1000000, - SPI_MODE_0); - if (!slave) - return 0; - - spi_claim_bus(slave); - - ret = spi_w8r8(slave, reg | 0x80); - if (ret < 0) - printf("spi%d.%d read fail: can't read %02x: %d\n", - CONFIG_SX151X_SPI_BUS, chip, reg, ret); - else - printf("spi%d.%d read register 0x%02x: 0x%02x\n", - CONFIG_SX151X_SPI_BUS, chip, reg, ret); - - spi_release_bus(slave); - spi_free_slave(slave); - - return ret; -} - -static inline void sx151x_find_cfg(int gpio, unsigned char *reg, unsigned char *mask) -{ - *reg -= gpio / 8; - *mask = 1 << (gpio % 8); -} - -static int sx151x_write_cfg(int chip, unsigned char gpio, unsigned char reg, int val) -{ - unsigned char mask; - unsigned char data; - int ret; - - sx151x_find_cfg(gpio, ®, &mask); - ret = sx151x_spi_read(chip, reg); - if (ret < 0) - return ret; - else - data = ret; - data &= ~mask; - data |= (val << (gpio % 8)) & mask; - return sx151x_spi_write(chip, reg, data); -} - -int sx151x_get_value(int chip, int gpio) -{ - unsigned char reg = SX151X_REG_DATA; - unsigned char mask; - int ret; - - sx151x_find_cfg(gpio, ®, &mask); - ret = sx151x_spi_read(chip, reg); - if (ret >= 0) - ret = (ret & mask) != 0 ? 1 : 0; - - return ret; -} - -int sx151x_set_value(int chip, int gpio, int val) -{ - return sx151x_write_cfg(chip, gpio, SX151X_REG_DATA, (val ? 1 : 0)); -} - -int sx151x_direction_input(int chip, int gpio) -{ - return sx151x_write_cfg(chip, gpio, SX151X_REG_DIR, 1); -} - -int sx151x_direction_output(int chip, int gpio) -{ - return sx151x_write_cfg(chip, gpio, SX151X_REG_DIR, 0); -} - -int sx151x_reset(int chip) -{ - int err; - - err = sx151x_spi_write(chip, SX151X_REG_RESET, 0x12); - if (err < 0) - return err; - - err = sx151x_spi_write(chip, SX151X_REG_RESET, 0x34); - return err; -} - -#ifdef CONFIG_CMD_SX151X - -int do_sx151x(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - int ret = CMD_RET_USAGE, chip = 0, gpio = 0, val = 0; - - if (argc < 3) - return CMD_RET_USAGE; - - /* arg2 used as chip number */ - chip = simple_strtoul(argv[2], NULL, 10); - - if (strcmp(argv[1], "reset") == 0) { - ret = sx151x_reset(chip); - if (!ret) { - printf("Device at spi%d.%d was reset\n", - CONFIG_SX151X_SPI_BUS, chip); - } - return ret; - } - - if (argc < 4) - return CMD_RET_USAGE; - - /* arg3 used as gpio number */ - gpio = simple_strtoul(argv[3], NULL, 10); - - if (strcmp(argv[1], "get") == 0) { - ret = sx151x_get_value(chip, gpio); - if (ret < 0) - printf("Failed to get value at spi%d.%d gpio %d\n", - CONFIG_SX151X_SPI_BUS, chip, gpio); - else { - printf("Value at spi%d.%d gpio %d is %d\n", - CONFIG_SX151X_SPI_BUS, chip, gpio, ret); - ret = 0; - } - return ret; - } - - if (argc < 5) - return CMD_RET_USAGE; - - /* arg4 used as value or direction */ - val = simple_strtoul(argv[4], NULL, 10); - - if (strcmp(argv[1], "set") == 0) { - ret = sx151x_set_value(chip, gpio, val); - if (ret < 0) - printf("Failed to set value at spi%d.%d gpio %d\n", - CONFIG_SX151X_SPI_BUS, chip, gpio); - else - printf("New value at spi%d.%d gpio %d is %d\n", - CONFIG_SX151X_SPI_BUS, chip, gpio, val); - return ret; - } else if (strcmp(argv[1], "dir") == 0) { - if (val == 0) - ret = sx151x_direction_output(chip, gpio); - else - ret = sx151x_direction_input(chip, gpio); - - if (ret < 0) - printf("Failed to set direction of spi%d.%d gpio %d\n", - CONFIG_SX151X_SPI_BUS, chip, gpio); - else - printf("New direction of spi%d.%d gpio %d is %d\n", - CONFIG_SX151X_SPI_BUS, chip, gpio, val); - return ret; - } - - printf("Please see usage\n"); - - return ret; -} - -U_BOOT_CMD( - sx151x, 5, 1, do_sx151x, - "sx151x gpio access", - "dir chip gpio 0|1\n" - " - set gpio direction (0 for output, 1 for input)\n" - "sx151x get chip gpio\n" - " - get gpio value\n" - "sx151x set chip gpio 0|1\n" - " - set gpio value\n" - "sx151x reset chip\n" - " - reset chip" -); - -#endif /* CONFIG_CMD_SX151X */ diff --git a/include/sx151x.h b/include/sx151x.h deleted file mode 100644 index be42b0681b..0000000000 --- a/include/sx151x.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * (C) Copyright 2013 - * Viktar Palstsiuk, Promwad, viktar.palstsiuk@promwad.com - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#ifndef __SX151X_H_ -#define __SX151X_H_ - -int sx151x_get_value(int chip, int gpio); -int sx151x_set_value(int chip, int gpio, int val); -int sx151x_direction_input(int chip, int gpio); -int sx151x_direction_output(int chip, int gpio); -int sx151x_reset(int chip); - -#endif /* __SX151X_H_ */ diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index e89099472c..f5ec487668 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -296,7 +296,6 @@ CONFIG_CM922T_XA10 CONFIG_CMDLINE_EDITING CONFIG_CMDLINE_PS_SUPPORT CONFIG_CMDLINE_TAG -CONFIG_CMD_SX151X CONFIG_CMD_TCA642X CONFIG_CMD_TERMINAL CONFIG_CMD_TFTP @@ -2338,8 +2337,6 @@ CONFIG_SUPPORT_EMMC_RPMB CONFIG_SUPPORT_RAW_INITRD CONFIG_SUPPORT_VFAT CONFIG_SUVD3 -CONFIG_SX151X_GPIO_COUNT_8 -CONFIG_SX151X_SPI_BUS CONFIG_SXNI855T CONFIG_SYSCOUNTER_TIMER CONFIG_SYSFLAGS_ADDR