|
@@ -16,7 +16,6 @@
|
|
|
|
|
|
enum mop500_uib {
|
|
|
STUIB,
|
|
|
- U8500UIB,
|
|
|
};
|
|
|
|
|
|
struct uib {
|
|
@@ -31,11 +30,6 @@ static struct uib __initdata mop500_uibs[] = {
|
|
|
.option = "stuib",
|
|
|
.init = mop500_stuib_init,
|
|
|
},
|
|
|
- [U8500UIB] = {
|
|
|
- .name = "U8500-UIB",
|
|
|
- .option = "u8500uib",
|
|
|
- .init = mop500_u8500uib_init,
|
|
|
- },
|
|
|
};
|
|
|
|
|
|
static struct uib *mop500_uib;
|
|
@@ -93,14 +87,9 @@ static void __init __mop500_uib_init(struct uib *uib, const char *why)
|
|
|
uib->init();
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * Detect the UIB attached based on the presence or absence of i2c devices.
|
|
|
- */
|
|
|
int __init mop500_uib_init(void)
|
|
|
{
|
|
|
struct uib *uib = mop500_uib;
|
|
|
- struct i2c_adapter *i2c0;
|
|
|
- int ret;
|
|
|
|
|
|
if (!cpu_is_u8500_family())
|
|
|
return -ENODEV;
|
|
@@ -110,24 +99,7 @@ int __init mop500_uib_init(void)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- i2c0 = i2c_get_adapter(0);
|
|
|
- if (!i2c0) {
|
|
|
- __mop500_uib_init(&mop500_uibs[STUIB],
|
|
|
- "fallback, could not get i2c0");
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
-
|
|
|
- /* U8500-UIB has the TC35893 at 0x44 on I2C0, the ST-UIB doesn't. */
|
|
|
- ret = i2c_smbus_xfer(i2c0, 0x44, 0, I2C_SMBUS_WRITE, 0,
|
|
|
- I2C_SMBUS_QUICK, NULL);
|
|
|
- i2c_put_adapter(i2c0);
|
|
|
-
|
|
|
- if (ret == 0)
|
|
|
- uib = &mop500_uibs[U8500UIB];
|
|
|
- else
|
|
|
- uib = &mop500_uibs[STUIB];
|
|
|
-
|
|
|
- __mop500_uib_init(uib, "detected");
|
|
|
+ __mop500_uib_init(&mop500_uibs[STUIB], "detected");
|
|
|
|
|
|
return 0;
|
|
|
}
|