summaryrefslogtreecommitdiff
path: root/commandline/i2cdetect.c
diff options
context:
space:
mode:
Diffstat (limited to 'commandline/i2cdetect.c')
-rw-r--r--commandline/i2cdetect.c49
1 files changed, 10 insertions, 39 deletions
diff --git a/commandline/i2cdetect.c b/commandline/i2cdetect.c
index ee55528..60a72ac 100644
--- a/commandline/i2cdetect.c
+++ b/commandline/i2cdetect.c
@@ -10,12 +10,11 @@
int main(int argc, char **argv)
{
-
- i2c_init();
-
signed char i;
unsigned char id, i2cid;
+ i2c_init();
+
fputs(" 0 1 2 3 4 5 6 7 8 9 a b c d e f", stdout);
for (id = 0; id < 128; id++) {
@@ -27,43 +26,15 @@ int main(int argc, char **argv)
printf("\n%02x:", id);
}
- set_sda(1);
- set_scl(1);
- usleep(1000);
- set_sda(0);
- usleep(1000);
- set_scl(0);
- verify_sda_low();
- verify_scl_low();
- for (i = 7; i >= -1; i--) {
- if ((i < 0) || (i2cid & (1 << i))) {
- set_sda(1);
- //verify_sda_high();
- } else {
- set_sda(0);
- //verify_sda_low();
- }
- usleep(10);
- set_scl(1);
- usleep(10);
- //verify_scl_high();
- if (i < 0) {
- if (get_status() & (1 << BIT_SDA))
- fputs(" --", stdout);
- else
- printf(" %02x", id);
- }
- set_scl(0);
- usleep(10);
- //verify_scl_low();
- }
- set_scl(1);
- usleep(100);
- //verify_scl_high();
- set_sda(1);
- usleep(100);
- //verify_sda_high();
+ i2c_start();
+
+ if (i2c_tx_byte(i2cid))
+ printf(" %02x", id);
+ else
+ fputs(" --", stdout);
+
+ i2c_stop();
}
fputs("\n", stdout);