Lines Matching refs:muxc
35 struct i2c_mux_core *muxc;
43 struct i2c_mux_core *muxc = priv->muxc;
44 struct i2c_adapter *parent = muxc->parent;
49 ret = muxc->select(muxc, priv->chan_id);
52 if (muxc->deselect)
53 muxc->deselect(muxc, priv->chan_id);
62 struct i2c_mux_core *muxc = priv->muxc;
63 struct i2c_adapter *parent = muxc->parent;
68 ret = muxc->select(muxc, priv->chan_id);
71 if (muxc->deselect)
72 muxc->deselect(muxc, priv->chan_id);
83 struct i2c_mux_core *muxc = priv->muxc;
84 struct i2c_adapter *parent = muxc->parent;
89 ret = muxc->select(muxc, priv->chan_id);
93 if (muxc->deselect)
94 muxc->deselect(muxc, priv->chan_id);
105 struct i2c_mux_core *muxc = priv->muxc;
106 struct i2c_adapter *parent = muxc->parent;
111 ret = muxc->select(muxc, priv->chan_id);
115 if (muxc->deselect)
116 muxc->deselect(muxc, priv->chan_id);
125 struct i2c_adapter *parent = priv->muxc->parent;
146 struct i2c_adapter *parent = priv->muxc->parent;
157 struct i2c_adapter *parent = priv->muxc->parent;
172 struct i2c_adapter *parent = priv->muxc->parent;
183 struct i2c_adapter *parent = priv->muxc->parent;
193 struct i2c_adapter *parent = priv->muxc->parent;
207 struct i2c_adapter *parent = priv->muxc->parent;
245 struct i2c_mux_core *muxc;
248 mux_size = struct_size(muxc, adapter, max_adapters);
249 muxc = devm_kzalloc(dev, size_add(mux_size, sizeof_priv), GFP_KERNEL);
250 if (!muxc)
253 muxc->priv = &muxc->adapter[max_adapters];
255 muxc->parent = parent;
256 muxc->dev = dev;
258 muxc->mux_locked = true;
260 muxc->arbitrator = true;
262 muxc->gate = true;
263 muxc->select = select;
264 muxc->deselect = deselect;
265 muxc->max_adapters = max_adapters;
267 return muxc;
283 int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
287 struct i2c_adapter *parent = muxc->parent;
292 if (muxc->num_adapters >= muxc->max_adapters) {
293 dev_err(muxc->dev, "No room for more i2c-mux adapters\n");
302 priv->muxc = muxc;
309 if (muxc->mux_locked)
318 if (muxc->mux_locked)
338 if (muxc->mux_locked)
355 if (muxc->dev->of_node) {
356 struct device_node *dev_node = muxc->dev->of_node;
360 if (muxc->arbitrator)
362 else if (muxc->gate)
377 else if (muxc->arbitrator || muxc->gate)
397 if (has_acpi_companion(muxc->dev))
399 ACPI_COMPANION(muxc->dev),
421 WARN(sysfs_create_link(&priv->adap.dev.kobj, &muxc->dev->kobj,
426 WARN(sysfs_create_link(&muxc->dev->kobj, &priv->adap.dev.kobj,
432 muxc->adapter[muxc->num_adapters++] = &priv->adap;
441 void i2c_mux_del_adapters(struct i2c_mux_core *muxc)
445 while (muxc->num_adapters) {
446 struct i2c_adapter *adap = muxc->adapter[--muxc->num_adapters];
450 muxc->adapter[muxc->num_adapters] = NULL;
454 sysfs_remove_link(&muxc->dev->kobj, symlink_name);