drivers: i2c: Removed redundant i2c_nrf5 shim

After switching to TWI and TWIM drivers, old i2c_nrf5 shim
is no longer needed.

Signed-off-by: Mieszko Mierunski <mieszko.mierunski@nordicsemi.no>
diff --git a/drivers/i2c/CMakeLists.txt b/drivers/i2c/CMakeLists.txt
index df37120..59fbb73 100644
--- a/drivers/i2c/CMakeLists.txt
+++ b/drivers/i2c/CMakeLists.txt
@@ -7,7 +7,6 @@
 zephyr_library_sources_ifdef(CONFIG_I2C_ESP32		i2c_esp32.c)
 zephyr_library_sources_ifdef(CONFIG_I2C_GPIO		i2c_gpio.c)
 zephyr_library_sources_ifdef(CONFIG_I2C_MCUX		i2c_mcux.c)
-zephyr_library_sources_ifdef(CONFIG_I2C_NRF5		i2c_nrf5.c)
 zephyr_library_sources_ifdef(CONFIG_NRFX_TWI		i2c_nrfx_twi.c)
 zephyr_library_sources_ifdef(CONFIG_NRFX_TWIM		i2c_nrfx_twim.c)
 zephyr_library_sources_ifdef(CONFIG_I2C_QMSI		i2c_qmsi.c)
diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig
index 7d3465f..b9e9467 100644
--- a/drivers/i2c/Kconfig
+++ b/drivers/i2c/Kconfig
@@ -229,8 +229,6 @@
 
 source "drivers/i2c/Kconfig.gpio"
 
-source "drivers/i2c/Kconfig.nrf5"
-
 source "drivers/i2c/Kconfig.nrfx"
 
 source "drivers/i2c/Kconfig.qmsi"
