Lines Matching refs:i2c_dev

46 struct i2c_dev {  struct
56 static struct i2c_dev *i2c_dev_get_by_minor(unsigned index) in i2c_dev_get_by_minor() argument
58 struct i2c_dev *i2c_dev; in i2c_dev_get_by_minor() local
61 list_for_each_entry(i2c_dev, &i2c_dev_list, list) { in i2c_dev_get_by_minor()
62 if (i2c_dev->adap->nr == index) in i2c_dev_get_by_minor()
65 i2c_dev = NULL; in i2c_dev_get_by_minor()
68 return i2c_dev; in i2c_dev_get_by_minor()
71 static struct i2c_dev *get_free_i2c_dev(struct i2c_adapter *adap) in get_free_i2c_dev()
73 struct i2c_dev *i2c_dev; in get_free_i2c_dev() local
81 i2c_dev = kzalloc(sizeof(*i2c_dev), GFP_KERNEL); in get_free_i2c_dev()
82 if (!i2c_dev) in get_free_i2c_dev()
84 i2c_dev->adap = adap; in get_free_i2c_dev()
87 list_add_tail(&i2c_dev->list, &i2c_dev_list); in get_free_i2c_dev()
89 return i2c_dev; in get_free_i2c_dev()
92 static void return_i2c_dev(struct i2c_dev *i2c_dev) in return_i2c_dev() argument
95 list_del(&i2c_dev->list); in return_i2c_dev()
97 kfree(i2c_dev); in return_i2c_dev()
103 struct i2c_dev *i2c_dev = i2c_dev_get_by_minor(MINOR(dev->devt)); in name_show() local
105 if (!i2c_dev) in name_show()
107 return sprintf(buf, "%s\n", i2c_dev->adap->name); in name_show()
486 struct i2c_dev *i2c_dev; in i2cdev_open() local
488 i2c_dev = i2c_dev_get_by_minor(minor); in i2cdev_open()
489 if (!i2c_dev) in i2cdev_open()
492 adap = i2c_get_adapter(i2c_dev->adap->nr); in i2cdev_open()
544 struct i2c_dev *i2c_dev; in i2cdev_attach_adapter() local
551 i2c_dev = get_free_i2c_dev(adap); in i2cdev_attach_adapter()
552 if (IS_ERR(i2c_dev)) in i2cdev_attach_adapter()
553 return PTR_ERR(i2c_dev); in i2cdev_attach_adapter()
556 i2c_dev->dev = device_create(i2c_dev_class, &adap->dev, in i2cdev_attach_adapter()
559 if (IS_ERR(i2c_dev->dev)) { in i2cdev_attach_adapter()
560 res = PTR_ERR(i2c_dev->dev); in i2cdev_attach_adapter()
568 return_i2c_dev(i2c_dev); in i2cdev_attach_adapter()
575 struct i2c_dev *i2c_dev; in i2cdev_detach_adapter() local
581 i2c_dev = i2c_dev_get_by_minor(adap->nr); in i2cdev_detach_adapter()
582 if (!i2c_dev) /* attach_adapter must have failed */ in i2cdev_detach_adapter()
585 return_i2c_dev(i2c_dev); in i2cdev_detach_adapter()