add i2c mode to board_raho.c
authorkfx <kfx@rock-chips.com>
Fri, 13 Aug 2010 09:43:18 +0000 (17:43 +0800)
committerkfx <kfx@rock-chips.com>
Mon, 16 Aug 2010 08:06:18 +0000 (16:06 +0800)
arch/arm/mach-rk2818/board-raho.c
drivers/i2c/busses/i2c-rk2818.c

index c25f6abe2cfb87e2e4873f0b298c6eb73525d434..660512105a62b8c2271ba1dab30c3c80d7ea0c53 100755 (executable)
@@ -517,6 +517,7 @@ struct rk2818_i2c_platform_data default_i2c0_data = {
        .flags      = 0,
        .slave_addr = 0xff,
        .scl_rate  = 400*1000,
+       .mode       = I2C_MODE_IRQ, //I2C_MODE_POLL
        .cfg_gpio = rk2818_i2c0_cfg_gpio,
 };
 struct rk2818_i2c_platform_data default_i2c1_data = { 
@@ -528,6 +529,7 @@ struct rk2818_i2c_platform_data default_i2c1_data = {
        .flags      = 0,
        .slave_addr = 0xff,
        .scl_rate  = 400*1000,
+       .mode       = I2C_MODE_IRQ, //I2C_MODE_POLL
        .cfg_gpio = rk2818_i2c1_cfg_gpio,
 };
 
index 0fd6fe98f4af85ea84323abf8ca440d2e94b6d1b..3ce6116ed740609f08102f2fa848d3bd6b214ed1 100755 (executable)
@@ -166,6 +166,7 @@ static int rk2818_event_occurred(struct rk2818_i2c_data *i2c)
                isr &= ~I2C_ISR_ARBITR_LOSE;
                writel(isr, i2c->regs + I2C_ISR);
                i2c->cmd_err = RK2818_ERROR_ARBITR_LOSE;
+               dev_err(i2c->dev, "<error>arbitration loss\n");
                return 1;
        }
 
@@ -777,65 +778,7 @@ static void __exit rk2818_i2c_adap_exit(void)
 
 subsys_initcall(rk2818_i2c_adap_init);
 module_exit(rk2818_i2c_adap_exit);
-#if 1
-/* i2c devices test driver */
-static int i2c_test_probe(struct i2c_client *client,
-                       const struct i2c_device_id *id)
-{
-       int ret, i ;
-       char buf;
-       char reg = 0x02;
-
-       int scl_rate = 100 * 1000;
-       ret = i2c_master_reg8_recv(client, reg, &buf ,1, scl_rate);
-       /*
-       short buf161 = 0x0303;
-       short reg161 = 0x0100;
-       short buf162 = 0xc001;
-       short reg162 = 0x1006;
-       printk("%s\n", __func__);
-       ret = i2c_master_reg16_send(client, reg162, &buf162 ,1, scl_rate);
-       ret = i2c_master_reg16_send(client, reg161, &buf161 ,1, scl_rate);
-       ret = i2c_master_reg16_recv(client, reg162, &buf162 ,1, scl_rate);
-       ret = i2c_master_reg16_recv(client, reg161, &buf161 ,1, scl_rate);
-       */
-       return 0;       
-}
-
-static int i2c_test_remove(struct i2c_client *client)
-{
-       return 0;
-}
-
-static const struct i2c_device_id i2c_test_id[] = {
-       { "i2c_test", 0 },
-       { }
-};
-MODULE_DEVICE_TABLE(i2c, i2c_test_id);
-
-static struct i2c_driver i2c_test_driver = {
-       .driver = {
-               .name = "i2c_test",
-       },
-       .probe = i2c_test_probe,
-       .remove = i2c_test_remove,
-       .id_table = i2c_test_id,
-};
-
-static int __init i2c_test_init(void)
-{
-       return i2c_add_driver(&i2c_test_driver);
-}
 
-static void __exit i2c_test_exit(void)
-{
-       i2c_del_driver(&i2c_test_driver);
-}
-
-fs_initcall(i2c_test_init);
-module_exit(i2c_test_exit);
-/************************************/
-#endif
 MODULE_DESCRIPTION("Driver for RK2818 I2C Bus");
 MODULE_AUTHOR("kfx, kfx@rock-chips.com");
 MODULE_LICENSE("GPL");