drivers: i2c: Add shims for nrfx TWI and TWIM drivers
Changes add a translation layer to make nrfx TWI and TWIM drivers work with Zephyr API. Signed-off-by: Mieszko Mierunski <mieszko.mierunski@nordicsemi.no>
This commit is contained in:
parent
6f61f09803
commit
1edc29c47f
9 changed files with 465 additions and 31 deletions
|
@ -8,6 +8,8 @@ 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_GPIO i2c_gpio.c)
|
||||||
zephyr_library_sources_ifdef(CONFIG_I2C_MCUX i2c_mcux.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_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)
|
zephyr_library_sources_ifdef(CONFIG_I2C_QMSI i2c_qmsi.c)
|
||||||
zephyr_library_sources_ifdef(CONFIG_I2C_QMSI_SS i2c_qmsi_ss.c)
|
zephyr_library_sources_ifdef(CONFIG_I2C_QMSI_SS i2c_qmsi_ss.c)
|
||||||
zephyr_library_sources_ifdef(CONFIG_I2C_SAM_TWI i2c_sam_twi.c)
|
zephyr_library_sources_ifdef(CONFIG_I2C_SAM_TWI i2c_sam_twi.c)
|
||||||
|
|
|
@ -231,6 +231,8 @@ source "drivers/i2c/Kconfig.gpio"
|
||||||
|
|
||||||
source "drivers/i2c/Kconfig.nrf5"
|
source "drivers/i2c/Kconfig.nrf5"
|
||||||
|
|
||||||
|
source "drivers/i2c/Kconfig.nrfx"
|
||||||
|
|
||||||
source "drivers/i2c/Kconfig.qmsi"
|
source "drivers/i2c/Kconfig.qmsi"
|
||||||
|
|
||||||
source "drivers/i2c/Kconfig.sbcon"
|
source "drivers/i2c/Kconfig.sbcon"
|
||||||
|
|
99
drivers/i2c/Kconfig.nrfx
Normal file
99
drivers/i2c/Kconfig.nrfx
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
# Kconfig - nrfx I2C support
|
||||||
|
#
|
||||||
|
# Copyright (c) 2018, Nordic Semiconductor ASA
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
menuconfig I2C_NRFX
|
||||||
|
bool "nRF TWI nrfx drivers"
|
||||||
|
depends on SOC_FAMILY_NRF
|
||||||
|
help
|
||||||
|
Enable support for nrfx TWI drivers for nRF MCU series.
|
||||||
|
Peripherals with the same instance ID cannot be used together,
|
||||||
|
e.g. I2C_0 and SPI_0. You may need to disable SPI_0 or SPI_1.
|
||||||
|
|
||||||
|
if I2C_NRFX
|
||||||
|
|
||||||
|
# Nordic TWIx0 and SPIx0 instances can not be used at the same time.
|
||||||
|
if I2C_0 && !SPI_0
|
||||||
|
|
||||||
|
choice I2C_0_NRF_TYPE
|
||||||
|
prompt "I2C Port 0 Driver type"
|
||||||
|
|
||||||
|
config I2C_0_NRF_TWI
|
||||||
|
bool "nRF TWI 0"
|
||||||
|
depends on SOC_SERIES_NRF52X || SOC_SERIES_NRF51X
|
||||||
|
select NRFX_TWI
|
||||||
|
help
|
||||||
|
Enable nRF TWI Master without EasyDMA on port 0.
|
||||||
|
|
||||||
|
config I2C_0_NRF_TWIM
|
||||||
|
bool "nRF TWIM 0"
|
||||||
|
depends on SOC_SERIES_NRF52X
|
||||||
|
select NRFX_TWIM
|
||||||
|
help
|
||||||
|
Enable nRF TWI Master with EasyDMA on port 0.
|
||||||
|
This peripheral accepts transfers from RAM only,
|
||||||
|
if provided buffer is placed in flash, transfer will fail.
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config I2C_0_NRF_SDA_PIN
|
||||||
|
int "SDA pin number"
|
||||||
|
range 0 47 if SOC_NRF52840_QIAA
|
||||||
|
range 0 31
|
||||||
|
help
|
||||||
|
GPIO pin number to use for SDA.
|
||||||
|
|
||||||
|
config I2C_0_NRF_SCL_PIN
|
||||||
|
int "SCL pin number"
|
||||||
|
range 0 47 if SOC_NRF52840_QIAA
|
||||||
|
range 0 31
|
||||||
|
help
|
||||||
|
GPIO pin number to use for SCL.
|
||||||
|
|
||||||
|
endif # I2C_0 && !SPI_0
|
||||||
|
|
||||||
|
# Nordic TWIx1 and SPIx1 instances can not be used at the same time.
|
||||||
|
if I2C_1 && !SPI_1
|
||||||
|
|
||||||
|
choice I2C_1_NRF_TYPE
|
||||||
|
prompt "I2C Port 1 Driver type"
|
||||||
|
|
||||||
|
config I2C_1_NRF_TWI
|
||||||
|
bool "nRF TWI 1"
|
||||||
|
depends on SOC_SERIES_NRF52X || SOC_SERIES_NRF51X
|
||||||
|
select NRFX_TWI
|
||||||
|
help
|
||||||
|
Enable nRF TWI Master without EasyDMA on port 1.
|
||||||
|
|
||||||
|
config I2C_1_NRF_TWIM
|
||||||
|
bool "nRF TWIM 1"
|
||||||
|
depends on SOC_SERIES_NRF52X
|
||||||
|
select NRFX_TWIM
|
||||||
|
help
|
||||||
|
Enable nRF TWI Master with EasyDMA on port 1.
|
||||||
|
This peripheral accepts transfers from RAM only,
|
||||||
|
if provided buffer is placed in flash, transfer will fail.
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config I2C_1_NRF_SDA_PIN
|
||||||
|
int "SDA pin number"
|
||||||
|
range 0 47 if SOC_NRF52840_QIAA
|
||||||
|
range 0 31
|
||||||
|
help
|
||||||
|
GPIO pin number to use for SDA.
|
||||||
|
|
||||||
|
config I2C_1_NRF_SCL_PIN
|
||||||
|
int "SCL pin number"
|
||||||
|
range 0 47 if SOC_NRF52840_QIAA
|
||||||
|
range 0 31
|
||||||
|
help
|
||||||
|
GPIO pin number to use for SCL.
|
||||||
|
|
||||||
|
endif # I2C_1 && !SPI_1
|
||||||
|
|
||||||
|
endif #I2C_NRFX
|
||||||
|
|
163
drivers/i2c/i2c_nrfx_twi.c
Normal file
163
drivers/i2c/i2c_nrfx_twi.c
Normal file
|
@ -0,0 +1,163 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2018, Nordic Semiconductor ASA
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <i2c.h>
|
||||||
|
#include <nrfx_twi.h>
|
||||||
|
|
||||||
|
#define SYS_LOG_DOMAIN "i2c_nrfx_twi"
|
||||||
|
#define SYS_LOG_LEVEL CONFIG_SYS_LOG_I2C_LEVEL
|
||||||
|
#include <logging/sys_log.h>
|
||||||
|
|
||||||
|
struct i2c_nrfx_twi_data {
|
||||||
|
struct k_sem sync;
|
||||||
|
volatile nrfx_err_t res;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct i2c_nrfx_twi_config {
|
||||||
|
nrfx_twi_t twi;
|
||||||
|
};
|
||||||
|
|
||||||
|
static inline struct i2c_nrfx_twi_data *get_dev_data(struct device *dev)
|
||||||
|
{
|
||||||
|
return dev->driver_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
const struct i2c_nrfx_twi_config *get_dev_config(struct device *dev)
|
||||||
|
{
|
||||||
|
return dev->config->config_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int i2c_nrfx_twi_transfer(struct device *dev, struct i2c_msg *msgs,
|
||||||
|
u8_t num_msgs, u16_t addr)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < num_msgs; i++) {
|
||||||
|
nrfx_twi_xfer_desc_t cur_xfer = {
|
||||||
|
.p_primary_buf = msgs[i].buf,
|
||||||
|
.primary_length = msgs[i].len,
|
||||||
|
.address = addr,
|
||||||
|
.type = (msgs[i].flags & I2C_MSG_READ) ?
|
||||||
|
NRFX_TWI_XFER_RX : NRFX_TWI_XFER_TX
|
||||||
|
};
|
||||||
|
|
||||||
|
nrfx_err_t res = nrfx_twi_xfer(&get_dev_config(dev)->twi,
|
||||||
|
&cur_xfer,
|
||||||
|
(msgs[i].flags & I2C_MSG_STOP) ?
|
||||||
|
0 : NRFX_TWI_FLAG_TX_NO_STOP);
|
||||||
|
if (res != NRFX_SUCCESS) {
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
|
||||||
|
k_sem_take(&(get_dev_data(dev)->sync), K_FOREVER);
|
||||||
|
res = get_dev_data(dev)->res;
|
||||||
|
if (res != NRFX_SUCCESS) {
|
||||||
|
SYS_LOG_ERR("Error %d occurred for message %d", res, i);
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void event_handler(nrfx_twi_evt_t const *p_event, void *p_context)
|
||||||
|
{
|
||||||
|
struct device *dev = p_context;
|
||||||
|
struct i2c_nrfx_twi_data *dev_data = get_dev_data(dev);
|
||||||
|
|
||||||
|
switch (p_event->type) {
|
||||||
|
case NRFX_TWI_EVT_DONE:
|
||||||
|
dev_data->res = NRFX_SUCCESS;
|
||||||
|
break;
|
||||||
|
case NRFX_TWI_EVT_ADDRESS_NACK:
|
||||||
|
dev_data->res = NRFX_ERROR_DRV_TWI_ERR_ANACK;
|
||||||
|
break;
|
||||||
|
case NRFX_TWI_EVT_DATA_NACK:
|
||||||
|
dev_data->res = NRFX_ERROR_DRV_TWI_ERR_DNACK;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
dev_data->res = NRFX_ERROR_INTERNAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
k_sem_give(&dev_data->sync);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int i2c_nrfx_twi_configure(struct device *dev, u32_t dev_config)
|
||||||
|
{
|
||||||
|
nrfx_twi_t const *inst = &(get_dev_config(dev)->twi);
|
||||||
|
|
||||||
|
if (I2C_ADDR_10_BITS & dev_config) {
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (I2C_SPEED_GET(dev_config)) {
|
||||||
|
case I2C_SPEED_STANDARD:
|
||||||
|
nrf_twi_frequency_set(inst->p_twi, NRF_TWI_FREQ_100K);
|
||||||
|
break;
|
||||||
|
case I2C_SPEED_FAST:
|
||||||
|
nrf_twi_frequency_set(inst->p_twi, NRF_TWI_FREQ_400K);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
SYS_LOG_ERR("unsupported speed");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct i2c_driver_api i2c_nrfx_twi_driver_api = {
|
||||||
|
.configure = i2c_nrfx_twi_configure,
|
||||||
|
.transfer = i2c_nrfx_twi_transfer,
|
||||||
|
};
|
||||||
|
|
||||||
|
static int init_twi(struct device *dev, const nrfx_twi_config_t *config)
|
||||||
|
{
|
||||||
|
nrfx_err_t result = nrfx_twi_init(&get_dev_config(dev)->twi, config,
|
||||||
|
event_handler, dev);
|
||||||
|
if (result != NRFX_SUCCESS) {
|
||||||
|
SYS_LOG_ERR("Failed to initialize device: %s",
|
||||||
|
dev->config->name);
|
||||||
|
return -EBUSY;
|
||||||
|
}
|
||||||
|
|
||||||
|
nrfx_twi_enable(&get_dev_config(dev)->twi);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define I2C_NRFX_TWI_DEVICE(idx) \
|
||||||
|
static int twi_##idx##_init(struct device *dev) \
|
||||||
|
{ \
|
||||||
|
IRQ_CONNECT(CONFIG_I2C_##idx##_IRQ, \
|
||||||
|
CONFIG_I2C_##idx##_IRQ_PRI, \
|
||||||
|
nrfx_isr, nrfx_twi_##idx##_irq_handler, 0); \
|
||||||
|
const nrfx_twi_config_t config = { \
|
||||||
|
.scl = CONFIG_I2C_##idx##_NRF_SCL_PIN, \
|
||||||
|
.sda = CONFIG_I2C_##idx##_NRF_SDA_PIN, \
|
||||||
|
.frequency = NRF_TWI_FREQ_100K, \
|
||||||
|
}; \
|
||||||
|
return init_twi(dev, &config); \
|
||||||
|
} \
|
||||||
|
static struct i2c_nrfx_twi_data twi_##idx##_data = { \
|
||||||
|
.sync = _K_SEM_INITIALIZER(twi_##idx##_data.sync, 0, 1) \
|
||||||
|
}; \
|
||||||
|
static const struct i2c_nrfx_twi_config twi_##idx##_config = { \
|
||||||
|
.twi = NRFX_TWI_INSTANCE(idx) \
|
||||||
|
}; \
|
||||||
|
DEVICE_AND_API_INIT(twi_##idx, CONFIG_I2C_##idx##_NAME, \
|
||||||
|
twi_##idx##_init, &twi_##idx##_data, \
|
||||||
|
&twi_##idx##_config, POST_KERNEL, \
|
||||||
|
CONFIG_I2C_INIT_PRIORITY, \
|
||||||
|
&i2c_nrfx_twi_driver_api)
|
||||||
|
|
||||||
|
#ifdef CONFIG_I2C_0_NRF_TWI
|
||||||
|
I2C_NRFX_TWI_DEVICE(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_I2C_1_NRF_TWI
|
||||||
|
I2C_NRFX_TWI_DEVICE(1);
|
||||||
|
#endif
|
||||||
|
|
163
drivers/i2c/i2c_nrfx_twim.c
Normal file
163
drivers/i2c/i2c_nrfx_twim.c
Normal file
|
@ -0,0 +1,163 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2018, Nordic Semiconductor ASA
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <i2c.h>
|
||||||
|
#include <nrfx_twim.h>
|
||||||
|
|
||||||
|
#define SYS_LOG_DOMAIN "i2c_nrfx_twim"
|
||||||
|
#define SYS_LOG_LEVEL CONFIG_SYS_LOG_I2C_LEVEL
|
||||||
|
#include <logging/sys_log.h>
|
||||||
|
|
||||||
|
struct i2c_nrfx_twim_data {
|
||||||
|
struct k_sem sync;
|
||||||
|
volatile nrfx_err_t res;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct i2c_nrfx_twim_config {
|
||||||
|
nrfx_twim_t twim;
|
||||||
|
};
|
||||||
|
|
||||||
|
static inline struct i2c_nrfx_twim_data *get_dev_data(struct device *dev)
|
||||||
|
{
|
||||||
|
return dev->driver_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
const struct i2c_nrfx_twim_config *get_dev_config(struct device *dev)
|
||||||
|
{
|
||||||
|
return dev->config->config_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int i2c_nrfx_twim_transfer(struct device *dev, struct i2c_msg *msgs,
|
||||||
|
u8_t num_msgs, u16_t addr)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < num_msgs; i++) {
|
||||||
|
nrfx_twim_xfer_desc_t cur_xfer = {
|
||||||
|
.p_primary_buf = msgs[i].buf,
|
||||||
|
.primary_length = msgs[i].len,
|
||||||
|
.address = addr,
|
||||||
|
.type = (msgs[i].flags & I2C_MSG_READ) ?
|
||||||
|
NRFX_TWIM_XFER_RX : NRFX_TWIM_XFER_TX
|
||||||
|
};
|
||||||
|
|
||||||
|
nrfx_err_t res = nrfx_twim_xfer(&get_dev_config(dev)->twim,
|
||||||
|
&cur_xfer,
|
||||||
|
(msgs[i].flags & I2C_MSG_STOP) ?
|
||||||
|
0 : NRFX_TWIM_FLAG_TX_NO_STOP);
|
||||||
|
if (res != NRFX_SUCCESS) {
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
|
||||||
|
k_sem_take(&(get_dev_data(dev)->sync), K_FOREVER);
|
||||||
|
res = get_dev_data(dev)->res;
|
||||||
|
if (res != NRFX_SUCCESS) {
|
||||||
|
SYS_LOG_ERR("Error %d occurred for message %d", res, i);
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void event_handler(nrfx_twim_evt_t const *p_event, void *p_context)
|
||||||
|
{
|
||||||
|
struct device *dev = p_context;
|
||||||
|
struct i2c_nrfx_twim_data *dev_data = get_dev_data(dev);
|
||||||
|
|
||||||
|
switch (p_event->type) {
|
||||||
|
case NRFX_TWIM_EVT_DONE:
|
||||||
|
dev_data->res = NRFX_SUCCESS;
|
||||||
|
break;
|
||||||
|
case NRFX_TWIM_EVT_ADDRESS_NACK:
|
||||||
|
dev_data->res = NRFX_ERROR_DRV_TWI_ERR_ANACK;
|
||||||
|
break;
|
||||||
|
case NRFX_TWIM_EVT_DATA_NACK:
|
||||||
|
dev_data->res = NRFX_ERROR_DRV_TWI_ERR_DNACK;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
dev_data->res = NRFX_ERROR_INTERNAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
k_sem_give(&dev_data->sync);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int i2c_nrfx_twim_configure(struct device *dev, u32_t dev_config)
|
||||||
|
{
|
||||||
|
nrfx_twim_t const *inst = &(get_dev_config(dev)->twim);
|
||||||
|
|
||||||
|
if (I2C_ADDR_10_BITS & dev_config) {
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (I2C_SPEED_GET(dev_config)) {
|
||||||
|
case I2C_SPEED_STANDARD:
|
||||||
|
nrf_twim_frequency_set(inst->p_twim, NRF_TWIM_FREQ_100K);
|
||||||
|
break;
|
||||||
|
case I2C_SPEED_FAST:
|
||||||
|
nrf_twim_frequency_set(inst->p_twim, NRF_TWIM_FREQ_400K);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
SYS_LOG_ERR("unsupported speed");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct i2c_driver_api i2c_nrfx_twim_driver_api = {
|
||||||
|
.configure = i2c_nrfx_twim_configure,
|
||||||
|
.transfer = i2c_nrfx_twim_transfer,
|
||||||
|
};
|
||||||
|
|
||||||
|
static int init_twim(struct device *dev, const nrfx_twim_config_t *config)
|
||||||
|
{
|
||||||
|
nrfx_err_t result = nrfx_twim_init(&get_dev_config(dev)->twim, config,
|
||||||
|
event_handler, dev);
|
||||||
|
if (result != NRFX_SUCCESS) {
|
||||||
|
SYS_LOG_ERR("Failed to initialize device: %s",
|
||||||
|
dev->config->name);
|
||||||
|
return -EBUSY;
|
||||||
|
}
|
||||||
|
|
||||||
|
nrfx_twim_enable(&get_dev_config(dev)->twim);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define I2C_NRFX_TWIM_DEVICE(idx) \
|
||||||
|
static int twim_##idx##_init(struct device *dev) \
|
||||||
|
{ \
|
||||||
|
IRQ_CONNECT(CONFIG_I2C_##idx##_IRQ, \
|
||||||
|
CONFIG_I2C_##idx##_IRQ_PRI, \
|
||||||
|
nrfx_isr, nrfx_twim_##idx##_irq_handler, 0);\
|
||||||
|
const nrfx_twim_config_t config = { \
|
||||||
|
.scl = CONFIG_I2C_##idx##_NRF_SCL_PIN, \
|
||||||
|
.sda = CONFIG_I2C_##idx##_NRF_SDA_PIN, \
|
||||||
|
.frequency = NRF_TWIM_FREQ_100K, \
|
||||||
|
}; \
|
||||||
|
return init_twim(dev, &config); \
|
||||||
|
} \
|
||||||
|
static struct i2c_nrfx_twim_data twim_##idx##_data = { \
|
||||||
|
.sync = _K_SEM_INITIALIZER(twim_##idx##_data.sync, 0, 1)\
|
||||||
|
}; \
|
||||||
|
static const struct i2c_nrfx_twim_config twim_##idx##_config = {\
|
||||||
|
.twim = NRFX_TWIM_INSTANCE(idx) \
|
||||||
|
}; \
|
||||||
|
DEVICE_AND_API_INIT(twim_##idx, CONFIG_I2C_##idx##_NAME, \
|
||||||
|
twim_##idx##_init, &twim_##idx##_data, \
|
||||||
|
&twim_##idx##_config, POST_KERNEL, \
|
||||||
|
CONFIG_I2C_INIT_PRIORITY, \
|
||||||
|
&i2c_nrfx_twim_driver_api)
|
||||||
|
|
||||||
|
#ifdef CONFIG_I2C_0_NRF_TWIM
|
||||||
|
I2C_NRFX_TWIM_DEVICE(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_I2C_1_NRF_TWIM
|
||||||
|
I2C_NRFX_TWIM_DEVICE(1);
|
||||||
|
#endif
|
||||||
|
|
|
@ -19,5 +19,11 @@ config NRFX_SPIM
|
||||||
config NRFX_SPIS
|
config NRFX_SPIS
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config NRFX_TWI
|
||||||
|
bool
|
||||||
|
|
||||||
|
config NRFX_TWIM
|
||||||
|
bool
|
||||||
|
|
||||||
config NRFX_WDT
|
config NRFX_WDT
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -1287,21 +1287,21 @@
|
||||||
|
|
||||||
// <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver
|
// <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver
|
||||||
//==========================================================
|
//==========================================================
|
||||||
#ifndef NRFX_TWI_ENABLED
|
#ifdef CONFIG_NRFX_TWI
|
||||||
#define NRFX_TWI_ENABLED 0
|
#define NRFX_TWI_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
// <q> NRFX_TWI0_ENABLED - Enable TWI0 instance
|
// <q> NRFX_TWI0_ENABLED - Enable TWI0 instance
|
||||||
|
|
||||||
|
|
||||||
#ifndef NRFX_TWI0_ENABLED
|
#ifdef CONFIG_I2C_0_NRF_TWI
|
||||||
#define NRFX_TWI0_ENABLED 0
|
#define NRFX_TWI0_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <q> NRFX_TWI1_ENABLED - Enable TWI1 instance
|
// <q> NRFX_TWI1_ENABLED - Enable TWI1 instance
|
||||||
|
|
||||||
|
|
||||||
#ifndef NRFX_TWI1_ENABLED
|
#ifdef CONFIG_I2C_1_NRF_TWI
|
||||||
#define NRFX_TWI1_ENABLED 0
|
#define NRFX_TWI1_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <o> NRFX_TWI_DEFAULT_CONFIG_FREQUENCY - Frequency
|
// <o> NRFX_TWI_DEFAULT_CONFIG_FREQUENCY - Frequency
|
||||||
|
|
|
@ -2210,21 +2210,21 @@
|
||||||
|
|
||||||
// <e> NRFX_TWIM_ENABLED - nrfx_twim - TWIM peripheral driver
|
// <e> NRFX_TWIM_ENABLED - nrfx_twim - TWIM peripheral driver
|
||||||
//==========================================================
|
//==========================================================
|
||||||
#ifndef NRFX_TWIM_ENABLED
|
#ifdef CONFIG_NRFX_TWIM
|
||||||
#define NRFX_TWIM_ENABLED 0
|
#define NRFX_TWIM_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
// <q> NRFX_TWIM0_ENABLED - Enable TWIM0 instance
|
// <q> NRFX_TWIM0_ENABLED - Enable TWIM0 instance
|
||||||
|
|
||||||
|
|
||||||
#ifndef NRFX_TWIM0_ENABLED
|
#ifdef CONFIG_I2C_0_NRF_TWIM
|
||||||
#define NRFX_TWIM0_ENABLED 0
|
#define NRFX_TWIM0_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <q> NRFX_TWIM1_ENABLED - Enable TWIM1 instance
|
// <q> NRFX_TWIM1_ENABLED - Enable TWIM1 instance
|
||||||
|
|
||||||
|
|
||||||
#ifndef NRFX_TWIM1_ENABLED
|
#ifdef CONFIG_I2C_1_NRF_TWIM
|
||||||
#define NRFX_TWIM1_ENABLED 0
|
#define NRFX_TWIM1_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <o> NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY - Frequency
|
// <o> NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY - Frequency
|
||||||
|
@ -2462,21 +2462,20 @@
|
||||||
|
|
||||||
// <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver
|
// <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver
|
||||||
//==========================================================
|
//==========================================================
|
||||||
#ifndef NRFX_TWI_ENABLED
|
#ifdef CONFIG_NRFX_TWI
|
||||||
#define NRFX_TWI_ENABLED 0
|
#define NRFX_TWI_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
// <q> NRFX_TWI0_ENABLED - Enable TWI0 instance
|
// <q> NRFX_TWI0_ENABLED - Enable TWI0 instance
|
||||||
|
|
||||||
|
|
||||||
#ifndef NRFX_TWI0_ENABLED
|
#ifdef CONFIG_I2C_0_NRF_TWI
|
||||||
#define NRFX_TWI0_ENABLED 0
|
#define NRFX_TWI0_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <q> NRFX_TWI1_ENABLED - Enable TWI1 instance
|
// <q> NRFX_TWI1_ENABLED - Enable TWI1 instance
|
||||||
|
|
||||||
|
#ifdef CONFIG_I2C_1_NRF_TWI
|
||||||
#ifndef NRFX_TWI1_ENABLED
|
#define NRFX_TWI1_ENABLED 1
|
||||||
#define NRFX_TWI1_ENABLED 0
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <o> NRFX_TWI_DEFAULT_CONFIG_FREQUENCY - Frequency
|
// <o> NRFX_TWI_DEFAULT_CONFIG_FREQUENCY - Frequency
|
||||||
|
|
|
@ -2313,21 +2313,21 @@
|
||||||
|
|
||||||
// <e> NRFX_TWIM_ENABLED - nrfx_twim - TWIM peripheral driver
|
// <e> NRFX_TWIM_ENABLED - nrfx_twim - TWIM peripheral driver
|
||||||
//==========================================================
|
//==========================================================
|
||||||
#ifndef NRFX_TWIM_ENABLED
|
#ifdef CONFIG_NRFX_TWIM
|
||||||
#define NRFX_TWIM_ENABLED 0
|
#define NRFX_TWIM_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
// <q> NRFX_TWIM0_ENABLED - Enable TWIM0 instance
|
// <q> NRFX_TWIM0_ENABLED - Enable TWIM0 instance
|
||||||
|
|
||||||
|
|
||||||
#ifndef NRFX_TWIM0_ENABLED
|
#ifdef CONFIG_I2C_0_NRF_TWIM
|
||||||
#define NRFX_TWIM0_ENABLED 0
|
#define NRFX_TWIM0_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <q> NRFX_TWIM1_ENABLED - Enable TWIM1 instance
|
// <q> NRFX_TWIM1_ENABLED - Enable TWIM1 instance
|
||||||
|
|
||||||
|
|
||||||
#ifndef NRFX_TWIM1_ENABLED
|
#ifdef CONFIG_I2C_1_NRF_TWIM
|
||||||
#define NRFX_TWIM1_ENABLED 0
|
#define NRFX_TWIM1_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <o> NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY - Frequency
|
// <o> NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY - Frequency
|
||||||
|
@ -2552,21 +2552,21 @@
|
||||||
|
|
||||||
// <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver
|
// <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver
|
||||||
//==========================================================
|
//==========================================================
|
||||||
#ifndef NRFX_TWI_ENABLED
|
#ifdef CONFIG_NRFX_TWI
|
||||||
#define NRFX_TWI_ENABLED 0
|
#define NRFX_TWI_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
// <q> NRFX_TWI0_ENABLED - Enable TWI0 instance
|
// <q> NRFX_TWI0_ENABLED - Enable TWI0 instance
|
||||||
|
|
||||||
|
|
||||||
#ifndef NRFX_TWI0_ENABLED
|
#ifdef CONFIG_I2C_0_NRF_TWI
|
||||||
#define NRFX_TWI0_ENABLED 0
|
#define NRFX_TWI0_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <q> NRFX_TWI1_ENABLED - Enable TWI1 instance
|
// <q> NRFX_TWI1_ENABLED - Enable TWI1 instance
|
||||||
|
|
||||||
|
|
||||||
#ifndef NRFX_TWI1_ENABLED
|
#ifdef CONFIG_I2C_1_NRF_TWI
|
||||||
#define NRFX_TWI1_ENABLED 0
|
#define NRFX_TWI1_ENABLED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// <o> NRFX_TWI_DEFAULT_CONFIG_FREQUENCY - Frequency
|
// <o> NRFX_TWI_DEFAULT_CONFIG_FREQUENCY - Frequency
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue