Commit Graph

31 Commits

Author SHA1 Message Date
Christian Mauderer
b2e26b7c66 dev/sc16is752: Check return values.
Escalate a failed installation of the interrupts to the next higher
level.
2018-02-12 14:36:29 +01:00
Christian Mauderer
bf7070232f dev/sc16is752: Add GPIO access via ioctl. 2018-02-12 14:36:23 +01:00
Sebastian Huber
36304f3d7a spi: Use self-contained mutex
Update #2843.
2018-02-02 15:01:21 +01:00
Sebastian Huber
dc158ad4ec i2c: Use self-contained mutex
Update #2843.
2018-02-02 15:01:21 +01:00
Chris Johns
05015dc188 Xilinx AXI I2C driver IP race condition causes clock glitch.
Setting the PIRQ to 0 before reading the data produces a short clock pulse.
Moving the write to after reading the data fixes the issue.

Close #3173
2018-02-01 14:59:55 +11:00
Chris Johns
2afb22b7e1 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.
2018-01-25 08:45:26 +01:00
Sebastian Huber
4cfce5cb64 i2c: Add temperature sensor LM75A driver
Close #3163.
2017-10-02 13:40:46 +02:00
Sebastian Huber
9c063df3ab i2c: Fix EEPROM driver program timeout handling
The RTEMS_MILLISECONDS_TO_TICKS() macro doesn't round up. Do not use it
to calculate the program timeout in ticks. Check program done condition
after the timeout check to account for pre-emptions.

Update #3162.
2017-10-02 13:34:00 +02:00
Sebastian Huber
2e1d595972 i2c: Send MSB of address first for EEPROMs
Update #3161.
2017-10-02 13:34:00 +02:00
Chris Johns
4e0ba7ef6f i2c: TMP112 correct the function name to set the config. 2017-09-11 14:15:51 +10:00
Sebastian Huber
b2ed712d26 Include missing <string.h>
Update #2133.
2017-08-25 10:58:58 +02:00
Sebastian Huber
e062741da6 dev/i2c: Fix integer type
Update #3082.
2017-08-22 14:18:57 +02:00
Chris Johns
849500d0f2 dev/i2c: Add I2C device support for FPGA Slave, LM25066A, TMP112, ADS1113, ADS1114 and ADS1115
Closes #3101.
2017-08-20 10:59:53 +10:00
Chris Johns
12dea0afa5 dev/i2c: Add Xilinx AXI I2C driver.
This is a generic driver for use with Xilinx AXI I2C controller IP.

Closes #3100.
2017-08-16 14:49:58 +10:00
Sebastian Huber
9598e737f6 i2c: Point to most relevant Linux documentation 2017-07-17 08:27:19 +02:00
Kevin Kirspel
c6bb1c33bc posix/mmap: Add support for file handler and MAP_ANON
Added a mmap file handler to struct _rtems_filesystem_file_handlers_r.
Updated each file handler object to support the default mmap handler.
Updated mmap() to call the mmap handler for MAP_SHARED.
Added a mmap file handler for shm

Added support for MAP_ANON in mmap().

Updates #2859
2017-07-14 16:04:05 -04:00
Sebastian Huber
1301468b5a bsps: Fix baud settings
Update #2897.
2017-04-03 14:07:58 +02:00
Alexander Krutwig
9edc73013b dev: Add NXP SC16IS752 serial device driver
Update #2841.
2016-12-16 11:26:50 +01:00
Alexander Krutwig
a42be52bbf Add SPI bus framework
User API is compatible to Linux userspace API.  New test libtests/spi01.

Update #2776.
2016-09-16 09:36:44 +02:00
Sebastian Huber
08135c85d8 i2c: Fix return status of i2c dev read/write 2015-07-23 09:00:31 +02:00
Joel Sherrill
015211b8f3 cpukit/dev/include/dev/i2c/i2c.h: Fix Doxygen grouping 2015-03-09 16:45:48 -05:00
Sebastian Huber
cf36b70e8d IMFS: Replace node union with individual struct
This reduces the average node size.

Add and use IMFS_GENERIC_INITIALIZER().
2015-01-27 06:54:22 +01:00
Sebastian Huber
90b0e28456 i2c: Do not close file descriptor 0 if open fails 2014-11-26 09:56:01 +01:00
Sebastian Huber
d6f0ca64a5 i2c: Avoid undefined right shift operation 2014-11-26 08:26:15 +01:00
Joel Sherrill
a0bf44e115 cpukit/dev/i2c/i2c-dev.c: Fix leak on error path
Coverity ID 1255520. fd was not closed on error path.
2014-11-25 12:57:08 -06:00
Sebastian Huber
cfc53c11b3 i2c: Fix endian issue 2014-11-24 11:55:44 +01:00
Sebastian Huber
0510cfd8ed Add NXP PCA9548A 8-channel switch I2C driver 2014-11-20 10:30:17 +01:00
Sebastian Huber
67ac69fc3f Add NXP PCA9535 16-bit GPIO I2C driver 2014-11-20 10:30:12 +01:00
Sebastian Huber
cce4678047 Add generic EEPROM I2C device driver 2014-11-20 10:30:11 +01:00
Sebastian Huber
41c5f1b779 Add I2C driver framework
This I2C driver framework has some major differences compared to libi2c.

* It is compatible to the Linux I2C user-space API.

* It uses generic IMFS nodes and thus reduces the levels of indirection.

* The drivers don't have to mess around with minor numbers to get their
  state information.

* No arbitrary bus controller model is assumed.  The main task of an I2C
  bus controller driver is to process I2C messages.  How this is done is
  private to the driver.

* Scatter/gather operations are supported (I2C_M_NOSTART).
2014-11-20 10:30:06 +01:00
Sebastian Huber
b6f218867b Add RTEMS port of Linux I2C user-space API 2014-11-20 08:54:11 +01:00