1. 07 May, 2021 2 commits
  2. 21 Apr, 2018 3 commits
  3. 25 Mar, 2018 1 commit
  4. 22 May, 2017 2 commits
    • Stefan Tauner's avatar
      15f0455e
    • Stefan Tauner's avatar
      Fix three bugs · 1c3eb76b
      Stefan Tauner authored
       - The conditions handling reads (after writes) wrongly take the wlen
         into account. This is unnecessary because the offset ptr is (supposed to
         be) reset to 0 when transiting from write to read state.
         In the case of a transaction comprising one byte written and one byte
         read this will miss to read in and save the byte but transit to the idle
         state effectively always returning the byte sent as byte read because
         buf is not overwritten with the received byte.
       - The last output byte is only written if there are no reads in the same
         transaction because the I2CMasterControl() is guarded by an if without
         an else. E.g., issuing a transaction with 2 write bytes and one read
         byte would hang in the loop waiting for writes to finish in
         i2c_writeread().
      
      To fix these issues this patch changes the conditions in the read state
      and refines the transition from write and read to idle state. The latter
      allows the I2C_MASTER_INT_STOP handling to be dropped.
      
       - The previous code clears *all* master interrupts in its ISR instead of
         only those that were previously recorded in the status intermediate
         variable. This apparently creates a race condition where sometimes
         interrupts get lost. Also, there is no good reason to clear all
         interrupts at this point anyway. Simply removing the call suffices.
      1c3eb76b
  5. 21 May, 2017 1 commit
    • Stefan Tauner's avatar
      Major refinement · 812c7f62
      Stefan Tauner authored
       - refactor publicly visible declarations, i.e. move uninteresting stuff
         out of header into .c file.
       - allow for concurrent I2C slave implementation
       - add infrastructure for proper doxygen generation
         (makefile, doxyfile, landing page)
       - clean namespace
       - constify struct i2c_mapping members
       - refine documentation accordingly
      
      There should basically no real behavioral differences (apart from timing)
      and no big regressions of previously code.
      812c7f62
  6. 06 Mar, 2017 3 commits
  7. 14 Nov, 2016 1 commit
  8. 18 Jul, 2016 1 commit