i2c: Kill is_newstyle_driver
[firefly-linux-kernel-4.4.55.git] / include / linux / i2c.h
index ad258059603380fdd2faa1eacaa455eb6795bdd4..28b27282496fa447498f6d30d30cf85977156f62 100644 (file)
@@ -100,9 +100,8 @@ extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client *client,
  * @class: What kind of i2c device we instantiate (for detect)
  * @attach_adapter: Callback for bus addition (for legacy drivers)
  * @detach_adapter: Callback for bus removal (for legacy drivers)
- * @detach_client: Callback for device removal (for legacy drivers)
- * @probe: Callback for device binding (new-style drivers)
- * @remove: Callback for device unbinding (new-style drivers)
+ * @probe: Callback for device binding
+ * @remove: Callback for device unbinding
  * @shutdown: Callback for device shutdown
  * @suspend: Callback for device suspend
  * @resume: Callback for device resume
@@ -137,26 +136,14 @@ struct i2c_driver {
        int id;
        unsigned int class;
 
-       /* Notifies the driver that a new bus has appeared. This routine
-        * can be used by the driver to test if the bus meets its conditions
-        * & seek for the presence of the chip(s) it supports. If found, it
-        * registers the client(s) that are on the bus to the i2c admin. via
-        * i2c_attach_client.  (LEGACY I2C DRIVERS ONLY)
+       /* Notifies the driver that a new bus has appeared or is about to be
+        * removed. You should avoid using this if you can, it will probably
+        * be removed in a near future.
         */
        int (*attach_adapter)(struct i2c_adapter *);
        int (*detach_adapter)(struct i2c_adapter *);
 
-       /* tells the driver that a client is about to be deleted & gives it
-        * the chance to remove its private data. Also, if the client struct
-        * has been dynamically allocated by the driver in the function above,
-        * it must be freed here.  (LEGACY I2C DRIVERS ONLY)
-        */
-       int (*detach_client)(struct i2c_client *) __deprecated;
-
-       /* Standard driver model interfaces, for "new style" i2c drivers.
-        * With the driver model, device enumeration is NEVER done by drivers;
-        * it's done by infrastructure.  (NEW STYLE DRIVERS ONLY)
-        */
+       /* Standard driver model interfaces */
        int (*probe)(struct i2c_client *, const struct i2c_device_id *);
        int (*remove)(struct i2c_client *);
 
@@ -193,7 +180,6 @@ struct i2c_driver {
  * @irq: indicates the IRQ generated by this device (if any)
  * @list: list of active/busy clients (DEPRECATED)
  * @detected: member of an i2c_driver.clients list
- * @released: used to synchronize client releases & detaches and references
  *
  * An i2c_client identifies a single device (i.e. chip) connected to an
  * i2c bus. The behaviour exposed to Linux is defined by the driver
@@ -211,7 +197,6 @@ struct i2c_client {
        int irq;                        /* irq issued by device         */
        struct list_head list;          /* DEPRECATED */
        struct list_head detected;
-       struct completion released;
 };
 #define to_i2c_client(d) container_of(d, struct i2c_client, dev)
 
@@ -248,11 +233,10 @@ static inline void i2c_set_clientdata(struct i2c_client *dev, void *data)
  * that, such as chip type, configuration, associated IRQ, and so on.
  *
  * i2c_board_info is used to build tables of information listing I2C devices
- * that are present.  This information is used to grow the driver model tree
- * for "new style" I2C drivers.  For mainboards this is done statically using
- * i2c_register_board_info(); bus numbers identify adapters that aren't
- * yet available.  For add-on boards, i2c_new_device() does this dynamically
- * with the adapter already known.
+ * that are present.  This information is used to grow the driver model tree.
+ * For mainboards this is done statically using i2c_register_board_info();
+ * bus numbers identify adapters that aren't yet available.  For add-on boards,
+ * i2c_new_device() does this dynamically with the adapter already known.
  */
 struct i2c_board_info {
        char            type[I2C_NAME_SIZE];
@@ -352,10 +336,6 @@ struct i2c_adapter {
        const struct i2c_algorithm *algo; /* the algorithm to access the bus */
        void *algo_data;
 
-       /* --- administration stuff. */
-       int (*client_register)(struct i2c_client *) __deprecated;
-       int (*client_unregister)(struct i2c_client *) __deprecated;
-
        /* data fields that are valid for all devices   */
        u8 level;                       /* nesting level for lockdep */
        struct mutex bus_lock;
@@ -429,11 +409,6 @@ static inline int i2c_add_driver(struct i2c_driver *driver)
        return i2c_register_driver(THIS_MODULE, driver);
 }
 
-/* These are deprecated, your driver should use the standard .probe()
- * and .remove() methods instead. */
-extern int __deprecated i2c_attach_client(struct i2c_client *);
-extern int __deprecated i2c_detach_client(struct i2c_client *);
-
 extern struct i2c_client *i2c_use_client(struct i2c_client *client);
 extern void i2c_release_client(struct i2c_client *client);
 
@@ -442,14 +417,6 @@ extern void i2c_release_client(struct i2c_client *client);
 extern void i2c_clients_command(struct i2c_adapter *adap,
                                unsigned int cmd, void *arg);
 
-/* Detect function. It iterates over all possible addresses itself.
- * It will only call found_proc if some client is connected at the
- * specific address (unless a 'force' matched);
- */
-extern int i2c_probe(struct i2c_adapter *adapter,
-               const struct i2c_client_address_data *address_data,
-               int (*found_proc) (struct i2c_adapter *, int, int));
-
 extern struct i2c_adapter *i2c_get_adapter(int id);
 extern void i2c_put_adapter(struct i2c_adapter *adap);