Commit Graph

37 Commits

Author SHA1 Message Date
Gregory Nutt
435f21225a Fix a warning about an unused label, errout: Use bool with true/false, not uint8_t with 1/0 2016-06-28 14:55:04 -06:00
Gregory Nutt
93f49290a3 Eliminate a warning 2016-06-28 13:47:44 -06:00
Michael Spahlinger
ed1f3aec61 Fixed build of SAMV71-XULT/nsh. With the changes from 26f7b8c the build process of the default configuration did not succeed anymore. This is fixed by this commit. 2016-06-28 08:23:41 -06:00
Michael Spahlinger
26f7b8c9e5 TWIHS Driver improved and GPIO-Driver fixed for Open-Drain Pins
- sam_gpioread: Now the actual line level from the pin is read back.  This is extremely important for Open-Drain Pins, which can be used bidirectionally
 - Re-Implemented twi_reset-function and enhanced it so it can be called from inside the driver (see next point)
 - Glitch-Filter: Added a configuration option to enable the twi-built-in glitch filter
 - Added a "Single Master Mode": In EMC Testing the TWI-Bus got stuck because the TWI-Master detected a Multi-Master access (but there is no second master). With the option "Single Master" we detect these events and automatically trigger a twi_reset. We also do an automatic recovery if a slave got stuck (SDA stays low).

With the above changes I²C-Bus reliability in harsh environments (eg. EMC) is greatly improved.

The small change in the GPIO-Driver was necessary because otherwise you cannot read back the correct line status of Open-Drain Outputs and this is needed by the twi_reset function.
2016-06-24 10:33:51 -06:00
Gregory Nutt
2a751068e6 Without lowsyslog() *llerr() is not useful. Eliminate and replace with *err(). 2016-06-20 12:44:38 -06:00
Gregory Nutt
43eb04bb8f Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info(). 2016-06-20 11:59:15 -06:00
Gregory Nutt
dbd70a5864 Restore some debug output that lost its low-level marking 2016-06-17 07:29:58 -06:00
Gregory Nutt
801d661423 Change *err() to either info() or err(ERROR:..), depending upon if an error has occurred. 2016-06-16 15:10:57 -06:00
Gregory Nutt
0c8c7fecf0 Add _ to the beginning of all debug macros to avoid name collisions 2016-06-16 12:33:32 -06:00
Gregory Nutt
5c89b18af8 Centralize definitions associated with CONFIG_DEBUG_I2C 2016-06-15 16:30:12 -06:00
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
e99301d7c2 Rename *lldbg to *llerr 2016-06-11 14:55:27 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Gregory Nutt
3a74a438d9 Rename CONFIG_DEBUG_VERBOSE to CONFIG_DEBUG_INFO 2016-06-11 11:50:18 -06:00
David Sidrane
fca329945b This patch ensures that the TWIHS (i2c) hw get's its clock set when the sequence of
sam_i2cbus_initialize
sam_i2cbus_uninitialize
sam_i2cbus_initialize

Or twi_reset is called.

I found this a while back in the stm32 family, so there may be more arch-es with this sort of bug. I suppose any driver that has the notion of "do not set the freq if it is already set" could be suspect.
2016-05-23 13:38:34 -06:00
Gregory Nutt
4a8ac55c9d All SAM TWI: g_twiops should be both static and const 2016-03-09 18:11:55 -06:00
Frank Benkert
73de0d9114 SAMV7: TWIHS: Correct Error Handling 2016-03-08 06:47:22 -06:00
Frank Benkert
945e137382 SAMV7: TWIHS: Correct timeout calculation; correct some issues with Multi-Message-Transfer 2016-03-08 06:44:41 -06:00
Gregory Nutt
70e502adb0 Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-13 19:11:09 -06:00
Gregory Nutt
1e4f2ae2c1 Rename up_i2c initialize and uninitialize functions using the correct MCU-specific naming 2016-02-02 12:08:23 -06:00
Gregory Nutt
d2571985ef I2C: up_i2creset should not be a global function; Now it is an I2C interface method 2016-02-02 11:21:45 -06:00
Gregory Nutt
0693e76be8 I2C: Remove the setfrequency method from the interface 2016-02-01 16:30:29 -06:00
Gregory Nutt
a64f36a63e I2C: Remove setaddress method 2016-02-01 12:14:20 -06:00
Gregory Nutt
ce988c7ed3 Remove the read and write methods from the I2C interface 2016-02-01 09:22:10 -06:00
Gregory Nutt
2171438c61 I2C_TRANSFER support is no longer optional 2016-01-31 14:00:53 -06:00
Gregory Nutt
531d73af41 Remove I2C slave methods from I2C master interface; rename i2c_dev_s to i2c_master_s. 2016-01-30 08:35:46 -06:00
Gregory Nutt
9f9b85a932 Move include/nuttx/i2c.h to include/nuttx/i2c/i2c_master.h 2016-01-30 07:59:44 -06:00
Gregory Nutt
c0fb4e34a7 I2C: Eliminate the I2C_WRITEREAD method 2016-01-26 10:23:09 -06:00
Gregory Nutt
b64a45d667 Add a missing semicolon 2016-01-26 08:00:29 -06:00
Gregory Nutt
3fdd914203 Costmetic fixes to C coding style 2015-10-05 17:13:53 -06:00
Gregory Nutt
7ced84c5f0 Standardize the width of all comment boxes in C files 2015-10-03 07:25:03 -06:00
Gregory Nutt
975d912b40 Cosmetic: Move # of pre-processior command to column 1 2015-09-05 09:07:37 -06:00
Gregory Nutt
14d99a0ef2 SAMV7 TWIHS: Fix logic that performs multi-message tranfers with and without repeated starts. This change is the final piece that was required to get the maXTouch Xplained Pro workding. 2015-05-12 17:56:35 -06:00
Gregory Nutt
824f486bdf SAMV7 Ethernet: Support getting IP address from the XULT AT24 EEPROM 2015-03-17 14:29:41 -06:00
Gregory Nutt
26cf5a35a9 SAMV71-XULT: Enable I2C and the I2C tool in the NSH configuration 2015-03-12 12:27:06 -06:00
Gregory Nutt
9b6c7661a4 SAMV7: Add TWI/I2C driver (untested) 2015-03-12 10:58:11 -06:00