Drop three-wire serial (TWS) support
authorSimon Glass <sjg@chromium.org>
Wed, 17 May 2017 09:25:04 +0000 (03:25 -0600)
committerTom Rini <trini@konsulko.com>
Mon, 22 May 2017 12:37:10 +0000 (08:37 -0400)
This subsystem has not been converted to driver model, there is only one
driver and only one board that uses it. Drop it and its CONFIG option.

Also drop the rtc4543 RTC driver since it uses TWS.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
configs/inka4x0_defconfig
drivers/Makefile
drivers/rtc/Makefile
drivers/rtc/rtc4543.c [deleted file]
drivers/twserial/Makefile [deleted file]
drivers/twserial/soft_tws.c [deleted file]
include/configs/inka4x0.h
include/tws.h [deleted file]
scripts/config_whitelist.txt

index 174719c3675aa87f50e130f2f6ee0ddbcf15ae0d..9b30244e3c2abc1f6bbf6510fa6d8977d044977c 100644 (file)
@@ -8,7 +8,6 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_SNTP=y
-CONFIG_CMD_DATE=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_MAC_PARTITION=y
index 64c39d3a3ef9e7d73e659da18924548fc7e3f2ea..f16d7fdb4f7a174518cae1a54dc3a16e4d283a2d 100644 (file)
@@ -87,7 +87,6 @@ obj-y += spmi/
 obj-y += sysreset/
 obj-y += timer/
 obj-y += tpm/
-obj-y += twserial/
 obj-y += video/
 obj-y += watchdog/
 obj-$(CONFIG_QE) += qe/
index 87c3d9cae2002318a11457c895968399dd9d4db5..438681da7a4cb852e2e6fe2b24d4c29dabdfdcb0 100644 (file)
@@ -48,7 +48,6 @@ obj-$(CONFIG_RTC_PCF2127) += pcf2127.o
 obj-$(CONFIG_RTC_PL031) += pl031.o
 obj-$(CONFIG_RTC_PT7C4338) += pt7c4338.o
 obj-$(CONFIG_RTC_RS5C372A) += rs5c372.o
-obj-$(CONFIG_RTC_RTC4543) += rtc4543.o
 obj-$(CONFIG_RTC_RV3029) += rv3029.o
 obj-$(CONFIG_RTC_RX8025) += rx8025.o
 obj-$(CONFIG_RTC_S3C24X0) += s3c24x0_rtc.o
