i2c: mux: drop old unused i2c-mux api
All i2c mux users are using an explicit i2c mux core, drop support for implicit i2c mux cores. Signed-off-by: Peter Rosin <peda@axentia.se> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
b6e3b7171b
commit
23fe440c59
2 changed files with 0 additions and 78 deletions
|
@ -28,12 +28,6 @@
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
|
||||||
/* multiplexer per channel data */
|
/* multiplexer per channel data */
|
||||||
struct i2c_mux_priv_old {
|
|
||||||
void *mux_priv;
|
|
||||||
int (*select)(struct i2c_adapter *, void *mux_priv, u32 chan_id);
|
|
||||||
int (*deselect)(struct i2c_adapter *, void *mux_priv, u32 chan_id);
|
|
||||||
};
|
|
||||||
|
|
||||||
struct i2c_mux_priv {
|
struct i2c_mux_priv {
|
||||||
struct i2c_adapter adap;
|
struct i2c_adapter adap;
|
||||||
struct i2c_algorithm algo;
|
struct i2c_algorithm algo;
|
||||||
|
@ -104,53 +98,6 @@ static unsigned int i2c_mux_parent_classes(struct i2c_adapter *parent)
|
||||||
return class;
|
return class;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int i2c_mux_select(struct i2c_mux_core *muxc, u32 chan)
|
|
||||||
{
|
|
||||||
struct i2c_mux_priv_old *priv = i2c_mux_priv(muxc);
|
|
||||||
|
|
||||||
return priv->select(muxc->parent, priv->mux_priv, chan);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int i2c_mux_deselect(struct i2c_mux_core *muxc, u32 chan)
|
|
||||||
{
|
|
||||||
struct i2c_mux_priv_old *priv = i2c_mux_priv(muxc);
|
|
||||||
|
|
||||||
return priv->deselect(muxc->parent, priv->mux_priv, chan);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct i2c_adapter *i2c_add_mux_adapter(struct i2c_adapter *parent,
|
|
||||||
struct device *mux_dev,
|
|
||||||
void *mux_priv, u32 force_nr, u32 chan_id,
|
|
||||||
unsigned int class,
|
|
||||||
int (*select) (struct i2c_adapter *,
|
|
||||||
void *, u32),
|
|
||||||
int (*deselect) (struct i2c_adapter *,
|
|
||||||
void *, u32))
|
|
||||||
{
|
|
||||||
struct i2c_mux_core *muxc;
|
|
||||||
struct i2c_mux_priv_old *priv;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
muxc = i2c_mux_alloc(parent, mux_dev, 1, sizeof(*priv), 0,
|
|
||||||
i2c_mux_select, i2c_mux_deselect);
|
|
||||||
if (!muxc)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
priv = i2c_mux_priv(muxc);
|
|
||||||
priv->select = select;
|
|
||||||
priv->deselect = deselect;
|
|
||||||
priv->mux_priv = mux_priv;
|
|
||||||
|
|
||||||
ret = i2c_mux_add_adapter(muxc, force_nr, chan_id, class);
|
|
||||||
if (ret) {
|
|
||||||
devm_kfree(mux_dev, muxc);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return muxc->adapter[0];
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(i2c_add_mux_adapter);
|
|
||||||
|
|
||||||
struct i2c_mux_core *i2c_mux_alloc(struct i2c_adapter *parent,
|
struct i2c_mux_core *i2c_mux_alloc(struct i2c_adapter *parent,
|
||||||
struct device *dev, int max_adapters,
|
struct device *dev, int max_adapters,
|
||||||
int sizeof_priv, u32 flags,
|
int sizeof_priv, u32 flags,
|
||||||
|
@ -305,16 +252,6 @@ void i2c_mux_del_adapters(struct i2c_mux_core *muxc)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(i2c_mux_del_adapters);
|
EXPORT_SYMBOL_GPL(i2c_mux_del_adapters);
|
||||||
|
|
||||||
void i2c_del_mux_adapter(struct i2c_adapter *adap)
|
|
||||||
{
|
|
||||||
struct i2c_mux_priv *priv = adap->algo_data;
|
|
||||||
struct i2c_mux_core *muxc = priv->muxc;
|
|
||||||
|
|
||||||
i2c_mux_del_adapters(muxc);
|
|
||||||
devm_kfree(muxc->dev, muxc);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(i2c_del_mux_adapter);
|
|
||||||
|
|
||||||
MODULE_AUTHOR("Rodolfo Giometti <giometti@linux.it>");
|
MODULE_AUTHOR("Rodolfo Giometti <giometti@linux.it>");
|
||||||
MODULE_DESCRIPTION("I2C driver for multiplexed I2C busses");
|
MODULE_DESCRIPTION("I2C driver for multiplexed I2C busses");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
|
|
|
@ -52,20 +52,6 @@ static inline void *i2c_mux_priv(struct i2c_mux_core *muxc)
|
||||||
return muxc->priv;
|
return muxc->priv;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Called to create a i2c bus on a multiplexed bus segment.
|
|
||||||
* The mux_dev and chan_id parameters are passed to the select
|
|
||||||
* and deselect callback functions to perform hardware-specific
|
|
||||||
* mux control.
|
|
||||||
*/
|
|
||||||
struct i2c_adapter *i2c_add_mux_adapter(struct i2c_adapter *parent,
|
|
||||||
struct device *mux_dev,
|
|
||||||
void *mux_priv, u32 force_nr, u32 chan_id,
|
|
||||||
unsigned int class,
|
|
||||||
int (*select) (struct i2c_adapter *,
|
|
||||||
void *mux_dev, u32 chan_id),
|
|
||||||
int (*deselect) (struct i2c_adapter *,
|
|
||||||
void *mux_dev, u32 chan_id));
|
|
||||||
/*
|
/*
|
||||||
* Called to create an i2c bus on a multiplexed bus segment.
|
* Called to create an i2c bus on a multiplexed bus segment.
|
||||||
* The chan_id parameter is passed to the select and deselect
|
* The chan_id parameter is passed to the select and deselect
|
||||||
|
@ -75,7 +61,6 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
|
||||||
u32 force_nr, u32 chan_id,
|
u32 force_nr, u32 chan_id,
|
||||||
unsigned int class);
|
unsigned int class);
|
||||||
|
|
||||||
void i2c_del_mux_adapter(struct i2c_adapter *adap);
|
|
||||||
void i2c_mux_del_adapters(struct i2c_mux_core *muxc);
|
void i2c_mux_del_adapters(struct i2c_mux_core *muxc);
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
Loading…
Reference in a new issue