• Home
  • Raw
  • Download

Lines Matching refs:muxc

34 	struct i2c_mux_core *muxc;  member
42 struct i2c_mux_core *muxc = priv->muxc; in __i2c_mux_master_xfer() local
43 struct i2c_adapter *parent = muxc->parent; in __i2c_mux_master_xfer()
48 ret = muxc->select(muxc, priv->chan_id); in __i2c_mux_master_xfer()
51 if (muxc->deselect) in __i2c_mux_master_xfer()
52 muxc->deselect(muxc, priv->chan_id); in __i2c_mux_master_xfer()
61 struct i2c_mux_core *muxc = priv->muxc; in i2c_mux_master_xfer() local
62 struct i2c_adapter *parent = muxc->parent; in i2c_mux_master_xfer()
67 ret = muxc->select(muxc, priv->chan_id); in i2c_mux_master_xfer()
70 if (muxc->deselect) in i2c_mux_master_xfer()
71 muxc->deselect(muxc, priv->chan_id); in i2c_mux_master_xfer()
82 struct i2c_mux_core *muxc = priv->muxc; in __i2c_mux_smbus_xfer() local
83 struct i2c_adapter *parent = muxc->parent; in __i2c_mux_smbus_xfer()
88 ret = muxc->select(muxc, priv->chan_id); in __i2c_mux_smbus_xfer()
92 if (muxc->deselect) in __i2c_mux_smbus_xfer()
93 muxc->deselect(muxc, priv->chan_id); in __i2c_mux_smbus_xfer()
104 struct i2c_mux_core *muxc = priv->muxc; in i2c_mux_smbus_xfer() local
105 struct i2c_adapter *parent = muxc->parent; in i2c_mux_smbus_xfer()
110 ret = muxc->select(muxc, priv->chan_id); in i2c_mux_smbus_xfer()
114 if (muxc->deselect) in i2c_mux_smbus_xfer()
115 muxc->deselect(muxc, priv->chan_id); in i2c_mux_smbus_xfer()
124 struct i2c_adapter *parent = priv->muxc->parent; in i2c_mux_functionality()
145 struct i2c_adapter *parent = priv->muxc->parent; in i2c_mux_lock_bus()
156 struct i2c_adapter *parent = priv->muxc->parent; in i2c_mux_trylock_bus()
171 struct i2c_adapter *parent = priv->muxc->parent; in i2c_mux_unlock_bus()
182 struct i2c_adapter *parent = priv->muxc->parent; in i2c_parent_lock_bus()
192 struct i2c_adapter *parent = priv->muxc->parent; in i2c_parent_trylock_bus()
206 struct i2c_adapter *parent = priv->muxc->parent; in i2c_parent_unlock_bus()
244 struct i2c_mux_core *muxc; in i2c_mux_alloc() local
246 muxc = devm_kzalloc(dev, sizeof(*muxc) in i2c_mux_alloc()
247 + max_adapters * sizeof(muxc->adapter[0]) in i2c_mux_alloc()
249 if (!muxc) in i2c_mux_alloc()
252 muxc->priv = &muxc->adapter[max_adapters]; in i2c_mux_alloc()
254 muxc->parent = parent; in i2c_mux_alloc()
255 muxc->dev = dev; in i2c_mux_alloc()
257 muxc->mux_locked = true; in i2c_mux_alloc()
259 muxc->arbitrator = true; in i2c_mux_alloc()
261 muxc->gate = true; in i2c_mux_alloc()
262 muxc->select = select; in i2c_mux_alloc()
263 muxc->deselect = deselect; in i2c_mux_alloc()
264 muxc->max_adapters = max_adapters; in i2c_mux_alloc()
266 return muxc; in i2c_mux_alloc()
282 int i2c_mux_add_adapter(struct i2c_mux_core *muxc, in i2c_mux_add_adapter() argument
286 struct i2c_adapter *parent = muxc->parent; in i2c_mux_add_adapter()
291 if (muxc->num_adapters >= muxc->max_adapters) { in i2c_mux_add_adapter()
292 dev_err(muxc->dev, "No room for more i2c-mux adapters\n"); in i2c_mux_add_adapter()
301 priv->muxc = muxc; in i2c_mux_add_adapter()
308 if (muxc->mux_locked) in i2c_mux_add_adapter()
314 if (muxc->mux_locked) in i2c_mux_add_adapter()
331 if (muxc->mux_locked) in i2c_mux_add_adapter()
348 if (muxc->dev->of_node) { in i2c_mux_add_adapter()
349 struct device_node *dev_node = muxc->dev->of_node; in i2c_mux_add_adapter()
353 if (muxc->arbitrator) in i2c_mux_add_adapter()
355 else if (muxc->gate) in i2c_mux_add_adapter()
370 else if (muxc->arbitrator || muxc->gate) in i2c_mux_add_adapter()
390 if (has_acpi_companion(muxc->dev)) in i2c_mux_add_adapter()
392 ACPI_COMPANION(muxc->dev), in i2c_mux_add_adapter()
414 WARN(sysfs_create_link(&priv->adap.dev.kobj, &muxc->dev->kobj, in i2c_mux_add_adapter()
419 WARN(sysfs_create_link(&muxc->dev->kobj, &priv->adap.dev.kobj, in i2c_mux_add_adapter()
425 muxc->adapter[muxc->num_adapters++] = &priv->adap; in i2c_mux_add_adapter()
434 void i2c_mux_del_adapters(struct i2c_mux_core *muxc) in i2c_mux_del_adapters() argument
438 while (muxc->num_adapters) { in i2c_mux_del_adapters()
439 struct i2c_adapter *adap = muxc->adapter[--muxc->num_adapters]; in i2c_mux_del_adapters()
443 muxc->adapter[muxc->num_adapters] = NULL; in i2c_mux_del_adapters()
447 sysfs_remove_link(&muxc->dev->kobj, symlink_name); in i2c_mux_del_adapters()