diff --git a/drivers/rtc/rtc4543.c b/drivers/rtc/rtc4543.c
deleted file mode 100644 (file)
index 8d36edd..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * (C) Copyright 2008, 2009
- * Andreas Pfefferle, DENX Software Engineering, ap@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-#include <asm/io.h>
-#include <common.h>
-#include <command.h>
-#include <config.h>
-#include <rtc.h>
-#include <tws.h>
-
-#if defined(CONFIG_CMD_DATE)
-
-/*
- * Note: The acrobatics below is due to the hideously ingenius idea of
- * the chip designers.  As the chip does not allow register
- * addressing, all values need to be read and written in one go.  Sure
- * enough, the 'wday' field (0-6) is transferred using the economic
- * number of 4 bits right in the middle of the packet.....
- */
-
-int rtc_get(struct rtc_time *tm)
-{
-       int rel = 0;
-       uchar buffer[7];
-
-       memset(buffer, 0, 7);
-
-       /* Read 52 bits into our buffer */
-       tws_read(buffer, 52);
-
-       tm->tm_sec  = bcd2bin( buffer[0] & 0x7F);
-       tm->tm_min  = bcd2bin( buffer[1] & 0x7F);
-       tm->tm_hour = bcd2bin( buffer[2] & 0x3F);
-       tm->tm_wday = bcd2bin( buffer[3] & 0x07);
-       tm->tm_mday = bcd2bin((buffer[3] & 0xF0) >> 4 | (buffer[4] & 0x0F) << 4);
-       tm->tm_mon  = bcd2bin((buffer[4] & 0x30) >> 4 | (buffer[5] & 0x0F) << 4);
-       tm->tm_year = bcd2bin((buffer[5] & 0xF0) >> 4 | (buffer[6] & 0x0F) << 4) + 2000;
-       tm->tm_yday = 0;
-       tm->tm_isdst = 0;
-
-       if (tm->tm_sec & 0x80) {
-               puts("### Warning: RTC Low Voltage - date/time not reliable\n");
-               rel = -1;
-       }
-
-       debug("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",
-               tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_wday,
-               tm->tm_hour, tm->tm_min, tm->tm_sec);
-
-       return rel;
-}
-
-int rtc_set(struct rtc_time *tm)
-{
-       uchar buffer[7];
-       uchar tmp;
-
-       debug("Set DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",
-               tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_wday,
-               tm->tm_hour, tm->tm_min, tm->tm_sec);
-
-       memset(buffer, 0, 7);
-       buffer[0] = bin2bcd(tm->tm_sec);
-       buffer[1] = bin2bcd(tm->tm_min);
-       buffer[2] = bin2bcd(tm->tm_hour);
-       buffer[3] = bin2bcd(tm->tm_wday);
-       tmp = bin2bcd(tm->tm_mday);
-       buffer[3] |= (tmp & 0x0F) << 4;
-       buffer[4] =  (tmp & 0xF0) >> 4;
-       tmp = bin2bcd(tm->tm_mon);
-       buffer[4] |= (tmp & 0x0F) << 4;
-       buffer[5] =  (tmp & 0xF0) >> 4;
-       tmp = bin2bcd(tm->tm_year  % 100);
-       buffer[5] |= (tmp & 0x0F) << 4;
-       buffer[6] =  (tmp & 0xF0) >> 4;
-
-       /* Write the resulting 52 bits to device */
-       tws_write(buffer, 52);
-
-       return 0;
-}
-
-void rtc_reset(void)
-{
-       struct rtc_time tmp;
-
-       tmp.tm_sec = 0;
-       tmp.tm_min = 0;
-       tmp.tm_hour = 0;
-       tmp.tm_wday = 4;
-       tmp.tm_mday = 1;
-       tmp.tm_mon = 1;
-       tmp.tm_year = 2000;
-       rtc_set(&tmp);
-}
-
-#endif
diff --git a/drivers/twserial/Makefile b/drivers/twserial/Makefile
deleted file mode 100644 (file)
index 7cc7c4d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# (C) Copyright 2009
-# Detlev Zundel, DENX Software Engineering, dzu@denx.de.
-#
-# SPDX-License-Identifier:     GPL-2.0+
-#
-
-obj-$(CONFIG_SOFT_TWS) += soft_tws.o
diff --git a/drivers/twserial/soft_tws.c b/drivers/twserial/soft_tws.c
deleted file mode 100644 (file)
index d0bf93d..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * (C) Copyright 2009
- * Detlev Zundel, DENX Software Engineering, dzu@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-#define TWS_IMPLEMENTATION
-#include <common.h>
-
-/*=====================================================================*/
-/*                         Public Functions                            */
-/*=====================================================================*/
-
-/*-----------------------------------------------------------------------
- * Read bits
- */
-int tws_read(uchar *buffer, int len)
-{
-       int rem = len;
-       uchar accu, shift;
-
-       debug("tws_read: buffer %p len %d\n", buffer, len);
-
-       /* Configure the data pin for input */
-       tws_data_config_output(0);
-
-       /* Disable WR, i.e. setup a read */
-       tws_wr(0);
-       udelay(1);
-
-       /* Rise CE */
-       tws_ce(1);
-       udelay(1);
-
-       for (; rem > 0; ) {
-               for (shift = 0, accu = 0;
-                    (rem > 0) && (shift < 8);
-                    rem--, shift++) {
-                       tws_clk(1);
-                       udelay(10);
-                       accu |= (tws_data_read() << shift); /* LSB first */
-                       tws_clk(0);
-                       udelay(10);
-               }
-               *buffer++ = accu;
-       }
-
-       /* Lower CE */
-       tws_ce(0);
-
-       return len - rem;
-}
-
-
-/*-----------------------------------------------------------------------
- * Write bits
- */
-int tws_write(uchar *buffer, int len)
-{
-       int rem = len;
-       uchar accu, shift;
-
-       debug("tws_write: buffer %p len %d\n", buffer, len);
-
-       /* Configure the data pin for output */
-       tws_data_config_output(1);
-
-       /* Enable WR, i.e. setup a write */
-       tws_wr(1);
-       udelay(1);
-
-       /* Rise CE */
-       tws_ce(1);
-       udelay(1);
-
-       for (; rem > 0; ) {
-               for (shift = 0, accu = *buffer++;
-                    (rem > 0) && (shift < 8);
-                    rem--, shift++) {
-                       tws_data(accu & 0x01); /* LSB first */
-                       tws_clk(1);
-                       udelay(10);
-                       tws_clk(0);
-                       udelay(10);
-                       accu >>= 1;
-               }
-       }
-
-       /* Lower CE */
-       tws_ce(0);
-
-       return len - rem;
-}
index 5ee9c2bcb48cfec61733c23ba5645aaa5bac5838..3bdab3310bc3634d78aa5ced079da13fc855c290 100644 (file)
  */
 #define CONFIG_SYS_GPS_PORT_CONFIG     0x01501444
 