diff --git a/drivers/i2c/Kconfig.nrf5 b/drivers/i2c/Kconfig.nrf5
deleted file mode 100644
index 9c855e5..0000000
--- a/drivers/i2c/Kconfig.nrf5
+++ /dev/null
@@ -1,58 +0,0 @@
-# Kconfig.nrf5 - NRF5 I2C configuration options
-#
-#
-# Copyright (c) 2018 Aapo Vienamo
-#
-# SPDX-License-Identifier: Apache-2.0
-#
-
-
-config I2C_NRF5
-	bool "NRF5 I2C driver"
-	depends on SOC_FAMILY_NRF
-	select GPIO
-	select HAS_DTS_I2C
-	default n
-	help
-	  This option enables the I2C driver for Nordic Semiconductor nRF5
-	  family processors.
-
-if I2C_NRF5
-
-if I2C_0
-
-config I2C_NRF5_0_GPIO_SDA_PIN
-	int "Port 0 SDA Pin Number"
-	range 0 31
-	depends on I2C_NRF5
-	help
-	  The GPIO pin to use for SDA.
-
-config I2C_NRF5_0_GPIO_SCL_PIN
-	int "Port 0 SCL Pin Number"
-	range 0 31
-	depends on I2C_NRF5
-	help
-	  The GPIO pin to use for SCL.
-
-endif # I2C_0
-
-if I2C_1
-
-config I2C_NRF5_1_GPIO_SDA_PIN
-	int "Port 1 SDA Pin Number"
-	range 0 31
-	depends on I2C_NRF5
-	help
-	  The GPIO pin to use for SDA.
-
-config I2C_NRF5_1_GPIO_SCL_PIN
-	int "Port 1 SCL Pin Number"
-	range 0 31
-	depends on I2C_NRF5
-	help
-	  The GPIO pin to use for SCL.
-
-endif # I2C_1
-
-endif # I2C_NRF5
diff --git a/drivers/i2c/i2c_nrf5.c b/drivers/i2c/i2c_nrf5.c
deleted file mode 100644
index 7e9678b..0000000
--- a/drivers/i2c/i2c_nrf5.c
+++ /dev/null
@@ -1,401 +0,0 @@
-/*
- * Copyright (c) 2016-2017 ARM Ltd.
- *
- * SPDX-License-Identifier: Apache-2.0
- */
-
-#include <errno.h>
-#include <i2c.h>
-#include <soc.h>
-#include <nrf.h>
-#include <misc/util.h>
-#include <gpio.h>
-
-#include "i2c-priv.h"
-
-#define SYS_LOG_LEVEL CONFIG_SYS_LOG_I2C_LEVEL
-#include <logging/sys_log.h>
-
-/* @todo
- *
- * Only one instance of twi0 and spi0 may be active at any point in time.
- * Only one instance of twi1, spi1 and spis1 may be active at a time.
- */
-
-#define NRF5_TWI_INT_STOPPED \
-	(TWI_INTENSET_STOPPED_Set << TWI_INTENSET_STOPPED_Pos)
-#define NRF5_TWI_INT_RXDREADY \
-	(TWI_INTENSET_RXDREADY_Set << TWI_INTENSET_RXDREADY_Pos)
-#define NRF5_TWI_INT_TXDSENT \
-	(TWI_INTENSET_TXDSENT_Set << TWI_INTENSET_TXDSENT_Pos)
-#define NRF5_TWI_INT_ERROR \
-	(TWI_INTENSET_ERROR_Set << TWI_INTENSET_ERROR_Pos)
-
-
-struct i2c_nrf5_config {
-	volatile NRF_TWI_Type *base;
-	void (*irq_config_func)(struct device *dev);
-	u32_t bitrate;
-	u32_t sda_pin;
-	u32_t scl_pin;
-};
-
-
-struct i2c_nrf5_data {
-	struct k_sem sem;
-	u32_t rxd:1;
-	u32_t txd:1;
-	u32_t err:1;
-	u32_t stopped:1;
-	struct device *gpio;
-	struct k_sem lock;
-};
-
-
-static int i2c_nrf5_configure(struct device *dev, u32_t dev_config_raw)
-{
-	const struct i2c_nrf5_config *config = dev->config->config_info;
-	struct i2c_nrf5_data *data = dev->driver_data;
-	volatile NRF_TWI_Type *twi = config->base;
-	int ret = 0;
-
-
-	SYS_LOG_DBG("");
-
-	if (I2C_ADDR_10_BITS & dev_config_raw) {
-		return -EINVAL;
-	}
-
-	k_sem_take(&data->lock, K_FOREVER);
-
-	switch (I2C_SPEED_GET(dev_config_raw)) {
-	case I2C_SPEED_STANDARD:
-		twi->FREQUENCY = TWI_FREQUENCY_FREQUENCY_K100;
-		break;
-	case I2C_SPEED_FAST:
-		twi->FREQUENCY = TWI_FREQUENCY_FREQUENCY_K400;
-		break;
-	default:
-		SYS_LOG_ERR("unsupported speed");
-		ret = -EINVAL;
-	}
-
-	k_sem_give(&data->lock);
-
-	return ret;
-}
-
-static int i2c_nrf5_read(struct device *dev, struct i2c_msg *msg)
-{
-	const struct i2c_nrf5_config *config = dev->config->config_info;
-	struct i2c_nrf5_data *data = dev->driver_data;
-	volatile NRF_TWI_Type *twi = config->base;
-
-	__ASSERT_NO_MSG(msg->len);
-
-	if (msg->flags & I2C_MSG_RESTART) {
-		/* No special behaviour required for
-		 * repeated start.
-		 */
-	}
-
-	for (int offset = 0; offset < msg->len; offset++) {
-		if (offset == msg->len-1) {
-			SYS_LOG_DBG("SHORTS=2");
-			twi->SHORTS = 2; /* BB->STOP */
-		} else {
-			SYS_LOG_DBG("SHORTS=1");
-			twi->SHORTS = 1; /* BB->SUSPEND */
-		}
-
-		if (offset == 0) {
-			SYS_LOG_DBG("STARTRX");
-			twi->TASKS_STARTRX = 1;
-		} else {
-			SYS_LOG_DBG("RESUME");
-			twi->TASKS_RESUME = 1;
-		}
-
-		k_sem_take(&data->sem, K_FOREVER);
-
-		if (data->err) {
-			data->err = 0;
-			SYS_LOG_DBG("rx error 0x%x", twi->ERRORSRC);
-			twi->TASKS_STOP = 1;
-			twi->ENABLE = TWI_ENABLE_ENABLE_Disabled;
-			return -EIO;
-		}
-
-		__ASSERT_NO_MSG(data->rxd);
-
-		SYS_LOG_DBG("RXD");
-		data->rxd = 0;
-		msg->buf[offset] = twi->RXD;
-	}
-
-	if (msg->flags & I2C_MSG_STOP) {
-		SYS_LOG_DBG("TASK_STOP");
-		k_sem_take(&data->sem, K_FOREVER);
-		SYS_LOG_DBG("err=%d txd=%d rxd=%d stopped=%d errsrc=0x%x",
-			    data->err, data->txd, data->rxd,
-			    data->stopped, twi->ERRORSRC);
-		__ASSERT_NO_MSG(data->stopped);
-		data->stopped = 0;
-	}
-
-	return 0;
-}
-
-static int i2c_nrf5_write(struct device *dev,
-			  struct i2c_msg *msg)
-{
-	const struct i2c_nrf5_config *config = dev->config->config_info;
-	struct i2c_nrf5_data *data = dev->driver_data;
-	volatile NRF_TWI_Type *twi = config->base;
-
-	__ASSERT_NO_MSG(msg->len);
-
-	SYS_LOG_DBG("");
-
-	data->stopped = 0;
-	data->txd = 0;
-
-	twi->EVENTS_TXDSENT = 0;
-	twi->SHORTS = 0;
-
-	for (int offset = 0; offset < msg->len; offset++) {
-		SYS_LOG_DBG("txd=0x%x", msg->buf[offset]);
-		twi->TXD = msg->buf[offset];
-
-		if (offset == 0) {
-			SYS_LOG_DBG("STARTTX");
-			twi->TASKS_STARTTX = 1;
-		}
-
-		SYS_LOG_DBG("wait for sync");
-		k_sem_take(&data->sem, K_FOREVER);
-		SYS_LOG_DBG("err=%d txd=%d stopped=%d errsrc=0x%x",
-			    data->err, data->txd,
-			    data->stopped, twi->ERRORSRC);
-
-		if (data->err) {
-			data->err = 0;
-			SYS_LOG_ERR("tx error 0x%x",
-				    twi->ERRORSRC);
-			twi->ERRORSRC = twi->ERRORSRC;
-			twi->TASKS_STOP = 1;
-			return -EIO;
-		}
-
-		__ASSERT_NO_MSG(data->txd);
-		data->txd = 0;
-		SYS_LOG_DBG("txdsent arrived");
-	}
-
-	if (msg->flags & I2C_MSG_STOP) {
-		SYS_LOG_DBG("TASK_STOP");
-		twi->TASKS_STOP = 1;
-		k_sem_take(&data->sem, K_FOREVER);
-		SYS_LOG_DBG("err=%d txd=%d rxd=%d stopped=%d errsrc=0x%x",
-			    data->err, data->txd, data->rxd,
-			    data->stopped, twi->ERRORSRC);
-		data->stopped = 0;
-	}
-
-	return 0;
-}
-
-static int i2c_nrf5_transfer(struct device *dev, struct i2c_msg *msgs,
-			     u8_t num_msgs, u16_t addr)
-{
-	const struct i2c_nrf5_config *config = dev->config->config_info;
-	struct i2c_nrf5_data *data = dev->driver_data;
-	volatile NRF_TWI_Type *twi = config->base;
-	int ret = 0;
-
-	k_sem_take(&data->lock, K_FOREVER);
-
-	SYS_LOG_DBG("transaction-start addr=0x%x", addr);
-
-	/* @todo The NRF5 imposes constraints on which peripherals can
-	 * be simultaneously active.  We should take steps here to
-	 * enforce appropriate mutual exclusion between SPI, TWI and
-	 * SPIS drivers.
-	 */
-
-	twi->ENABLE = TWI_ENABLE_ENABLE_Enabled;
-	twi->ADDRESS = addr;
-	for (int i = 0; i < num_msgs; i++) {
-		SYS_LOG_DBG("msg len=%d %s%s%s", msgs[i].len,
-			    (msgs[i].flags & I2C_MSG_READ) ? "R":"W",
-			    (msgs[i].flags & I2C_MSG_STOP) ? "S":"-",
-			    (msgs[i].flags & I2C_MSG_RESTART) ? "+":"-");
-
-		if (msgs[i].flags & I2C_MSG_READ) {
-			twi->EVENTS_RXDREADY = 0;
-			twi->INTENSET = (NRF5_TWI_INT_TXDSENT
-					 | NRF5_TWI_INT_RXDREADY
-					 | NRF5_TWI_INT_ERROR
-					 | NRF5_TWI_INT_STOPPED);
-			ret = i2c_nrf5_read(dev, msgs + i);
-		} else {
-			ret = i2c_nrf5_write(dev, msgs + i);
-		}
-
-		if (ret != 0) {
-			break;
-		}
-	}
-	twi->ENABLE = TWI_ENABLE_ENABLE_Disabled;
-
-	k_sem_give(&data->lock);
-
-	return ret;
-}
-
-static void i2c_nrf5_isr(void *arg)
-{
-	struct device *dev = (struct device *)arg;
-	const struct i2c_nrf5_config *config = dev->config->config_info;
-	struct i2c_nrf5_data *data = dev->driver_data;
-	volatile NRF_TWI_Type *twi = config->base;
-
-	if (twi->EVENTS_RXDREADY) {
-		data->rxd = 1;
-		twi->EVENTS_RXDREADY = 0;
-		k_sem_give(&data->sem);
-	}
-
-	if (twi->EVENTS_TXDSENT) {
-		data->txd = 1;
-		twi->EVENTS_TXDSENT = 0;
-		k_sem_give(&data->sem);
-	}
-
-	if (twi->EVENTS_ERROR) {
-		data->err = 1;
-		twi->EVENTS_ERROR = 0;
-		k_sem_give(&data->sem);
-	}
-
-	if (twi->EVENTS_STOPPED) {
-		data->stopped = 1;
-		twi->EVENTS_STOPPED = 0;
-		k_sem_give(&data->sem);
-	}
-}
-
-static int i2c_nrf5_init(struct device *dev)
-{
-	const struct i2c_nrf5_config *config = dev->config->config_info;
-	struct i2c_nrf5_data *data = dev->driver_data;
-	volatile NRF_TWI_Type *twi = config->base;
-	u32_t bitrate_cfg;
-	int status;
-
-	SYS_LOG_DBG("");
-
-	data->gpio = device_get_binding(CONFIG_GPIO_NRF5_P0_DEV_NAME);
-
-	k_sem_init(&data->sem, 0, UINT_MAX);
-
-	config->irq_config_func(dev);
-
-	twi->ENABLE = TWI_ENABLE_ENABLE_Disabled;
-
-	status = gpio_pin_configure(data->gpio, config->scl_pin,
-				    GPIO_DIR_IN
-				    | GPIO_PUD_PULL_UP
-				    | GPIO_DS_DISCONNECT_HIGH);
-	__ASSERT_NO_MSG(status == 0);
-
-	status = gpio_pin_configure(data->gpio, config->sda_pin,
-				    GPIO_DIR_IN
-				    | GPIO_PUD_PULL_UP
-				    | GPIO_DS_DISCONNECT_HIGH);
-	__ASSERT_NO_MSG(status == 0);
-
-	twi->PSELSCL = config->scl_pin;
-	twi->PSELSDA = config->sda_pin;
-	twi->ERRORSRC = twi->ERRORSRC;
-	twi->EVENTS_TXDSENT = 0;
-	twi->EVENTS_RXDREADY = 0;
-	twi->EVENTS_ERROR = 0;
-	twi->INTENSET = (NRF5_TWI_INT_TXDSENT
-			 | NRF5_TWI_INT_RXDREADY
-			 | NRF5_TWI_INT_ERROR
-			 | NRF5_TWI_INT_STOPPED);
-
-	bitrate_cfg = _i2c_map_dt_bitrate(config->bitrate);
-	status = i2c_nrf5_configure(dev, I2C_MODE_MASTER | bitrate_cfg);
-
-	k_sem_give(&data->lock);
-
-	return status;
-}
-
-static const struct i2c_driver_api i2c_nrf5_driver_api = {
-	.configure = i2c_nrf5_configure,
-	.transfer = i2c_nrf5_transfer,
-};
-
-/* i2c & spi instance with the same id (e.g. I2C_0 and SPI_0) can NOT be used
- * at the same time on nRF5x chip family.
- */
-#if defined(CONFIG_I2C_0) && !defined(CONFIG_SPI_0)
-static void i2c_nrf5_config_func_0(struct device *dev);
-
-static const struct i2c_nrf5_config i2c_nrf5_config_0 = {
-	.base = (volatile NRF_TWI_Type *)CONFIG_I2C_0_BASE_ADDR,
-	.irq_config_func = i2c_nrf5_config_func_0,
-	.bitrate = CONFIG_I2C_0_BITRATE,
-	.sda_pin = CONFIG_I2C_NRF5_0_GPIO_SDA_PIN,
-	.scl_pin = CONFIG_I2C_NRF5_0_GPIO_SCL_PIN,
-};
-
-static struct i2c_nrf5_data i2c_nrf5_data_0 = {
-	.lock = _K_SEM_INITIALIZER(i2c_nrf5_data_0.lock, 1, 1),
-};
-
-DEVICE_AND_API_INIT(i2c_nrf5_0, CONFIG_I2C_0_NAME, i2c_nrf5_init,
-		    &i2c_nrf5_data_0, &i2c_nrf5_config_0,
-		    POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
-		    &i2c_nrf5_driver_api);
-
-static void i2c_nrf5_config_func_0(struct device *dev)
-{
-	IRQ_CONNECT(CONFIG_I2C_0_IRQ, CONFIG_I2C_0_IRQ_PRI, i2c_nrf5_isr,
-		    DEVICE_GET(i2c_nrf5_0), 0);
-
-	irq_enable(CONFIG_I2C_0_IRQ);
-}
-#endif /* CONFIG_I2C_0 && !CONFIG_SPI_0 */
-
-#if defined(CONFIG_I2C_1) && !defined(CONFIG_SPI_1)
-static void i2c_nrf5_config_func_1(struct device *dev);
-
-static const struct i2c_nrf5_config i2c_nrf5_config_1 = {
-	.base = (volatile NRF_TWI_Type *)CONFIG_I2C_1_BASE_ADDR,
-	.irq_config_func = i2c_nrf5_config_func_1,
-	.bitrate = CONFIG_I2C_1_BITRATE,
-	.sda_pin = CONFIG_I2C_NRF5_1_GPIO_SDA_PIN,
-	.scl_pin = CONFIG_I2C_NRF5_1_GPIO_SCL_PIN,
-};
-
-static struct i2c_nrf5_data i2c_nrf5_data_1 = {
-	.lock = _K_SEM_INITIALIZER(i2c_nrf5_data_1.lock, 1, 1),
-};
-
-DEVICE_AND_API_INIT(i2c_nrf5_1, CONFIG_I2C_1_NAME, i2c_nrf5_init,
-		    &i2c_nrf5_data_1, &i2c_nrf5_config_1,
-		    POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
-		    &i2c_nrf5_driver_api);
-
-static void i2c_nrf5_config_func_1(struct device *dev)
-{
-	IRQ_CONNECT(CONFIG_I2C_1_IRQ, CONFIG_I2C_1_IRQ_PRI, i2c_nrf5_isr,
-		    DEVICE_GET(i2c_nrf5_1), 0);
-
-	irq_enable(CONFIG_I2C_1_IRQ);
-}
-#endif /* CONFIG_I2C_1 && !CONFIG_SPI_1 */