Lines Matching refs:sda

32 static bool _i2c_start_ex(io_pin_t sda, io_pin_t scl, bool pull_up)  in _i2c_start_ex()  argument
37 while ((io_test_pin(sda) == false) || (io_test_pin(scl) == false)) in _i2c_start_ex()
49 io_clear_pin(sda); // Set LOW before switching to output in _i2c_start_ex()
50 io_output_pin(sda); in _i2c_start_ex()
61 io_input_pin(sda); in _i2c_start_ex()
78 static bool _i2c_stop_ex(io_pin_t sda, io_pin_t scl, bool pull_up) in _i2c_stop_ex() argument
93 while (io_test_pin(sda) == false) in _i2c_stop_ex()
98 debug_log_hex(sda); in _i2c_stop_ex()
112 io_clear_pin(sda); // Don't tri-state if internal pull-up is used in _i2c_stop_ex()
115 io_output_pin(sda); // Drive LOW in _i2c_stop_ex()
132 io_input_pin(sda); in _i2c_stop_ex()
134 io_set_pin(sda); in _i2c_stop_ex()
193 static void _i2c_abort_ex(io_pin_t sda, io_pin_t scl, bool pull_up) in _i2c_abort_ex() argument
211 _i2c_abort_safe(sda, pull_up); in _i2c_abort_ex()
222 static bool _i2c_write_byte_ex(io_pin_t sda, io_pin_t scl, uint8_t value, bool pull_up) in _i2c_write_byte_ex() argument
237 io_input_pin(sda); in _i2c_write_byte_ex()
238 io_set_pin(sda); in _i2c_write_byte_ex()
241 io_input_pin(sda); // Release HIGH in _i2c_write_byte_ex()
243 if (io_test_pin(sda) == false) in _i2c_write_byte_ex()
246 debug_log_hex(sda); in _i2c_write_byte_ex()
256 io_clear_pin(sda); in _i2c_write_byte_ex()
259 …io_output_pin(sda); // [This is bad (will drive line for a moment), but more stable than letting l… in _i2c_write_byte_ex()
265 io_enable_pin(sda, false); in _i2c_write_byte_ex()
266 io_output_pin(sda); // Drive LOW in _i2c_write_byte_ex()
283 io_input_pin(sda); // Release HIGH in _i2c_write_byte_ex()
285 io_set_pin(sda); in _i2c_write_byte_ex()
300 io_input_pin(sda); // Release HIGH in _i2c_write_byte_ex()
302 io_set_pin(sda); // Assuming letting line float won't confuse slave when pulling line LOW for ACK in _i2c_write_byte_ex()
306 while ((_i2c_disable_ack_check == false) && (io_test_pin(sda))) in _i2c_write_byte_ex()
311 debug_log_hex_ex(sda, false); in _i2c_write_byte_ex()
339 static bool _i2c_read_byte_ex(io_pin_t sda, io_pin_t scl, uint8_t* value, bool pull_up) in _i2c_read_byte_ex() argument
345 io_input_pin(sda); in _i2c_read_byte_ex()
347 …io_set_pin(sda); // OK to leave line floating for a moment (better not to drive as slave will be p… in _i2c_read_byte_ex()
373 (*value) |= ((io_test_pin(sda) ? 0x1 : 0x0) << (7 - i)); // MSB first in _i2c_read_byte_ex()
388 bool i2c_read2_ex(io_pin_t sda, io_pin_t scl, uint8_t addr, uint8_t subaddr, uint8_t* value, bool p… in i2c_read2_ex() argument
390 if (_i2c_start_ex(sda, scl, pull_up) == false) in i2c_read2_ex()
393 if (_i2c_write_byte_ex(sda, scl, addr & ~0x01, pull_up) == false) in i2c_read2_ex()
403 if (_i2c_write_byte_ex(sda, scl, subaddr, pull_up) == false) in i2c_read2_ex()
418 if (_i2c_start_ex(sda, scl, pull_up) == false) in i2c_read2_ex()
423 if (_i2c_write_byte_ex(sda, scl, addr | 0x01, pull_up) == false) in i2c_read2_ex()
433 if (_i2c_read_byte_ex(sda, scl, value, pull_up) == false) in i2c_read2_ex()
443 if (_i2c_stop_ex(sda, scl, pull_up) == false) in i2c_read2_ex()
452 _i2c_abort_ex(sda, scl, pull_up); in i2c_read2_ex()
456 bool i2c_write_ex(io_pin_t sda, io_pin_t scl, uint8_t addr, uint8_t subaddr, uint8_t value, bool pu… in i2c_write_ex() argument
458 if (_i2c_start_ex(sda, scl, pull_up) == false) in i2c_write_ex()
461 if (_i2c_write_byte_ex(sda, scl, addr, pull_up) == false) in i2c_write_ex()
464 if (_i2c_write_byte_ex(sda, scl, subaddr, pull_up) == false) in i2c_write_ex()
467 if (_i2c_write_byte_ex(sda, scl, value, pull_up) == false) in i2c_write_ex()
470 _i2c_stop_ex(sda, scl, pull_up); in i2c_write_ex()
474 _i2c_abort_ex(sda, scl, pull_up); in i2c_write_ex()
478 bool i2c_write(io_pin_t sda, io_pin_t scl, uint8_t addr, uint8_t subaddr, uint8_t value) in i2c_write() argument
480 return i2c_write_ex(sda, scl, addr, subaddr, value, false); in i2c_write()
483 bool i2c_read_ex(io_pin_t sda, io_pin_t scl, uint8_t addr, uint8_t subaddr, uint8_t* value, bool pu… in i2c_read_ex() argument
485 if (_i2c_start_ex(sda, scl, pull_up) == false) in i2c_read_ex()
488 if (_i2c_write_byte_ex(sda, scl, addr, pull_up) == false) in i2c_read_ex()
491 if (_i2c_write_byte_ex(sda, scl, subaddr, pull_up) == false) in i2c_read_ex()
494 if (_i2c_read_byte_ex(sda, scl, value, pull_up) == false) in i2c_read_ex()
497 _i2c_stop_ex(sda, scl, pull_up); in i2c_read_ex()
501 _i2c_abort_ex(sda, scl, pull_up); in i2c_read_ex()
505 bool i2c_read(io_pin_t sda, io_pin_t scl, uint8_t addr, uint8_t subaddr, uint8_t* value) in i2c_read() argument
507 return i2c_read_ex(sda, scl, addr, subaddr, value, false); in i2c_read()
510 void i2c_init_ex(io_pin_t sda, io_pin_t scl, bool pull_up) in i2c_init_ex() argument
512 _i2c_abort_ex(sda, scl, pull_up); in i2c_init_ex()
515 void i2c_init(io_pin_t sda, io_pin_t scl) in i2c_init() argument
517 i2c_init_ex(sda, scl, false); in i2c_init()