-/*
- * RTC configuration
- */
-#define CONFIG_RTC_RTC4543     1       /* use external RTC */
-
-/*
- * Software (bit-bang) three wire serial configuration
- *
- * Note that we need the ifdefs because otherwise compilation of
- * mkimage.c fails.
- */
-#define CONFIG_SOFT_TWS                1
-
-#ifdef TWS_IMPLEMENTATION
-#include <mpc5xxx.h>
-#include <asm/io.h>
-
-#define TWS_CE         MPC5XXX_GPIO_WKUP_PSC1_4 /* GPIO_WKUP_0 */
-#define TWS_WR         MPC5XXX_GPIO_WKUP_PSC2_4 /* GPIO_WKUP_1 */
-#define TWS_DATA       MPC5XXX_GPIO_SINT_PSC3_4 /* GPIO_SINT_0 */
-#define TWS_CLK                MPC5XXX_GPIO_SINT_PSC3_5 /* GPIO_SINT_1 */
-
-static inline void tws_ce(unsigned bit)
-{
-       struct mpc5xxx_wu_gpio *wu_gpio =
-               (struct mpc5xxx_wu_gpio *)MPC5XXX_WU_GPIO;
-       if (bit)
-               setbits_8(&wu_gpio->dvo, TWS_CE);
-       else
-               clrbits_8(&wu_gpio->dvo, TWS_CE);
-}
-
-static inline void tws_wr(unsigned bit)
-{
-       struct mpc5xxx_wu_gpio *wu_gpio =
-               (struct mpc5xxx_wu_gpio *)MPC5XXX_WU_GPIO;
-       if (bit)
-               setbits_8(&wu_gpio->dvo, TWS_WR);
-       else
-               clrbits_8(&wu_gpio->dvo, TWS_WR);
-}
-
-static inline void tws_clk(unsigned bit)
-{
-       struct mpc5xxx_gpio *gpio =
-               (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
-       if (bit)
-               setbits_8(&gpio->sint_dvo, TWS_CLK);
-       else
-               clrbits_8(&gpio->sint_dvo, TWS_CLK);
-}
-
-static inline void tws_data(unsigned bit)
-{
-       struct mpc5xxx_gpio *gpio =
-               (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
-       if (bit)
-               setbits_8(&gpio->sint_dvo, TWS_DATA);
-       else
-               clrbits_8(&gpio->sint_dvo, TWS_DATA);
-}
-
-static inline unsigned tws_data_read(void)
-{
-       struct mpc5xxx_gpio *gpio =
-                       (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
-       return !!(in_8(&gpio->sint_ival) & TWS_DATA);
-}
-
-static inline void tws_data_config_output(unsigned output)
-{
-       struct mpc5xxx_gpio *gpio =
-               (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
-       if (output)
-               setbits_8(&gpio->sint_ddr, TWS_DATA);
-       else
-               clrbits_8(&gpio->sint_ddr, TWS_DATA);
-}
-#endif /* TWS_IMPLEMENTATION */
-
 /*
  * Miscellaneous configurable options
  */
diff --git a/include/tws.h b/include/tws.h
deleted file mode 100644 (file)
index 7dd5268..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * (C) Copyright 2009
- * Detlev Zundel, DENX Software Engineering, dzu@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-#ifndef _TWS_H_
-#define _TWS_H_
-
-/*
- * Read/Write interface:
- *   buffer:  Where to read/write the data
- *   len:     How many bits to read/write
- *
- *   Returns: 0 on success, not 0 on failure
- */
-int tws_read(uchar *buffer, int len);
-int tws_write(uchar *buffer, int len);
-
-#endif /* _TWS_H_ */
index da5aa39d32d5decaf15741b9b544d040d8af07a4..93a4753732a821f0a54352bc58a30dec2647089b 100644 (file)
@@ -2346,7 +2346,6 @@ CONFIG_RTC_MV
 CONFIG_RTC_MXS
 CONFIG_RTC_PCF8563
 CONFIG_RTC_PT7C4338
-CONFIG_RTC_RTC4543
 CONFIG_RTC_RV3029
 CONFIG_RTC_RX8025
 CONFIG_RTC_X1205
@@ -2579,7 +2578,6 @@ CONFIG_SOFT_I2C_GPIO_SCL
 CONFIG_SOFT_I2C_GPIO_SDA
 CONFIG_SOFT_I2C_READ_REPEATED_START
 CONFIG_SOFT_SPI
-CONFIG_SOFT_TWS
 CONFIG_SOURCE
 CONFIG_SPARSE_RCU_POINTER
 CONFIG_SPDDRAM_SILENT