|
@@ -21,8 +21,6 @@
|
|
|
* MA 02111-1307 USA
|
|
|
*/
|
|
|
|
|
|
-#include <common.h>
|
|
|
-
|
|
|
/*
|
|
|
* I2C test
|
|
|
*
|
|
@@ -36,6 +34,7 @@
|
|
|
* #endif
|
|
|
*/
|
|
|
|
|
|
+#include <common.h>
|
|
|
#include <post.h>
|
|
|
#include <i2c.h>
|
|
|
|
|
@@ -44,42 +43,41 @@
|
|
|
int i2c_post_test (int flags)
|
|
|
{
|
|
|
unsigned int i;
|
|
|
+#ifndef I2C_ADDR_LIST
|
|
|
+ for (i = 0; i < 128; i++)
|
|
|
+ if (i2c_probe (i) == 0)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ /* No devices found */
|
|
|
+ return -1;
|
|
|
+#else
|
|
|
unsigned int good = 0;
|
|
|
-#ifdef I2C_ADDR_LIST
|
|
|
unsigned int bad = 0;
|
|
|
int j;
|
|
|
unsigned char i2c_addr_list[] = I2C_ADDR_LIST;
|
|
|
unsigned char i2c_miss_list[] = I2C_ADDR_LIST;
|
|
|
-#endif
|
|
|
|
|
|
for (i = 0; i < 128; i++) {
|
|
|
- if (i2c_probe (i) == 0) {
|
|
|
-#ifndef I2C_ADDR_LIST
|
|
|
- good++;
|
|
|
-#else /* I2C_ADDR_LIST */
|
|
|
- for (j=0; j<sizeof(i2c_addr_list); ++j) {
|
|
|
- if (i == i2c_addr_list[j]) {
|
|
|
- good++;
|
|
|
- i2c_miss_list[j] = 0xFF;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (j == sizeof(i2c_addr_list)) {
|
|
|
- bad++;
|
|
|
- post_log ("I2C: addr %02X not expected\n",
|
|
|
- i);
|
|
|
+ if (i2c_probe(i) != 0)
|
|
|
+ continue;
|
|
|
+ for (j = 0; j < sizeof(i2c_addr_list); ++j) {
|
|
|
+ if (i == i2c_addr_list[j]) {
|
|
|
+ good++;
|
|
|
+ i2c_miss_list[j] = 0xFF;
|
|
|
+ break;
|
|
|
}
|
|
|
-#endif /* I2C_ADDR_LIST */
|
|
|
+ }
|
|
|
+
|
|
|
+ if (j == sizeof(i2c_addr_list)) {
|
|
|
+ bad++;
|
|
|
+ post_log("I2C: addr %02X not expected\n", i);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#ifndef I2C_ADDR_LIST
|
|
|
- return good > 0 ? 0 : -1;
|
|
|
-#else /* I2C_ADDR_LIST */
|
|
|
if (good != sizeof(i2c_addr_list)) {
|
|
|
- for (j=0; j<sizeof(i2c_miss_list); ++j) {
|
|
|
+ for (j = 0; j < sizeof(i2c_miss_list); ++j) {
|
|
|
if (i2c_miss_list[j] != 0xFF) {
|
|
|
- post_log ("I2C: addr %02X did not respond\n",
|
|
|
+ post_log("I2C: addr %02X did not respond\n",
|
|
|
i2c_miss_list[j]);
|
|
|
}
|
|
|
}
|