summaryrefslogtreecommitdiffstats
path: root/cpukit/dev
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2017-12-23 18:18:56 +1100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-01-25 08:45:26 +0100
commit2afb22b7e1ebcbe40373ff7e0efae7d207c655a9 (patch)
tree44759efe9374f13200a97e96d91bd9a2b7e5ce2a /cpukit/dev
parentMAINTAINERS: Add myself to Write After Approval. (diff)
downloadrtems-2afb22b7e1ebcbe40373ff7e0efae7d207c655a9.tar.bz2
Remove make preinstall
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
Diffstat (limited to 'cpukit/dev')
-rw-r--r--cpukit/dev/Makefile.am34
-rw-r--r--cpukit/dev/include/dev/i2c/eeprom.h58
-rw-r--r--cpukit/dev/include/dev/i2c/fpga-i2c-slave.h25
-rw-r--r--cpukit/dev/include/dev/i2c/gpio-nxp-pca9535.h123
-rw-r--r--cpukit/dev/include/dev/i2c/i2c.h432
-rw-r--r--cpukit/dev/include/dev/i2c/sensor-lm75a.h125
-rw-r--r--cpukit/dev/include/dev/i2c/switch-nxp-pca9548a.h68
-rw-r--r--cpukit/dev/include/dev/i2c/ti-ads-16bit-adc.h203
-rw-r--r--cpukit/dev/include/dev/i2c/ti-lm25066a.h190
-rw-r--r--cpukit/dev/include/dev/i2c/ti-tmp112.h109
-rw-r--r--cpukit/dev/include/dev/i2c/xilinx-axi-i2c.h86
-rw-r--r--cpukit/dev/include/dev/serial/sc16is752.h262
-rw-r--r--cpukit/dev/include/dev/spi/spi.h216
-rw-r--r--cpukit/dev/include/linux/i2c-dev.h137
-rw-r--r--cpukit/dev/include/linux/i2c.h275
-rw-r--r--cpukit/dev/include/linux/spi/spidev.h268
-rw-r--r--cpukit/dev/preinstall.am105
17 files changed, 0 insertions, 2716 deletions
diff --git a/cpukit/dev/Makefile.am b/cpukit/dev/Makefile.am
index b60e035fdb..f499bbb948 100644
--- a/cpukit/dev/Makefile.am
+++ b/cpukit/dev/Makefile.am
@@ -1,39 +1,6 @@
include $(top_srcdir)/automake/compile.am
include $(top_srcdir)/automake/multilib.am
-include_devdir = $(includedir)/dev
-include_dev_HEADERS =
-
-include_dev_i2cdir = $(includedir)/dev/i2c
-include_dev_i2c_HEADERS =
-include_dev_i2c_HEADERS += include/dev/i2c/eeprom.h
-include_dev_i2c_HEADERS += include/dev/i2c/fpga-i2c-slave.h
-include_dev_i2c_HEADERS += include/dev/i2c/gpio-nxp-pca9535.h
-include_dev_i2c_HEADERS += include/dev/i2c/i2c.h
-include_dev_i2c_HEADERS += include/dev/i2c/sensor-lm75a.h
-include_dev_i2c_HEADERS += include/dev/i2c/switch-nxp-pca9548a.h
-include_dev_i2c_HEADERS += include/dev/i2c/xilinx-axi-i2c.h
-include_dev_i2c_HEADERS += include/dev/i2c/ti-ads-16bit-adc.h
-include_dev_i2c_HEADERS += include/dev/i2c/ti-lm25066a.h
-include_dev_i2c_HEADERS += include/dev/i2c/ti-tmp112.h
-
-include_dev_spidir = $(includedir)/dev/spi
-include_dev_spi_HEADERS =
-include_dev_spi_HEADERS += include/dev/spi/spi.h
-
-include_dev_serialdir = $(includedir)/dev/serial
-include_dev_serial_HEADERS =
-include_dev_serial_HEADERS += include/dev/serial/sc16is752.h
-
-include_linuxdir = $(includedir)/linux
-include_linux_HEADERS =
-include_linux_HEADERS += include/linux/i2c.h
-include_linux_HEADERS += include/linux/i2c-dev.h
-
-include_linux_spidir = $(includedir)/linux/spi
-include_linux_spi_HEADERS =
-include_linux_spi_HEADERS += include/linux/spi/spidev.h
-
noinst_LIBRARIES = libdev.a
libdev_a_SOURCES =
@@ -53,5 +20,4 @@ libdev_a_SOURCES += serial/sc16is752.c
libdev_a_SOURCES += serial/sc16is752-spi.c
libdev_a_SOURCES += serial/sc16is752-regs.h
-include $(srcdir)/preinstall.am
include $(top_srcdir)/automake/local.am
diff --git a/cpukit/dev/include/dev/i2c/eeprom.h b/cpukit/dev/include/dev/i2c/eeprom.h
deleted file mode 100644
index 73df5ad9f4..0000000000
--- a/cpukit/dev/include/dev/i2c/eeprom.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * @file
- *
- * @brief EEPROM Driver API
- *
- * @ingroup I2CEEPROM
- */
-
-/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _DEV_I2C_EEPROM_H
-#define _DEV_I2C_EEPROM_H
-
-#include <dev/i2c/i2c.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup I2CEEPROM EEPROM Driver
- *
- * @ingroup I2CDevice
- *
- * @brief Driver for EEPROM device.
- *
- * @{
- */
-
-int i2c_dev_register_eeprom(
- const char *bus_path,
- const char *dev_path,
- uint16_t i2c_address,
- uint16_t address_bytes,
- uint16_t page_size_in_bytes,
- uint32_t size_in_bytes,
- uint32_t program_timeout_in_ms
-);
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _DEV_I2C_EEPROM_H */
diff --git a/cpukit/dev/include/dev/i2c/fpga-i2c-slave.h b/cpukit/dev/include/dev/i2c/fpga-i2c-slave.h
deleted file mode 100644
index c10b26ac5b..0000000000
--- a/cpukit/dev/include/dev/i2c/fpga-i2c-slave.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2016-2017 Chris Johns <chrisj@rtems.org>
- * All rights reserved.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*
- * I2C slave for testing:
- * https://github.com/oetr/FPGA-I2C-Slave
- */
-
-#ifndef FPGA_I2C_SLAVE_H
-#define FPGA_I2C_SLAVE_H
-
-#include <dev/i2c/i2c.h>
-
-int i2c_dev_register_fpga_i2c_slave(const char* bus_path,
- const char* dev_path,
- uint16_t address,
- size_t size);
-
-#endif
diff --git a/cpukit/dev/include/dev/i2c/gpio-nxp-pca9535.h b/cpukit/dev/include/dev/i2c/gpio-nxp-pca9535.h
deleted file mode 100644
index 1ebc1a3d4d..0000000000
--- a/cpukit/dev/include/dev/i2c/gpio-nxp-pca9535.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * @file
- *
- * @brief GPIO NXP PCA9535 Driver API
- *
- * @ingroup I2CGPIONXPPCA9535
- */
-
-/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _DEV_I2C_GPIO_NXP_PCA9539_H
-#define _DEV_I2C_GPIO_NXP_PCA9539_H
-
-#include <dev/i2c/i2c.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup I2CGPIONXPPCA9535 GPIO NXP PCA9535 Driver
- *
- * @ingroup I2CDevice
- *
- * @brief Driver for NXP PCA9535 16-bit GPIO device.
- *
- * @{
- */
-
-int i2c_dev_register_gpio_nxp_pca9535(
- const char *bus_path,
- const char *dev_path,
- uint16_t address
-);
-
-#define GPIO_NXP_PCA9535_GET_INPUT (I2C_DEV_IO_CONTROL + 0)
-
-#define GPIO_NXP_PCA9535_GET_OUTPUT (I2C_DEV_IO_CONTROL + 1)
-
-#define GPIO_NXP_PCA9535_SET_OUTPUT (I2C_DEV_IO_CONTROL + 2)
-
-#define GPIO_NXP_PCA9535_CLEAR_AND_SET_OUTPUT (I2C_DEV_IO_CONTROL + 3)
-
-#define GPIO_NXP_PCA9535_GET_POL_INV (I2C_DEV_IO_CONTROL + 4)
-
-#define GPIO_NXP_PCA9535_SET_POL_INV (I2C_DEV_IO_CONTROL + 5)
-
-#define GPIO_NXP_PCA9535_GET_CONFIG (I2C_DEV_IO_CONTROL + 6)
-
-#define GPIO_NXP_PCA9535_SET_CONFIG (I2C_DEV_IO_CONTROL + 7)
-
-static inline int gpio_nxp_pca9535_get_input(int fd, uint16_t *val)
-{
- return ioctl(fd, GPIO_NXP_PCA9535_GET_INPUT, val);
-}
-
-static inline int gpio_nxp_pca9535_get_output(int fd, uint16_t *val)
-{
- return ioctl(fd, GPIO_NXP_PCA9535_GET_OUTPUT, val);
-}
-
-static inline int gpio_nxp_pca9535_set_output(int fd, uint16_t val)
-{
- return ioctl(fd, GPIO_NXP_PCA9535_SET_OUTPUT, (void *)(uintptr_t) val);
-}
-
-static inline int gpio_nxp_pca9535_clear_and_set_output(
- int fd,
- uint16_t clear,
- uint16_t set
-)
-{
- uint32_t clear_and_set = ((uint32_t) set << 16) | (uint32_t) clear;
-
- return ioctl(
- fd,
- GPIO_NXP_PCA9535_CLEAR_AND_SET_OUTPUT,
- (void *)(uintptr_t) clear_and_set
- );
-}
-
-static inline int gpio_nxp_pca9535_get_polarity_inversion(
- int fd,
- uint16_t *val
-)
-{
- return ioctl(fd, GPIO_NXP_PCA9535_GET_POL_INV, val);
-}
-
-static inline int gpio_nxp_pca9535_set_polarity_inversion(int fd, uint16_t val)
-{
- return ioctl(fd, GPIO_NXP_PCA9535_SET_POL_INV, (void *)(uintptr_t) val);
-}
-
-static inline int gpio_nxp_pca9535_get_config(int fd, uint16_t *val)
-{
- return ioctl(fd, GPIO_NXP_PCA9535_GET_CONFIG, val);
-}
-
-static inline int gpio_nxp_pca9535_set_config(int fd, uint16_t val)
-{
- return ioctl(fd, GPIO_NXP_PCA9535_SET_CONFIG, (void *)(uintptr_t) val);
-}
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _DEV_I2C_GPIO_NXP_PCA9539_H */
diff --git a/cpukit/dev/include/dev/i2c/i2c.h b/cpukit/dev/include/dev/i2c/i2c.h
deleted file mode 100644
index 2ace4fcf64..0000000000
--- a/cpukit/dev/include/dev/i2c/i2c.h
+++ /dev/null
@@ -1,432 +0,0 @@
-/**
- * @file
- *
- * @brief Inter-Integrated Circuit (I2C) Driver API
- *
- * @ingroup I2C
- */
-
-/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _DEV_I2C_I2C_H
-#define _DEV_I2C_I2C_H
-
-#include <linux/i2c.h>
-#include <linux/i2c-dev.h>
-
-#include <rtems.h>
-#include <rtems/seterr.h>
-
-#include <sys/ioctl.h>
-#include <sys/stat.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-typedef struct i2c_msg i2c_msg;
-
-typedef struct i2c_bus i2c_bus;
-
-typedef struct i2c_dev i2c_dev;
-
-typedef struct i2c_rdwr_ioctl_data i2c_rdwr_ioctl_data;
-
-/**
- * @defgroup I2C Inter-Integrated Circuit (I2C) Driver
- *
- * @brief Inter-Integrated Circuit (I2C) bus and device driver support.
- *
- * @{
- */
-
-/**
- * @defgroup I2CBus I2C Bus Driver
- *
- * @ingroup I2C
- *
- * @{
- */
-
-/**
- * @name I2C IO Control Commands
- *
- * @{
- */
-
-/**
- * @brief Obtains the bus.
- *
- * This command has no argument.
- */
-#define I2C_BUS_OBTAIN 0x800
-
-/**
- * @brief Releases the bus.
- *
- * This command has no argument.
- */
-#define I2C_BUS_RELEASE 0x801
-
-/**
- * @brief Gets the bus control.
- *
- * The argument type is a pointer to i2c_bus pointer.
- */
-#define I2C_BUS_GET_CONTROL 0x802
-
-/**
- * @brief Sets the bus clock in Hz.
- *
- * The argument type is unsigned long.
- */
-#define I2C_BUS_SET_CLOCK 0x803
-
-/** @} */
-
-/**
- * @brief Default I2C bus clock in Hz.
- */
-#define I2C_BUS_CLOCK_DEFAULT 100000
-
-/**
- * @brief I2C bus control.
- */
-struct i2c_bus {
- /**
- * @brief Transfers I2C messages.
- *
- * @param[in] bus The bus control.
- * @param[in] msgs The messages to transfer.
- * @param[in] msg_count The count of messages to transfer. It must be
- * positive.
- *
- * @retval 0 Successful operation.
- * @retval negative Negative error number in case of an error.
- */
- int (*transfer)(i2c_bus *bus, i2c_msg *msgs, uint32_t msg_count);
-
- /**
- * @brief Sets the bus clock.
- *
- * @param[in] bus The bus control.
- * @param[in] clock The desired bus clock in Hz.
- *
- * @retval 0 Successful operation.
- * @retval negative Negative error number in case of an error.
- */
- int (*set_clock)(i2c_bus *bus, unsigned long clock);
-
- /**
- * @brief Destroys the bus.
- *
- * @param[in] bus The bus control.
- */
- void (*destroy)(i2c_bus *bus);
-
- /**
- * @brief Mutex to protect the bus access.
- */
- rtems_id mutex;
-
- /**
- * @brief Default slave device address.
- */
- uint16_t default_address;
-
- /**
- * @brief Use 10-bit addresses.
- */
- bool ten_bit_address;
-
- /**
- * @brief Use SMBus PEC.
- */
- bool use_pec;
-
- /**
- * @brief Transfer retry count.
- */
- unsigned long retries;
-
- /**
- * @brief Transaction timeout in ticks.
- */
- rtems_interval timeout;
-
- /**
- * @brief Controller functionality.
- */
- unsigned long functionality;
-};
-
-/**
- * @brief Initializes a bus control.
- *
- * After a sucessful initialization the bus control must be destroyed via
- * i2c_bus_destroy(). A registered bus control will be automatically destroyed
- * in case the device file is unlinked. Make sure to call i2c_bus_destroy() in
- * a custom destruction handler.
- *
- * @param[in] bus The bus control.
- *
- * @retval 0 Successful operation.
- * @retval -1 An error occurred. The errno is set to indicate the error.
- *
- * @see i2c_bus_register()
- */
-int i2c_bus_init(i2c_bus *bus);
-
-/**
- * @brief Allocates a bus control from the heap and initializes it.
- *
- * After a sucessful allocation and initialization the bus control must be
- * destroyed via i2c_bus_destroy_and_free(). A registered bus control will be
- * automatically destroyed in case the device file is unlinked. Make sure to
- * call i2c_bus_destroy_and_free() in a custom destruction handler.
- *
- * @param[in] size The size of the bus control. This enables the addition of
- * bus controller specific data to the base bus control. The bus control is
- * zero initialized.
- *
- * @retval non-NULL The new bus control.
- * @retval NULL An error occurred. The errno is set to indicate the error.
- *
- * @see i2c_bus_register()
- */
-i2c_bus *i2c_bus_alloc_and_init(size_t size);
-
-/**
- * @brief Destroys a bus control.
- *
- * @param[in] bus The bus control.
- */
-void i2c_bus_destroy(i2c_bus *bus);
-
-/**
- * @brief Destroys a bus control and frees its memory.
- *
- * @param[in] bus The bus control.
- */
-void i2c_bus_destroy_and_free(i2c_bus *bus);
-
-/**
- * @brief Registers a bus control.
- *
- * This function claims ownership of the bus control regardless if the
- * registration is successful or not.
- *
- * @param[in] bus The bus control.
- * @param[in] bus_path The path to the bus device file.
- *
- * @retval 0 Successful operation.
- * @retval -1 An error occurred. The errno is set to indicate the error.
- */
-int i2c_bus_register(
- i2c_bus *bus,
- const char *bus_path
-);
-
-/**
- * @brief Obtains the bus.
- *
- * @param[in] bus The bus control.
- */
-void i2c_bus_obtain(i2c_bus *bus);
-
-/**
- * @brief Releases the bus.
- *
- * @param[in] bus The bus control.
- */
-void i2c_bus_release(i2c_bus *bus);
-
-/**
- * @brief Transfers I2C messages.
- *
- * The bus is obtained before the transfer and released afterwards.
- *
- * @param[in] bus The bus control.
- * @param[in] msgs The messages to transfer.
- * @param[in] msg_count The count of messages to transfer. It must be
- * positive.
- *
- * @retval 0 Successful operation.
- * @retval negative Negative error number in case of an error.
- */
-int i2c_bus_transfer(i2c_bus *bus, i2c_msg *msgs, uint32_t msg_count);
-
-/** @} */
-
-/**
- * @defgroup I2CDevice I2C Device Driver
- *
- * @ingroup I2C
- *
- * @{
- */
-
-/**
- * @brief Base number for device IO control commands.
- */
-#define I2C_DEV_IO_CONTROL 0x900
-
-/**
- * @brief I2C slave device control.
- */
-struct i2c_dev {
- /**
- * @brief Reads from the device.
- *
- * @retval non-negative Bytes transferred from device.
- * @retval negative Negative error number in case of an error.
- */
- ssize_t (*read)(i2c_dev *dev, void *buf, size_t n, off_t offset);
-
- /**
- * @brief Writes to the device.
- *
- * @retval non-negative Bytes transferred to device.
- * @retval negative Negative error number in case of an error.
- */
- ssize_t (*write)(i2c_dev *dev, const void *buf, size_t n, off_t offset);
-
- /**
- * @brief Device IO control.
- *
- * @retval 0 Successful operation.
- * @retval negative Negative error number in case of an error.
- */
- int (*ioctl)(i2c_dev *dev, ioctl_command_t command, void *arg);
-
- /**
- * @brief Gets the file size.
- */
- off_t (*get_size)(i2c_dev *dev);
-
- /**
- * @brief Gets the file block size.
- */
- blksize_t (*get_block_size)(i2c_dev *dev);
-
- /**
- * @brief Destroys the device.
- */
- void (*destroy)(i2c_dev *dev);
-
- /**
- * @brief The bus control.
- */
- i2c_bus *bus;
-
- /**
- * @brief The device address.
- */
- uint16_t address;
-
- /**
- * @brief File descriptor of the bus.
- *
- * This prevents destruction of the bus since we hold a reference to it with
- * this.
- */
- int bus_fd;
-};
-
-
-/**
- * @brief Initializes a device control.
- *
- * After a sucessful initialization the device control must be destroyed via
- * i2c_dev_destroy(). A registered device control will be automatically
- * destroyed in case the device file is unlinked. Make sure to call
- * i2c_dev_destroy_and_free() in a custom destruction handler.
- *
- * @param[in] device The device control.
- * @param[in] bus_path The path to the bus device file.
- * @param[in] address The address of the device.
- *
- * @retval 0 Successful operation.
- * @retval -1 An error occurred. The errno is set to indicate the error.
- *
- * @see i2c_dev_register()
- */
-int i2c_dev_init(i2c_dev *dev, const char *bus_path, uint16_t address);
-
-/**
- * @brief Allocates a device control from the heap and initializes it.
- *
- * After a sucessful allocation and initialization the device control must be
- * destroyed via i2c_dev_destroy_and_free(). A registered device control will
- * be automatically destroyed in case the device file is unlinked. Make sure
- * to call i2c_dev_destroy_and_free() in a custom destruction handler.
- *
- * @param[in] size The size of the device control. This enables the addition
- * of device specific data to the base device control. The device control is
- * zero initialized.
- * @param[in] bus_path The path to the bus device file.
- * @param[in] address The address of the device.
- *
- * @retval non-NULL The new device control.
- * @retval NULL An error occurred. The errno is set to indicate the error.
- *
- * @see i2c_dev_register()
- */
-i2c_dev *i2c_dev_alloc_and_init(
- size_t size,
- const char *bus_path,
- uint16_t address
-);
-
-/**
- * @brief Destroys a device control.
- *
- * @param[in] dev The device control.
- */
-void i2c_dev_destroy(i2c_dev *dev);
-
-/**
- * @brief Destroys a device control and frees its memory.
- *
- * @param[in] dev The device control.
- */
-void i2c_dev_destroy_and_free(i2c_dev *dev);
-
-/**
- * @brief Registers a device control.
- *
- * This function claims ownership of the device control regardless if the
- * registration is successful or not.
- *
- * @param[in] dev The dev control.
- * @param[in] dev_path The path to the device file of the device.
- *
- * @retval 0 Successful operation.
- * @retval -1 An error occurred. The errno is set to indicate the error.
- */
-int i2c_dev_register(
- i2c_dev *dev,
- const char *dev_path
-);
-
-/** @} */ /* end of i2c device driver */
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _DEV_I2C_I2C_H */
diff --git a/cpukit/dev/include/dev/i2c/sensor-lm75a.h b/cpukit/dev/include/dev/i2c/sensor-lm75a.h
deleted file mode 100644
index e1957dad19..0000000000
--- a/cpukit/dev/include/dev/i2c/sensor-lm75a.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * @file
- *
- * @brief Temperature Sensor LM75A Driver API
- *
- * @ingroup I2CSensorLM75A
- */
-
-/*
- * Copyright (c) 2017 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _DEV_I2C_SENSOR_LM75A_H
-#define _DEV_I2C_SENSOR_LM75A_H
-
-#include <dev/i2c/i2c.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup I2CSensorLM75A Temperature Sensor LM75A Driver
- *
- * @ingroup I2CDevice
- *
- * @brief Driver for NXP or Texas Instruments LM75A temperature sensor.
- *
- * @{
- */
-
-int i2c_dev_register_sensor_lm75a(
- const char *bus_path,
- const char *dev_path,
- uint16_t address
-);
-
-typedef enum {
- SENSOR_LM75A_GET_CONF = I2C_DEV_IO_CONTROL,
- SENSOR_LM75A_SET_CONF,
- SENSOR_LM75A_CLEAR_AND_SET_CONF,
- SENSOR_LM75A_GET_TEMP,
- SENSOR_LM75A_GET_TOS,
- SENSOR_LM75A_SET_TOS,
- SENSOR_LM75A_GET_THYST,
- SENSOR_LM75A_SET_THYST
-} sensor_lm75a_command;
-
-static inline int sensor_lm75a_get_conf(int fd, uint8_t *val)
-{
- return ioctl(fd, SENSOR_LM75A_GET_CONF, val);
-}
-
-static inline int sensor_lm75a_set_conf(int fd, uint8_t val)
-{
- return ioctl(fd, SENSOR_LM75A_SET_CONF, (void *)(uintptr_t) val);
-}
-
-static inline int sensor_lm75a_clear_and_set_conf(
- int fd,
- uint8_t clear,
- uint8_t set
-)
-{
- uint16_t clear_and_set = (uint16_t) (((uint16_t) set << 8) | clear);
-
- return ioctl(
- fd,
- SENSOR_LM75A_CLEAR_AND_SET_CONF,
- (void *)(uintptr_t) clear_and_set
- );
-}
-
-static inline int sensor_lm75a_get_temp(int fd, int16_t *val)
-{
- return ioctl(fd, SENSOR_LM75A_GET_TEMP, val);
-}
-
-static inline int sensor_lm75a_get_temp_celsius(int fd, double *celsius)
-{
- int rv;
- int16_t val;
-
- rv = ioctl(fd, SENSOR_LM75A_GET_TEMP, &val);
- *celsius = (((int) val) >> 5) * 0.125;
- return rv;
-}
-
-static inline int sensor_lm75a_get_tos(int fd, uint16_t *val)
-{
- return ioctl(fd, SENSOR_LM75A_GET_TOS, val);
-}
-
-static inline int sensor_lm75a_set_tos(int fd, uint16_t val)
-{
- return ioctl(fd, SENSOR_LM75A_SET_TOS, (void *)(uintptr_t) val);
-}
-
-static inline int sensor_lm75a_get_thyst(int fd, uint16_t *val)
-{
- return ioctl(fd, SENSOR_LM75A_GET_THYST, val);
-}
-
-static inline int sensor_lm75a_set_thyst(int fd, uint16_t val)
-{
- return ioctl(fd, SENSOR_LM75A_SET_THYST, (void *)(uintptr_t) val);
-}
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _DEV_I2C_SENSOR_LM75A_H */
diff --git a/cpukit/dev/include/dev/i2c/switch-nxp-pca9548a.h b/cpukit/dev/include/dev/i2c/switch-nxp-pca9548a.h
deleted file mode 100644
index ce8ef2c809..0000000000
--- a/cpukit/dev/include/dev/i2c/switch-nxp-pca9548a.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * @file
- *
- * @brief Switch NXP PCA9548A Driver API
- *
- * @ingroup I2CSWITCHNXPPCA9548A
- */
-
-/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _DEV_I2C_SWITCH_NXP_PCA9548A_H
-#define _DEV_I2C_SWITCH_NXP_PCA9548A_H
-
-#include <dev/i2c/i2c.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup I2CSWITCHNXPPCA9548A Switch NXP PCA9535 Driver
- *
- * @ingroup I2CDevice
- *
- * @brief Driver for NXP PCA9548A 8-channel switch device.
- *
- * @{
- */
-
-int i2c_dev_register_switch_nxp_pca9548a(
- const char *bus_path,
- const char *dev_path,
- uint16_t address
-);
-
-#define SWITCH_NXP_PCA9548A_GET_CONTROL (I2C_DEV_IO_CONTROL + 0)
-
-#define SWITCH_NXP_PCA9548A_SET_CONTROL (I2C_DEV_IO_CONTROL + 1)
-
-static inline int switch_nxp_pca9548a_get_control(int fd, uint8_t *val)
-{
- return ioctl(fd, SWITCH_NXP_PCA9548A_GET_CONTROL, val);
-}
-
-static inline int switch_nxp_pca9548a_set_control(int fd, uint8_t val)
-{
- return ioctl(fd, SWITCH_NXP_PCA9548A_SET_CONTROL, (void *)(uintptr_t) val);
-}
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _DEV_I2C_SWITCH_NXP_PCA9548A_H */
diff --git a/cpukit/dev/include/dev/i2c/ti-ads-16bit-adc.h b/cpukit/dev/include/dev/i2c/ti-ads-16bit-adc.h
deleted file mode 100644
index 40d680da88..0000000000
--- a/cpukit/dev/include/dev/i2c/ti-ads-16bit-adc.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (c) 2016-2017 Chris Johns <chrisj@rtems.org>
- * All rights reserved.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*
- * TI ADS1113 and ADS1115.
- * http://www.ti.com/product/ads1113/description
- */
-
-#ifndef TI_ADS1113_ADS1115_H
-#define TI_ADS1113_ADS1115_H
-
-#include <dev/i2c/i2c.h>
-
-/*
- * Supported devices. Please others once tested.
- */
-typedef enum {
- TI_ADS1113,
- TI_ADS1114,
- TI_ADS1115
-} ti_ads_adc;
-
-/*
- * Multiplexer interface. Avalable on ADS1115.
- */
-typedef enum {
- TI_ADS_MUX_ApA0_AnA1 = 0, /* default */
- TI_ADS_MUX_ApA0_AnA3 = 1,
- TI_ADS_MUX_ApA1_AnA3 = 2,
- TI_ADS_MUX_ApA2_AnA3 = 3,
- TI_ADS_MUX_ApA0_AnGND = 4,
- TI_ADS_MUX_ApA1_AnGND = 5,
- TI_ADS_MUX_ApA2_AnGND = 6,
- TI_ADS_MUX_ApA3_AnGND = 7
-} ti_ads_adc_mux;
-
-/*
- * Programmable Gain Amplifier. Avalable on ADS1114 and ADS1115.
- */
-typedef enum {
- TI_ADS_PGA_FS_6_144V = 0,
- TI_ADS_PGA_FS_4_096V = 1,
- TI_ADS_PGA_FS_2_048V = 2, /* default */
- TI_ADS_PGA_FS_1_024V = 3,
- TI_ADS_PGA_FS_0_512V = 4,
- TI_ADS_PGA_FS_0_256V = 5,
- TI_ADS_PGA_FS_0_256V_2 = 6,
- TI_ADS_PGA_FS_0_256V_3 = 7,
-} ti_ads_adc_pga;
-
-/*
- * Mode.
- */
-typedef enum {
- TI_ADS_MODE_CONTINUOUS = 0,
- TI_ADS_MODE_SINGLE_SHOT = 1, /* default */
-} ti_ads_adc_mode;
-
-/*
- * Data rate.
- */
-typedef enum {
- TI_ADS_DATARATE_8SPS = 0,
- TI_ADS_DATARATE_16SPS = 1,
- TI_ADS_DATARATE_32SPS = 2,
- TI_ADS_DATARATE_64SPS = 3,
- TI_ADS_DATARATE_128SPS = 4, /* default */
- TI_ADS_DATARATE_250SPS = 5,
- TI_ADS_DATARATE_475SPS = 6,
- TI_ADS_DATARATE_860SPS = 7,
-} ti_ads_adc_data_rate;
-
-/*
- * Comparitor interface. Avalable on ADS1114 and ADS1115.
- *
- * Create a value to write.
- */
-#define TI_ADS_COMP_MODE_HYSTERESIS (0 << 4) /* default */
-#define TI_ADS_COMP_MODE_WINDOW (1 << 4)
-#define TI_ADS_COMP_POL_ACTIVE_LOW (0 << 3) /* default */
-#define TI_ADS_COMP_POL_ACTIVE_HIGH (1 << 3)
-#define TI_ADS_COMP_LAT_NON_LATCHING (0 << 2) /* default */
-#define TI_ADS_COMP_LAT_LATCHING (1 << 2)
-#define TI_ADS_COMP_QUE_DISABLE_COMP (3 << 0) /* default */
-#define TI_ADS_COMP_QUE_AFTER_4 (2 << 0)
-#define TI_ADS_COMP_QUE_AFTER_2 (1 << 0)
-#define TI_ADS_COMP_QUE_AFTER_1 (0 << 0)
-
-/*
- * IO control interface.
- *
- * Note: if in Power-down single-shot mode (default) a conversion requires the
- * device to power up and perform a conversion and this can take
- * while. The TI_ADS_ADC_GET_CONV_WAIT call sets the micro-seconds to
- * wait between polls. The actual rate will depend on the system tick.
- */
-#define TI_ADS_ADC_GET_CONVERSION (I2C_DEV_IO_CONTROL + 0)
-#define TI_ADS_ADC_SET_MUX (I2C_DEV_IO_CONTROL + 1)
-#define TI_ADS_ADC_SET_PGA (I2C_DEV_IO_CONTROL + 2)
-#define TI_ADS_ADC_SET_MODE (I2C_DEV_IO_CONTROL + 3)
-#define TI_ADS_ADC_SET_DATA_RATE (I2C_DEV_IO_CONTROL + 4)
-#define TI_ADS_ADC_SET_COMP (I2C_DEV_IO_CONTROL + 5)
-#define TI_ADS_ADC_SET_LO_THRESH (I2C_DEV_IO_CONTROL + 6)
-#define TI_ADS_ADC_SET_HI_THRESH (I2C_DEV_IO_CONTROL + 7)
-#define TI_ADS_ADC_SET_CONV_WAIT (I2C_DEV_IO_CONTROL + 8)
-
-/*
- * Register the device.
- */
-int i2c_dev_register_ti_ads_adc(const char* bus_path,
- const char* dev_path,
- uint16_t address,
- ti_ads_adc device);
-
-/*
- * Perform a conversion. If the mode is single shot a single shot conversion is
- * started and the call waits for the conversion to complete.
- */
-static inline int
-ti_ads_adc_convert(int fd, uint16_t* sample)
-{
- return ioctl(fd, TI_ADS_ADC_GET_CONVERSION, sample);
-}
-
-/*
- * Set the multipler.
- */
-static inline int
-ti_ads_adc_set_mux(int fd, ti_ads_adc_mux mux)
-{
- return ioctl(fd, TI_ADS_ADC_SET_MUX, (void *)(uintptr_t) mux);
-}
-
-/*
- * Set the PGA.
- */
-static inline int
-ti_ads_adc_set_pga(int fd, ti_ads_adc_pga pga)
-{
- return ioctl(fd, TI_ADS_ADC_SET_PGA, (void *)(uintptr_t) pga);
-}
-
-/*
- * Set the mode.
- */
-static inline int
-ti_ads_adc_set_mode(int fd, ti_ads_adc_mode mode)
-{
- return ioctl(fd, TI_ADS_ADC_SET_MODE, (void *)(uintptr_t) mode);
-}
-
-/*
- * Set the data rate.
- */
-static inline int
-ti_ads_adc_set_data_rate(int fd, ti_ads_adc_data_rate rate)
-{
- return ioctl(fd, TI_ADS_ADC_SET_DATA_RATE, (void *)(uintptr_t) rate);
-}
-
-/*
- * Configure the comparator.
- */
-static inline int
-ti_ads_adc_set_comparator(int fd, uint16_t comp)
-{
- return ioctl(fd, TI_ADS_ADC_SET_COMP, (void *)(uintptr_t) comp);
-}
-
-/*
- * Set the lower threshold.
- */
-static inline int
-ti_ads_adc_set_low_threshold(int fd, uint16_t level)
-{
- return ioctl(fd, TI_ADS_ADC_SET_LO_THRESH, (void *)(uintptr_t) level);
-}
-
-/*
- * Set the upper threshold.
- */
-static inline int
-ti_ads_adc_set_high_threshold(int fd, uint16_t level)
-{
- return ioctl(fd, TI_ADS_ADC_SET_HI_THRESH, (void *)(uintptr_t) level);
-}
-
-/*
- * Set the conversion poll wait period.
- */
-static inline int
-ti_ads_adc_set_conversion_poll_wait(int fd, uint32_t micro_seconds)
-{
- return ioctl(fd, TI_ADS_ADC_SET_CONV_WAIT, (void *)(uintptr_t) micro_seconds);
-}
-
-#endif
diff --git a/cpukit/dev/include/dev/i2c/ti-lm25066a.h b/cpukit/dev/include/dev/i2c/ti-lm25066a.h
deleted file mode 100644
index 4429f0fc70..0000000000
--- a/cpukit/dev/include/dev/i2c/ti-lm25066a.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright (c) 2016-2017 Chris Johns <chrisj@rtems.org>
- * All rights reserved.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*
- * TI LM25066A
- * http://www.ti.com/product/LM25066A
- */
-
-#ifndef TI_LM25066A_H
-#define TI_LM25066A_H
-
-#include <dev/i2c/i2c.h>
-
-/*
- * PM Bus Command interface.
- *
- * The keys are:
- * IO : IO direction R=read W=write
- * SZ : Size in bytes.
- */
-typedef enum
-{ /* IO SZ Name */
- TI_LM25066A_OPERATION = 0, /* R 1 PMBus */
- TI_LM25066A_CLEAR_FAULTS = 1, /* W 0 PMBus */
- TI_LM25066A_CAPABILITY = 2, /* R 1 PMBus */
- TI_LM25066A_VOUT_UV_WARN_LIMIT = 3, /* RW 2 PMBus */
- TI_LM25066A_OT_FAULT_LIMIT = 4, /* RW 2 PMBus */
- TI_LM25066A_OT_WARN_LIMIT = 5, /* RW 2 PMBus */
- TI_LM25066A_VIN_OV_WARN_LIMIT = 6, /* RW 2 PMBus */
- TI_LM25066A_VIN_UV_WARN_LIMIT = 7, /* RW 2 PMBus */
- TI_LM25066A_STATUS_BYTE = 8, /* R 1 PMBus */
- TI_LM25066A_STATUS_WORD = 9, /* R 2 PMBus */
- TI_LM25066A_STATUS_VOUT = 10, /* R 1 PMBus */
- TI_LM25066A_STATUS_INPUT = 11, /* R 1 PMBus */
- TI_LM25066A_STATUS_TEMPERATURE = 12, /* R 1 PMBus */
- TI_LM25066A_STATUS_CML = 13, /* R 1 PMBus */
- TI_LM25066A_STATUS_MFR_SPECIFIC = 14, /* R 1 PMBus */
- TI_LM25066A_READ_VIN = 15, /* R 2 PMBus */
- TI_LM25066A_READ_VOUT = 16, /* R 2 PMBus */
- TI_LM25066A_READ_TEMPERATURE_1 = 17, /* R 2 PMBus */
- TI_LM25066A_MFR_ID = 18, /* R 3 PMBus */
- TI_LM25066A_MFR_MODEL = 19, /* R 8 PMBus */
- TI_LM25066A_MFR_REVISION = 20, /* R 2 PMBus */
- TI_LM25066A_MFR_READ_VAUX = 21, /* R 2 MFR_SPECIFIC_00 */
- TI_LM25066A_MFR_READ_IIN = 22, /* R 2 MFR_SPECIFIC_01 */
- TI_LM25066A_MFR_READ_PIN = 23, /* R 2 MFR_SPECIFIC_02 */
- TI_LM25066A_MFR_IIN_OC_WARN_LIMIT = 24, /* RW 2 MFR_SPECIFIC_03 */
- TI_LM25066A_MFR_PIN_OP_WARN_LIMIT = 25, /* RW 2 MFR_SPECIFIC_04 */
- TI_LM25066A_MFR_PIN_PEAK = 26, /* R 2 MFR_SPECIFIC_05 */
- TI_LM25066A_MFR_CLEAR_PIN_PEAK = 27, /* W 0 MFR_SPECIFIC_06 */
- TI_LM25066A_MFR_GATE_MASK = 28, /* RW 1 MFR_SPECIFIC_07 */
- TI_LM25066A_MFR_ALERT_MASK = 29, /* RW 2 MFR_SPECIFIC_08 */
- TI_LM25066A_MFR_DEVICE_SETUP = 30, /* RW 1 MFR_SPECIFIC_09 */
- TI_LM25066A_MFR_BLOCK_READ = 31, /* R 12 MFR_SPECIFIC_10 */
- TI_LM25066A_MFR_SAMPLES_FOR_AVG = 32, /* RW 1 MFR_SPECIFIC_11 */
- TI_LM25066A_MFR_READ_AVG_VIN = 33, /* R 2 MFR_SPECIFIC_12 */
- TI_LM25066A_MFR_READ_AVG_VOUT = 34, /* R 2 MFR_SPECIFIC_13 */
- TI_LM25066A_MFR_READ_AVG_IIN = 35, /* R 2 MFR_SPECIFIC_14 */
- TI_LM25066A_MFR_READ_AVG_PIN = 36, /* R 2 MFR_SPECIFIC_15 */
- TI_LM25066A_MFR_BLACK_BOX_READ = 37, /* R 12 MFR_SPECIFIC_16 */
- TI_LM25066A_MFR_DIAGNOSTIC_WORD_READ = 38, /* R 2 MFR_SPECIFIC_17 */
- TI_LM25066A_MFR_AVG_BLOCK_READ = 39, /* R 12 MFR_SPECIFIC_18 */
-} ti_lm25066a_cmd;
-
-/*
- * Real world converters. Page 46 of the datasheet discusses reading and
- * writing telemtry data and obtaining the real world values. There are 8
- * separate conversions using the same formula.
- *
- * The formula is:
- *
- * 1 -R
- * X = - (Y x 10 - b)
- * m
- *
- * X: the calculated "real world" value (volts, amps, watt, etc.)
- * m: the slope coefficient
- * Y: a two byte two's complement integer received from device
- * b: the offset, a two byte two's complement integer
- * R: the exponent, a one byte two's complement integer
- *
- * R in the table is inverted because we cannot store 0.01 in an int. This
- * makes the equation:
- *
- * 1 Y
- * X = - (- - b)
- * m R
- *
- * The R value lets the integer result have decimal places.
- *
- * There are 8 conversion table entries listed in Table 41 of the
- * data sheet. They are:
- *
- * 1. READ_VIN, READ_AVG_VIN, VIN_OV_WARN_LIMIT, VIN_UV_WARN_LIMIT
- * 2. READ_VOUT, READ_AVG_VOUT, VOUT_UV_WARN_LIMIT
- * 3. READ_VAUX
- * 4.GND READ_IIN, READ_AVG_IIN, MFR_IIN_OC_WARN_LIMIT
- * 4.VDD READ_IIN, READ_AVG_IIN, MFR_IIN_OC_WARN_LIMIT
- * 5.GND READ_PIN, READ_AVG_PIN, READ_PIN_PEAK, MFR_PIN_OP_WARN_LIMIT
- * 5.VCC READ_PIN, READ_AVG_PIN, READ_PIN_PEAK, MFR_PIN_OP_WARN_LIMIT
- * 6. READ_TEMPERATURE_1, OT_WARN_LIMIT, OT_FAULT_LIMIT
- *
- * You need to provide 6 sets of conversion factors. Row 4 and 5 depend on how
- * the device is wired. The driver will use the matching table row to convert
- * the 2-complement 12 bit to a real world value.
- */
-#define TI_LM25066A_CONVERSION_SIZE (6)
-typedef struct
-{
- int m; /* The slope coefficient */
- int b; /* The offset */
- int R; /* The inverted power of 10 of -R */
-} ti_lm25066a_conversion;
-
-/*
- * IO control interface.
- */
-#define TI_LM25066A_GET (I2C_DEV_IO_CONTROL + 0)
-#define TI_LM25066A_SET (I2C_DEV_IO_CONTROL + 1)
-
-/*
- * IO data types.
- */
-typedef enum
-{
- TI_LM25066A_8BIT = 0,
- TI_LM25066A_16BIT = 1,
- TI_LM25066A_VALUE = 2,
- TI_LM25066A_VALUES = 3,
- TI_LM25066A_STRING = 4,
- TI_LM25066A_RAW = 5
-} ti_lm25066a_data;
-
-/*
- * Struct to move data into and out of the driver.
- */
-typedef struct
-{
- ti_lm25066a_cmd cmd;
- ti_lm25066a_data type;
- union {
- uint8_t u8;
- uint16_t u16;
- int value;
- int values[6];
- char string[9];
- uint8_t* raw;
- } data;
-} ti_lm25066a_io;
-
-/*
- * Register the device.
- *
- * The conversions table has 6 columns.
- *
- * The values are an integer so the decimal_point value scales the value so it
- * can fit in an integer with the required number of decimal points.
- */
-int i2c_dev_register_ti_lm25066a(const char* bus_path,
- const char* dev_path,
- uint16_t address,
- const ti_lm25066a_conversion* const conversions,
- const int decimal_points);
-
-/*
- * Get.
- */
-static inline int
-ti_lm25066a_get(int fd, ti_lm25066a_io* io)
-{
- return ioctl(fd, TI_LM25066A_GET, io);
-}
-
-/*
- * Set.
- */
-static inline int
-ti_lm25066a_set(int fd, ti_lm25066a_io* io)
-{
- return ioctl(fd, TI_LM25066A_SET, io);
-}
-
-
-#endif
diff --git a/cpukit/dev/include/dev/i2c/ti-tmp112.h b/cpukit/dev/include/dev/i2c/ti-tmp112.h
deleted file mode 100644
index 1b80fa6994..0000000000
--- a/cpukit/dev/include/dev/i2c/ti-tmp112.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2016-2017 Chris Johns <chrisj@rtems.org>
- * All rights reserved.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*
- * TI TMP112
- * http://www.ti.com/product/TMP112
- */
-
-#ifndef TI_TMP112_H
-#define TI_TMP112_H
-
-#include <dev/i2c/i2c.h>
-
-/*
- * Confirguration.
- */
-#define TI_TMP112_CR_0_25Hz (0 << 6)
-#define TI_TMP112_CR_1Hz (1 << 6)
-#define TI_TMP112_CR_4Hz (2 << 6) /* default */
-#define TI_TMP112_CR_8Hz (3 << 6)
-#define TI_TMP112_EM_NORMAL (0 << 4) /* default */
-#define TI_TMP112_EM_EXTENDED (1 << 4)
-#define TI_TMP112_SD_ON (0 << 8) /* default */
-#define TI_TMP112_SD_SHUTDOWN (1 << 8)
-#define TI_TMP112_TM_COMPARATOR (0 << 9) /* default */
-#define TI_TMP112_TM_INTERRUPT (1 << 9)
-#define TI_TMP112_POL_ALERT_LOW (0 << 10) /* default */
-#define TI_TMP112_POL_ALERT_HIGH (1 << 10)
-#define TI_TMP112_FQL_1 (0 << 11) /* default */
-#define TI_TMP112_FQL_2 (1 << 11)
-#define TI_TMP112_FQL_4 (2 << 11)
-#define TI_TMP112_FQL_6 (3 << 11)
-
-/*
- * IO control interface.
- */
-#define TI_TMP112_GET_TEMP (I2C_DEV_IO_CONTROL + 0)
-#define TI_TMP112_GET_TEMP_RAW (I2C_DEV_IO_CONTROL + 1)
-#define TI_TMP112_SET_CONFIG (I2C_DEV_IO_CONTROL + 2)
-#define TI_TMP112_SET_LOW_TEMP (I2C_DEV_IO_CONTROL + 3)
-#define TI_TMP112_SET_HIGH_TEMP (I2C_DEV_IO_CONTROL + 4)
-
-/*
- * Register the device.
- */
-int i2c_dev_register_ti_tmp112(const char* bus_path,
- const char* dev_path,
- uint16_t address);
-
-/*
- * Get the temperature in degrees C x 10000. To print you would so:
- *
- * printf("Temperature is %3d.%04d\n", temp / 10000, temp % 10000);
- *
- * If the device is shutdown a single conversion is made waiting for the
- * conversion to complete.
- */
-static inline int
-ti_tmp112_get_temperature(int fd, int* temp)
-{
- return ioctl(fd, TI_TMP112_GET_TEMP, temp);
-}
-
-/*
- * Get the temperature as the raw register value.
- *
- * If the device is shutdown a single conversion is made waiting for the
- * conversion to complete.
- */
-static inline int
-ti_tmp112_get_temperature_raw(int fd, unsigned int* temp)
-{
- return ioctl(fd, TI_TMP112_GET_TEMP_RAW, temp);
-}
-
-/*
- * Set the configuration.
- */
-static inline int
-ti_tmp112_adc_set_config(int fd, uint16_t config)
-{
- return ioctl(fd, TI_TMP112_SET_CONFIG, (void *)(uintptr_t) config);
-}
-
-/*
- * Set the low temperature.
- */
-static inline int
-ti_tmp112_set_low_temperator(int fd, uint16_t temp)
-{
- return ioctl(fd, TI_TMP112_SET_LOW_TEMP, (void *)(uintptr_t) temp);
-}
-
-/*
- * Set the high temperature.
- */
-static inline int
-ti_tmp112_adc_set_high_threshold(int fd, uint16_t level)
-{
- return ioctl(fd, TI_TMP112_SET_HIGH_TEMP, (void *)(uintptr_t) level);
-}
-
-#endif
diff --git a/cpukit/dev/include/dev/i2c/xilinx-axi-i2c.h b/cpukit/dev/include/dev/i2c/xilinx-axi-i2c.h
deleted file mode 100644
index fafac346ec..0000000000
--- a/cpukit/dev/include/dev/i2c/xilinx-axi-i2c.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2016-2017 Chris Johns <chrisj@rtems.org> All rights reserved.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/*
- * Xilinx AXI IIC Interface v2.0. See PG090.pdf.
- *
- * Note, only master support is provided and no dynamic mode by design.
- *
- * The clock set up is to be handled by the IP integrator. There are too many
- * factors handling this in software.
- */
-
-
-#ifndef XILINX_AXI_I2C_H
-#define XILINX_AXI_I2C_H
-
-#include <dev/i2c/i2c.h>
-
-/*
- * The PL integrator controls the timing. This interface allows software to
- * override those settings. It pays to check the timing with ChipScope.
- *
- * If you set the AXI bus frequency you can use the clock speed ioctl call to
- * change the speed dymanically. The ioctl call overrides the defaults passed
- * in.
- *
- * Set the valid mask to the values that are to be set.
- */
-#define XILINX_AIX_I2C_AXI_CLOCK (1 << 0)
-#define XILINX_AIX_I2C_TSUSTA (1 << 1)
-#define XILINX_AIX_I2C_TSUSTO (1 << 2)
-#define XILINX_AIX_I2C_THDSTA (1 << 3)
-#define XILINX_AIX_I2C_TSUDAT (1 << 4)
-#define XILINX_AIX_I2C_TBUF (1 << 5)
-#define XILINX_AIX_I2C_THIGH (1 << 6)
-#define XILINX_AIX_I2C_TLOW (1 << 7)
-#define XILINX_AIX_I2C_THDDAT (1 << 8)
-#define XILINX_AIX_I2C_ALL_REGS (XILINX_AIX_I2C_TSUSTA | \
- XILINX_AIX_I2C_TSUSTO | \
- XILINX_AIX_I2C_THDSTA | \
- XILINX_AIX_I2C_TSUDAT | \
- XILINX_AIX_I2C_TBUF | \
- XILINX_AIX_I2C_THIGH | \
- XILINX_AIX_I2C_TLOW | \
- XILINX_AIX_I2C_THDDAT)
-typedef struct
-{
- uint32_t valid_mask;
- uint32_t AXI_CLOCK;
- uint32_t SCL_INERTIAL_DELAY;
- uint32_t TSUSTA;
- uint32_t TSUSTO;
- uint32_t THDSTA;
- uint32_t TSUDAT;
- uint32_t TBUF;
- uint32_t THIGH;
- uint32_t TLOW;
- uint32_t THDDAT;
-} xilinx_aix_i2c_timing;
-
-/*
- * Register the driver.
- *
- * The driver can multipex a number of I2C buses (in master mode only) using
- * the GPO port. The PL designer can use the output pins to select a bus. This
- * is useful if connecting a number of slave devices that have limit selectable
- * addresses.
- *
- * @param bus_path The driver's device path.
- * @param register_base AXI base address.
- * @param irq AXI FPGA interrupt.
- * @param gpio_address Bits 12:15 of a slave address it written to the GPO.
- * @param timing Override the default timing. NULL means no changes.
- */
-int i2c_bus_register_xilinx_aix_i2c(const char* bus_path,
- uintptr_t register_base,
- rtems_vector_number irq,
- bool ten_gpio,
- const xilinx_aix_i2c_timing* timing);
-
-#endif
diff --git a/cpukit/dev/include/dev/serial/sc16is752.h b/cpukit/dev/include/dev/serial/sc16is752.h
deleted file mode 100644
index 7e5b47aaa2..0000000000
--- a/cpukit/dev/include/dev/serial/sc16is752.h
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (c) 2016 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <info@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _DEV_SERIAL_SC16IS752_H
-#define _DEV_SERIAL_SC16IS752_H
-
-#include <sys/ioccom.h>
-
-#include <rtems/termiostypes.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup SC16IS752 SC16IS752 Serial Device Driver
- *
- * @ingroup TermiostypesSupport
- */
-
-typedef enum {
- SC16IS752_MODE_RS232,
- SC16IS752_MODE_RS485
-} sc16is752_mode;
-
-typedef struct sc16is752_context sc16is752_context;
-
-/**
- * @brief SC16IS752 device context.
- */
-struct sc16is752_context {
- rtems_termios_device_context base;
-
- /**
- * @brief Writes a register.
- *
- * Internal handler.
- */
- int (*write_reg)(
- sc16is752_context *ctx,
- uint8_t addr,
- const uint8_t *data,
- size_t len
- );
-
- /**
- * @brief Reads a register.
- *
- * Internal handler.
- */
- int (*read_reg)(
- sc16is752_context *ctx,
- uint8_t addr,
- uint8_t *data,
- size_t len
- );
-
- /**
- * @brief Reads two registers.
- *
- * Internal handler.
- */
- int (*read_2_reg)(
- sc16is752_context *ctx,
- uint8_t addr_0,
- uint8_t addr_1,
- uint8_t data[2]
- );
-
- /**
- * @brief First open.
- *
- * Internal handler.
- */
- bool (*first_open)(sc16is752_context *ctx);
-
- /**
- * @brief Last close.
- *
- * Internal handler.
- */
- void (*last_close)(sc16is752_context *ctx);
-
- /**
- * @brief Shall install the interrupt handler.
- *
- * Must be initialized by the user before the device creation.
- */
- bool (*install_irq)(sc16is752_context *ctx);
-
- /**
- * @brief Shall remove the interrupt handler.
- *
- * Must be initialized by the user before the device creation.
- */
- void (*remove_irq)(sc16is752_context *ctx);
-
- /**
- * @brief Device mode.
- *
- * Must be initialized by the user before the device creation.
- */
- sc16is752_mode mode;
-
- /**
- * @brief Input frequency in Hertz (dependent on crystal, see XTAL1 and XTAL2
- * pins).
- *
- * Must be initialized by the user before the device creation.
- */
- uint32_t input_frequency;
-
- /**
- * @brief Corresponding Termios structure.
- *
- * Internal variable.
- */
- rtems_termios_tty *tty;
-
- /**
- * @brief Shadow Interrupt Enable Register (IER).
- *
- * Internal variable.
- */
- uint8_t ier;
-
- /**
- * @brief Characters placed into transmit FIFO.
- *
- * Internal variable.
- */
- uint8_t tx_in_progress;
-
- /**
- * @brief Count of free characters in the transmit FIFO.
- *
- * Internal variable.
- */
- uint8_t tx_fifo_free;
-
- /**
- * @brief Shadow Line Control Register (LCR).
- *
- * Internal variable.
- */
- uint8_t lcr;
-
- /**
- * @brief Shadow Extra Features Control Register (EFCR).
- *
- * Internal variable.
- */
- uint8_t efcr;
-};
-
-/**
- * @brief SC16IS752 SPI context.
- */
-typedef struct {
- sc16is752_context base;
-
- /**
- * @brief The SPI bus device file descriptor.
- *
- * Internal variable.
- */
- int fd;
-
- /**
- * @brief The SPI device chip select.
- *
- * Must be initialized by the user before the call to sc16is752_spi_create().
- */
- uint8_t cs;
-
- /**
- * @brief The SPI bus speed in Hertz.
- *
- * Must be initialized by the user before the call to sc16is752_spi_create().
- */
- uint32_t speed_hz;
-
- /**
- * @brief The SPI bus device path.
- *
- * Must be initialized by the user before the call to sc16is752_spi_create().
- */
- const char *spi_path;
-} sc16is752_spi_context;
-
-/**
- * @brief SC16IS752 I2C context.
- */
-typedef struct {
- sc16is752_context base;
-
- /**
- * @brief The I2C bus device file descriptor.
- *
- * Internal variable.
- */
- int fd;
-
- /**
- * @brief The I2C bus device path.
- *
- * Must be initialized before the call to sc16is752_i2c_create().
- */
- const char *bus_path;
-} sc16is752_i2c_context;
-
-const rtems_termios_device_handler sc16is752_termios_handler;
-
-/**
- * @brief The interrupt handler for receive and transmit operations.
- *
- * @param[in] arg The device context.
- */
-void sc16is752_interrupt_handler(void *arg);
-
-/**
- * @brief Creates an SPI connected SC16IS752 device.
- *
- * @param[in] ctx The SPI SC16IS752 device context.
- * @param[in] device_path The device file path for the new device.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval other See rtems_termios_device_install().
- */
-rtems_status_code sc16is752_spi_create(
- sc16is752_spi_context *ctx,
- const char *device_path
-);
-
-/**
- * @brief Enables the sleep mode if non-zero, otherwise disables it.
- *
- * The sleep mode is disabled by default.
- */
-#define SC16IS752_SET_SLEEP_MODE _IOW('d', 0, int)
-
-/**
- * @brief Returns non-zero in case the sleep mode is enabled, otherwise zero.
- */
-#define SC16IS752_GET_SLEEP_MODE _IOR('d', 0, int)
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _DEV_SERIAL_SC16IS752_H */
diff --git a/cpukit/dev/include/dev/spi/spi.h b/cpukit/dev/include/dev/spi/spi.h
deleted file mode 100644
index 66bbac2427..0000000000
--- a/cpukit/dev/include/dev/spi/spi.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- * @file
- *
- * @brief Serial Peripheral Interface (SPI) Driver API
- *
- * @ingroup SPI
- */
-
-/*
- * Copyright (c) 2016 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _DEV_SPI_SPI_H
-#define _DEV_SPI_SPI_H
-
-#include <linux/spi/spidev.h>
-
-#include <rtems.h>
-#include <rtems/seterr.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-typedef struct spi_ioc_transfer spi_ioc_transfer;
-
-typedef struct spi_bus spi_bus;
-
-/**
- * @defgroup SPI Serial Peripheral Interface (SPI) Driver
- *
- * @brief Serial Peripheral Interface (SPI) bus driver support.
- *
- * @{
- */
-
-/**
- * @brief Obtains the bus.
- *
- * This command has no argument.
- */
-#define SPI_BUS_OBTAIN _IO(SPI_IOC_MAGIC, 13)
-
-/**
- * @brief Releases the bus.
- *
- * This command has no argument.
- */
-#define SPI_BUS_RELEASE _IO(SPI_IOC_MAGIC, 23)
-
-/**
- * @brief SPI bus control.
- */
-struct spi_bus {
- /**
- * @brief Transfers SPI messages.
- *
- * @param[in] bus The bus control.
- * @param[in] msgs The messages to transfer.
- * @param[in] msg_count The count of messages to transfer. It must be
- * positive.
- *
- * @retval 0 Successful operation.
- * @retval negative Negative error number in case of an error.
- */
- int (*transfer)(spi_bus *bus, const spi_ioc_transfer *msgs, uint32_t msg_count);
-
- /**
- * @brief Checks if maximum speed and bits per word are in a valid range
- * for the device
- *
- * @param[in] bus The bus control.
- *
- * @retval 0 Successful operation.
- * @retval negative Negative error number in case of an error.
- */
- int (*setup)(spi_bus *bus);
-
- /**
- * @brief Destroys the bus.
- *
- * @param[in] bus The bus control.
- */
- void (*destroy)(spi_bus *bus);
-
- /**
- * @brief Mutex to protect the bus access.
- */
- rtems_id mutex;
-
- /**
- * @brief Maximum Speed in Hz
- */
- uint32_t max_speed_hz;
-
- /**
- * @brief Indicates the speed of the current device message.
- */
- uint32_t speed_hz;
-
- /**
- * @brief Indicates if chip select must be set high after transfer.
- */
- bool cs_change;
-
- /**
- * @brief Indicates which device is selected by chip select
- */
- uint8_t cs;
-
- /**
- * @brief Indicates the bits per word used on the device.
- */
- uint8_t bits_per_word;
-
- /**
- * @brief Indicates if LSB is supposed to be transmitted first.
- */
- bool lsb_first;
-
- /**
- * @brief Current mode.
- */
- uint32_t mode;
-
- /**
- * @brief Indicates the delay between transfers on different chip select
- * devices.
- */
- uint16_t delay_usecs;
-};
-
-/**
- * @brief Initializes a bus control.
- *
- * After a sucessful initialization the bus control must be destroyed via
- * spi_bus_destroy(). A registered bus control will be automatically destroyed
- * in case the device file is unlinked. Make sure to call spi_bus_destroy() in
- * a custom destruction handler.
- *
- * @param[in] bus The bus control.
- *
- * @retval 0 Successful operation.
- * @retval -1 An error occurred. The errno is set to indicate the error.
- *
- * @see spi_bus_register()
- */
-int spi_bus_init(spi_bus *bus);
-
-/**
- * @brief Allocates a bus control from the heap and initializes it.
- *
- * After a sucessful allocation and initialization the bus control must be
- * destroyed via spi_bus_destroy_and_free(). A registered bus control will be
- * automatically destroyed in case the device file is unlinked. Make sure to
- * call spi_bus_destroy_and_free() in a custom destruction handler.
- *
- * @param[in] size The size of the bus control. This enables the addition of
- * bus controller specific data to the base bus control. The bus control is
- * zero initialized.
- *
- * @retval non-NULL The new bus control.
- * @retval NULL An error occurred. The errno is set to indicate the error.
- *
- * @see spi_bus_register()
- */
-spi_bus *spi_bus_alloc_and_init(size_t size);
-
-/**
- * @brief Destroys a bus control.
- *
- * @param[in] bus The bus control.
- */
-void spi_bus_destroy(spi_bus *bus);
-
-/**
- * @brief Destroys a bus control and frees its memory.
- *
- * @param[in] bus The bus control.
- */
-void spi_bus_destroy_and_free(spi_bus *bus);
-
-/**
- * @brief Registers a bus control.
- *
- * This function claims ownership of the bus control regardless if the
- * registration is successful or not.
- *
- * @param[in] bus The bus control.
- * @param[in] bus_path The path to the bus device file.
- *
- * @retval 0 Successful operation.
- * @retval -1 An error occurred. The errno is set to indicate the error.
- */
-int spi_bus_register(
- spi_bus *bus,
- const char *bus_path
-);
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _DEV_SPI_SPI_H */
diff --git a/cpukit/dev/include/linux/i2c-dev.h b/cpukit/dev/include/linux/i2c-dev.h
deleted file mode 100644
index c0db3fe06c..0000000000
--- a/cpukit/dev/include/linux/i2c-dev.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- * @file
- *
- * @brief RTEMS Port of Linux I2C Device API
- *
- * @ingroup I2CLinux
- */
-
-/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _UAPI_LINUX_I2C_DEV_H
-#define _UAPI_LINUX_I2C_DEV_H
-
-#include <stdint.h>
-
-/**
- * @addtogroup I2CLinux
- *
- * @{
- */
-
-/**
- * @name I2C IO Control Commands
- *
- * @{
- */
-
-/**
- * @brief Sets the count of transfer retries in case a slave
- * device does not acknowledge a transaction.
- *
- * The argument type is unsigned long.
- */
-#define I2C_RETRIES 0x701
-
-/**
- * @brief Sets the transfer timeout in 10ms units.
- *
- * The argument type is unsigned long.
- */
-#define I2C_TIMEOUT 0x702
-
-/**
- * @brief Sets the slave address.
- *
- * It is an error to set a slave address already used by another slave device.
- *
- * The argument type is unsigned long.
- */
-#define I2C_SLAVE 0x703
-
-/**
- * @brief Forces setting the slave address.
- *
- * The argument type is unsigned long.
- */
-#define I2C_SLAVE_FORCE 0x706
-
-/**
- * @brief Enables 10-bit addresses if argument is non-zero, otherwise
- * disables 10-bit addresses.
- *
- * The argument type is unsigned long.
- */
-#define I2C_TENBIT 0x704
-
-/**
- * @brief Gets the I2C controller functionality information.
- *
- * The argument type is a pointer to an unsigned long.
- */
-#define I2C_FUNCS 0x705
-
-/**
- * @brief Performs a combined read/write transfer.
- *
- * Only one stop condition is signalled.
- *
- * The argument type is a pointer to struct i2c_rdwr_ioctl_data.
- */
-#define I2C_RDWR 0x707
-
-/**
- * @brief Enables System Management Bus (SMBus) Packet Error Checking (PEC)
- * if argument is non-zero, otherwise disables PEC.
- *
- * The argument type is unsigned long.
- */
-#define I2C_PEC 0x708
-
-/**
- * @brief Performs an SMBus transfer.
- *
- * The argument type is a pointer to struct i2c_smbus_ioctl_data.
- */
-#define I2C_SMBUS 0x720
-
-/** @} */
-
-/**
- * @brief Argument type for I2C_SMBUS IO control call.
- */
-struct i2c_smbus_ioctl_data {
- uint8_t read_write;
- uint8_t command;
- uint32_t size;
- union i2c_smbus_data *data;
-};
-
-/**
- * @brief Argument type for I2C_RDWR IO control call.
- */
-struct i2c_rdwr_ioctl_data {
- struct i2c_msg *msgs;
- uint32_t nmsgs;
-};
-
-/**
- * @brief Maximum count of messages for one IO control call.
- */
-#define I2C_RDRW_IOCTL_MAX_MSGS 42
-
-/** @} */
-
-#endif /* _UAPI_LINUX_I2C_DEV_H */
diff --git a/cpukit/dev/include/linux/i2c.h b/cpukit/dev/include/linux/i2c.h
deleted file mode 100644
index b113545cce..0000000000
--- a/cpukit/dev/include/linux/i2c.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/**
- * @file
- *
- * @brief RTEMS Port of Linux I2C API
- *
- * @ingroup I2CLinux
- */
-
-/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _UAPI_LINUX_I2C_H
-#define _UAPI_LINUX_I2C_H
-
-#include <stdint.h>
-
-/**
- * @defgroup I2CLinux Linux I2C User-Space API
- *
- * @ingroup I2C
- *
- * @brief RTEMS port of Linux I2C user-space API.
- *
- * Additional documentation is available through the Linux sources, see:
- *
- * - /usr/src/linux/include/uapi/linux/i2c.h,
- * - /usr/src/linux/include/uapi/linux/i2c-dev.h
- * - https://www.kernel.org/doc/Documentation/i2c/i2c-protocol
- * - https://www.kernel.org/doc/Documentation/i2c/dev-interface
- *
- * @{
- */
-
-/**
- * @name I2C Message Flags
- *
- * @{
- */
-
-/**
- * @brief I2C message flag to indicate a 10-bit address.
- *
- * The controller must support this as indicated by the I2C_FUNC_10BIT_ADDR
- * functionality.
- *
- * @see i2c_msg.
- */
-#define I2C_M_TEN 0x0010
-
-/**
- * @brief I2C message flag to indicate a read transfer (from slave to master).
- *
- * @see i2c_msg.
- */
-#define I2C_M_RD 0x0001
-
-/**
- * @brief I2C message flag to signal a stop condition even if this is not the
- * last message.
- *
- * The controller must support this as indicated by the
- * @ref I2C_FUNC_PROTOCOL_MANGLING functionality.
- *
- * @see i2c_msg.
- */
-#define I2C_M_STOP 0x8000
-
-/**
- * @brief I2C message flag to omit start condition and slave address.
- *
- * The controller must support this as indicated by the
- * @ref I2C_FUNC_NOSTART functionality.
- *
- * @see i2c_msg.
- */
-#define I2C_M_NOSTART 0x4000
-
-/**
- * @brief I2C message flag to reverse the direction flag.
- *
- * The controller must support this as indicated by the
- * @ref I2C_FUNC_PROTOCOL_MANGLING functionality.
- *
- * @see i2c_msg.
- */
-#define I2C_M_REV_DIR_ADDR 0x2000
-
-/**
- * @brief I2C message flag to ignore a non-acknowledge.
- *
- * The controller must support this as indicated by the
- * @ref I2C_FUNC_PROTOCOL_MANGLING functionality.
- *
- * @see i2c_msg.
- */
-#define I2C_M_IGNORE_NAK 0x1000
-
-/**
- * @brief I2C message flag to omit a master acknowledge/non-acknowledge in a
- * read transfer.
- *
- * The controller must support this as indicated by the
- * @ref I2C_FUNC_PROTOCOL_MANGLING functionality.
- *
- * @see i2c_msg.
- */
-#define I2C_M_NO_RD_ACK 0x0800
-
-/**
- * @brief I2C message flag to indicate that the message data length is the
- * first received byte.
- *
- * The message data buffer must be large enough to store up to 32 bytes, the
- * initial length byte and the SMBus PEC (if used). Initialize the message
- * length to one. The message length is incremented by the count of received
- * data bytes.
- *
- * @see i2c_msg.
- */
-#define I2C_M_RECV_LEN 0x0400
-
-/** @} */
-
-/**
- * @brief I2C transfer message.
- */
-struct i2c_msg {
- /**
- * @brief The slave address.
- *
- * In case the @ref I2C_M_TEN flag is set, then this is a 10-bit address,
- * otherwise it is a 7-bit address.
- */
- uint16_t addr;
-
- /**
- * @brief The message flags.
- *
- * Valid flags are
- * - @ref I2C_M_TEN,
- * - @ref I2C_M_RD,
- * - @ref I2C_M_STOP,
- * - @ref I2C_M_NOSTART,
- * - @ref I2C_M_REV_DIR_ADDR,
- * - @ref I2C_M_IGNORE_NAK,
- * - @ref I2C_M_NO_RD_ACK, and
- * - @ref I2C_M_RECV_LEN.
- */
- uint16_t flags;
-
- /**
- * @brief The message data length in bytes.
- */
- uint16_t len;
-
- /**
- * @brief Pointer to the message data.
- */
- uint8_t *buf;
-};
-
-/**
- * @name I2C Controller Functionality
- *
- * @{
- */
-
-#define I2C_FUNC_I2C 0x00000001
-#define I2C_FUNC_10BIT_ADDR 0x00000002
-#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004
-#define I2C_FUNC_SMBUS_PEC 0x00000008
-#define I2C_FUNC_NOSTART 0x00000010
-#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000
-#define I2C_FUNC_SMBUS_QUICK 0x00010000
-#define I2C_FUNC_SMBUS_READ_BYTE 0x00020000
-#define I2C_FUNC_SMBUS_WRITE_BYTE 0x00040000
-#define I2C_FUNC_SMBUS_READ_BYTE_DATA 0x00080000
-#define I2C_FUNC_SMBUS_WRITE_BYTE_DATA 0x00100000
-#define I2C_FUNC_SMBUS_READ_WORD_DATA 0x00200000
-#define I2C_FUNC_SMBUS_WRITE_WORD_DATA 0x00400000
-#define I2C_FUNC_SMBUS_PROC_CALL 0x00800000
-#define I2C_FUNC_SMBUS_READ_BLOCK_DATA 0x01000000
-#define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000
-#define I2C_FUNC_SMBUS_READ_I2C_BLOCK 0x04000000
-#define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000
-
-#define I2C_FUNC_SMBUS_BYTE \
- (I2C_FUNC_SMBUS_READ_BYTE | I2C_FUNC_SMBUS_WRITE_BYTE)
-
-#define I2C_FUNC_SMBUS_BYTE_DATA \
- (I2C_FUNC_SMBUS_READ_BYTE_DATA | I2C_FUNC_SMBUS_WRITE_BYTE_DATA)
-
-#define I2C_FUNC_SMBUS_WORD_DATA \
- (I2C_FUNC_SMBUS_READ_WORD_DATA | I2C_FUNC_SMBUS_WRITE_WORD_DATA)
-
-#define I2C_FUNC_SMBUS_BLOCK_DATA \
- (I2C_FUNC_SMBUS_READ_BLOCK_DATA | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA)
-
-#define I2C_FUNC_SMBUS_I2C_BLOCK \
- (I2C_FUNC_SMBUS_READ_I2C_BLOCK | I2C_FUNC_SMBUS_WRITE_I2C_BLOCK)
-
-#define I2C_FUNC_SMBUS_EMUL \
- (I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE | I2C_FUNC_SMBUS_BYTE_DATA \
- | I2C_FUNC_SMBUS_WORD_DATA | I2C_FUNC_SMBUS_PROC_CALL \
- | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA | I2C_FUNC_SMBUS_I2C_BLOCK \
- | I2C_FUNC_SMBUS_PEC)
-
-/** @} */
-
-/**
- * @brief Maximum SMBus data block count.
- */
-#define I2C_SMBUS_BLOCK_MAX 32
-
-/**
- * @brief SMBus data.
- */
-union i2c_smbus_data {
- uint8_t byte;
- uint16_t word;
- uint8_t block[I2C_SMBUS_BLOCK_MAX + 2];
-};
-
-/**
- * @name SMBus Transfer Read and Write Markers
- *
- * @{
- */
-
-#define I2C_SMBUS_READ 1
-
-#define I2C_SMBUS_WRITE 0
-
-/** @} */
-
-/**
- * @name SMBus Transaction Types
- *
- * @{
- */
-
-#define I2C_SMBUS_QUICK 0
-
-#define I2C_SMBUS_BYTE 1
-
-#define I2C_SMBUS_BYTE_DATA 2
-
-#define I2C_SMBUS_WORD_DATA 3
-
-#define I2C_SMBUS_PROC_CALL 4
-
-#define I2C_SMBUS_BLOCK_DATA 5
-
-#define I2C_SMBUS_I2C_BLOCK_BROKEN 6
-
-#define I2C_SMBUS_BLOCK_PROC_CALL 7
-
-#define I2C_SMBUS_I2C_BLOCK_DATA 8
-
-/** @} */
-
-/** @} */
-
-#endif /* _UAPI_LINUX_I2C_H */
diff --git a/cpukit/dev/include/linux/spi/spidev.h b/cpukit/dev/include/linux/spi/spidev.h
deleted file mode 100644
index e2fdb4b7e1..0000000000
--- a/cpukit/dev/include/linux/spi/spidev.h
+++ /dev/null
@@ -1,268 +0,0 @@
-/**
- * @file
- *
- * @brief RTEMS Port of Linux SPI API
- *
- * @ingroup SPILinux
- */
-
-/*
- * Copyright (c) 2016 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _UAPI_LINUX_SPI_H
-#define _UAPI_LINUX_SPI_H
-
-#include <sys/ioccom.h>
-#include <stddef.h>
-#include <stdint.h>
-
-/**
- * @defgroup SPILinux Linux SPI User-Space API
- *
- * @ingroup SPI
- *
- * @brief RTEMS port of Linux SPI user-space API.
- *
- * Additional documentation is available through the Linux sources, see
- *
- * /usr/src/linux/include/uapi/linux/spidev.h.
- *
- * @{
- */
-
-/**
- * @name SPI Transfer Flags
- *
- * @{
- */
-
-/**
- * @brief SPI transfer flag which sets the clock phase.
- */
-#define SPI_CPHA 0x01
-
-/**
- * @brief SPI transfer flag which sets the clock polarity.
- */
-#define SPI_CPOL 0x02
-
-/**
- * @brief SPI transfer flag which sets SPI Mode 0 (clock starts low, sample on
- * leading edge).
- */
-#define SPI_MODE_0 0
-
-/**
- * @brief SPI transfer flag which sets SPI Mode 0 (clock starts low, sample on
- * trailing edge).
- */
-#define SPI_MODE_1 SPI_CPHA
-
-/**
- * @brief SPI transfer flag which sets SPI Mode 0 (clock starts high, sample on
- * leading edge).
- */
-#define SPI_MODE_2 SPI_CPOL
-
-/**
- * @brief SPI transfer flag which sets SPI Mode 0 (clock starts high, sample on
- * trailing edge).
- */
-#define SPI_MODE_3 (SPI_CPOL | SPI_CPHA)
-
-/**
- * @brief SPI transfer flag which selects the device by setting the chip select
- * line.
- */
-#define SPI_CS_HIGH 0x04
-
-/**
- * @brief SPI transfer flag which triggers data transmission with the LSB being
- * sent first.
- */
-#define SPI_LSB_FIRST 0x08
-
-/**
- * @brief SPI transfer flag which uses a shared wire for master input/slave
- * output as well as master output/slave input.
- */
-#define SPI_3WIRE 0x10
-
-/**
- * @brief SPI transfer flag which initiates the loopback mode.
- */
-#define SPI_LOOP 0x20
-
-/**
- * @brief SPI transfer flag which indicates that no chip select is needed due to
- * only one device on the bus.
- */
-#define SPI_NO_CS 0x40
-
-/**
- * @brief SPI transfer flag which pulls the slave to low level during pause.
- */
-#define SPI_READY 0x80
-
-/**
- * @brief SPI transfer flag which sets up dual mode for transmission.
- */
-#define SPI_TX_DUAL 0x100
-
-/**
- * @brief SPI transfer flag which sets up quad mode for transmission.
- */
-#define SPI_TX_QUAD 0x200
-
-/**
- * @brief SPI transfer flag which sets up dual mode for reception.
- */
-#define SPI_RX_DUAL 0x400
-
-/**
- * @brief SPI transfer flag which sets up quad mode for reception.
- */
-#define SPI_RX_QUAD 0x800
-
-/** @} */
-
-#define SPI_IOC_MAGIC 's'
-
-/**
- * @brief SPI transfer message.
- */
-struct spi_ioc_transfer {
- /**
- * @brief Buffer for receive data.
- */
- void *rx_buf;
-
- /**
- * @brief Buffer for transmit data.
- */
- const void *tx_buf;
-
- /**
- * @brief Length of receive and transmit buffers in bytes.
- */
- size_t len;
-
- /**
- * @brief Sets the bit-rate of the device.
- */
- uint32_t speed_hz;
-
- /**
- * @brief Sets the delay after a transfer before the chip select status is
- * changed and the next transfer is triggered.
- */
- uint16_t delay_usecs;
-
- /**
- * @brief Sets the device wordsize.
- */
- uint8_t bits_per_word;
-
- /**
- * @brief If true, device is deselected after transfer ended and before a new
- * transfer is started.
- */
- uint8_t cs_change;
-
- /**
- * @brief Amount of bits that are used for reading.
- */
- uint8_t rx_nbits;
-
- /**
- * @brief Amount of bits that are used for writing.
- */
- uint8_t tx_nbits;
-
- /**
- * @brief Sets one of the possible modes that can be used for SPI transfers
- * (dependent on clock phase and polarity).
- */
- uint32_t mode;
-
- /**
- * @brief Indicates which device is currently used.
- */
- uint8_t cs;
-};
-
-/**
- * @brief Calculates the size of the SPI message array.
- */
-#define SPI_MSGSIZE(n) \
- (((n) * sizeof(struct spi_ioc_transfer) < IOCPARM_MAX) ? \
- (n) * sizeof(struct spi_ioc_transfer) : 0)
-
-/**
- * @brief Transfers an array with SPI messages.
- */
-#define SPI_IOC_MESSAGE(n) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(n)])
-
-/**
- * @brief Reads the least-significant 8-bits of the SPI default mode.
- */
-#define SPI_IOC_RD_MODE _IOR(SPI_IOC_MAGIC, 1, uint8_t)
-
-/**
- * @brief Writes the SPI default mode (the most-significant 24-bits of the mode are
- * set to zero).
- */
-#define SPI_IOC_WR_MODE _IOW(SPI_IOC_MAGIC, 1, uint8_t)
-
-/**
- * @brief Reads the SPI default least-significant bit first setting.
- */
-#define SPI_IOC_RD_LSB_FIRST _IOR(SPI_IOC_MAGIC, 2, uint8_t)
-
-/**
- * @brief Writes the SPI default least-significant-bit first setting.
- */
-#define SPI_IOC_WR_LSB_FIRST _IOW(SPI_IOC_MAGIC, 2, uint8_t)
-
-/**
- * @brief Reads the SPI default bits per word.
- */
-#define SPI_IOC_RD_BITS_PER_WORD _IOR(SPI_IOC_MAGIC, 3, uint8_t)
-
-/**
- * @brief Writes the SPI default bits per word.
- */
-#define SPI_IOC_WR_BITS_PER_WORD _IOW(SPI_IOC_MAGIC, 3, uint8_t)
-
-/**
- * @brief Reads the SPI default speed in Hz.
- */
-#define SPI_IOC_RD_MAX_SPEED_HZ _IOR(SPI_IOC_MAGIC, 4, uint32_t)
-
-/**
- * @brief Writes the SPI default speed in Hz.
- */
-#define SPI_IOC_WR_MAX_SPEED_HZ _IOW(SPI_IOC_MAGIC, 4, uint32_t)
-
-/**
- * @brief Reads the full 32-bit SPI default mode.
- */
-#define SPI_IOC_RD_MODE32 _IOR(SPI_IOC_MAGIC, 5, uint32_t)
-
-/**
- * @brief Writes the full 32-bit SPI default mode.
- */
-#define SPI_IOC_WR_MODE32 _IOW(SPI_IOC_MAGIC, 5, uint32_t)
-
-#endif /* _UAPI_LINUX_SPI_H */
diff --git a/cpukit/dev/preinstall.am b/cpukit/dev/preinstall.am
deleted file mode 100644
index 4cb1dce127..0000000000
--- a/cpukit/dev/preinstall.am
+++ /dev/null
@@ -1,105 +0,0 @@
-## Automatically generated by ampolish3 - Do not edit
-
-if AMPOLISH3
-$(srcdir)/preinstall.am: Makefile.am
- $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
-endif
-
-PREINSTALL_DIRS =
-DISTCLEANFILES = $(PREINSTALL_DIRS)
-
-all-am: $(PREINSTALL_FILES)
-
-PREINSTALL_FILES =
-CLEANFILES = $(PREINSTALL_FILES)
-
-$(PROJECT_INCLUDE)/dev/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)/dev
- @: > $(PROJECT_INCLUDE)/dev/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/dev/$(dirstamp)
-
-$(PROJECT_INCLUDE)/dev/i2c/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)/dev/i2c
- @: > $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
-
-$(PROJECT_INCLUDE)/dev/i2c/eeprom.h: include/dev/i2c/eeprom.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/eeprom.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/eeprom.h
-
-$(PROJECT_INCLUDE)/dev/i2c/fpga-i2c-slave.h: include/dev/i2c/fpga-i2c-slave.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/fpga-i2c-slave.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/fpga-i2c-slave.h
-
-$(PROJECT_INCLUDE)/dev/i2c/gpio-nxp-pca9535.h: include/dev/i2c/gpio-nxp-pca9535.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/gpio-nxp-pca9535.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/gpio-nxp-pca9535.h
-
-$(PROJECT_INCLUDE)/dev/i2c/i2c.h: include/dev/i2c/i2c.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/i2c.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/i2c.h
-
-$(PROJECT_INCLUDE)/dev/i2c/sensor-lm75a.h: include/dev/i2c/sensor-lm75a.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/sensor-lm75a.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/sensor-lm75a.h
-
-$(PROJECT_INCLUDE)/dev/i2c/switch-nxp-pca9548a.h: include/dev/i2c/switch-nxp-pca9548a.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/switch-nxp-pca9548a.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/switch-nxp-pca9548a.h
-
-$(PROJECT_INCLUDE)/dev/i2c/xilinx-axi-i2c.h: include/dev/i2c/xilinx-axi-i2c.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/xilinx-axi-i2c.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/xilinx-axi-i2c.h
-
-$(PROJECT_INCLUDE)/dev/i2c/ti-ads-16bit-adc.h: include/dev/i2c/ti-ads-16bit-adc.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/ti-ads-16bit-adc.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/ti-ads-16bit-adc.h
-
-$(PROJECT_INCLUDE)/dev/i2c/ti-lm25066a.h: include/dev/i2c/ti-lm25066a.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/ti-lm25066a.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/ti-lm25066a.h
-
-$(PROJECT_INCLUDE)/dev/i2c/ti-tmp112.h: include/dev/i2c/ti-tmp112.h $(PROJECT_INCLUDE)/dev/i2c/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/i2c/ti-tmp112.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/i2c/ti-tmp112.h
-
-$(PROJECT_INCLUDE)/dev/spi/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)/dev/spi
- @: > $(PROJECT_INCLUDE)/dev/spi/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/dev/spi/$(dirstamp)
-
-$(PROJECT_INCLUDE)/dev/spi/spi.h: include/dev/spi/spi.h $(PROJECT_INCLUDE)/dev/spi/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/spi/spi.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/spi/spi.h
-
-$(PROJECT_INCLUDE)/dev/serial/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)/dev/serial
- @: > $(PROJECT_INCLUDE)/dev/serial/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/dev/serial/$(dirstamp)
-
-$(PROJECT_INCLUDE)/dev/serial/sc16is752.h: include/dev/serial/sc16is752.h $(PROJECT_INCLUDE)/dev/serial/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/dev/serial/sc16is752.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/dev/serial/sc16is752.h
-
-$(PROJECT_INCLUDE)/linux/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)/linux
- @: > $(PROJECT_INCLUDE)/linux/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/linux/$(dirstamp)
-
-$(PROJECT_INCLUDE)/linux/i2c.h: include/linux/i2c.h $(PROJECT_INCLUDE)/linux/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/linux/i2c.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/linux/i2c.h
-
-$(PROJECT_INCLUDE)/linux/i2c-dev.h: include/linux/i2c-dev.h $(PROJECT_INCLUDE)/linux/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/linux/i2c-dev.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/linux/i2c-dev.h
-
-$(PROJECT_INCLUDE)/linux/spi/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)/linux/spi
- @: > $(PROJECT_INCLUDE)/linux/spi/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/linux/spi/$(dirstamp)
-
-$(PROJECT_INCLUDE)/linux/spi/spidev.h: include/linux/spi/spidev.h $(PROJECT_INCLUDE)/linux/spi/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/linux/spi/spidev.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/linux/spi/spidev.h
-