Lines Matching full:adap
40 struct i2c_adapter adap; member
61 static int uniphier_i2c_xfer_byte(struct i2c_adapter *adap, u32 txdata, in uniphier_i2c_xfer_byte() argument
64 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_xfer_byte()
73 time_left = wait_for_completion_timeout(&priv->comp, adap->timeout); in uniphier_i2c_xfer_byte()
84 static int uniphier_i2c_send_byte(struct i2c_adapter *adap, u32 txdata) in uniphier_i2c_send_byte() argument
89 ret = uniphier_i2c_xfer_byte(adap, txdata, &rxdata); in uniphier_i2c_send_byte()
102 static int uniphier_i2c_tx(struct i2c_adapter *adap, u16 addr, u16 len, in uniphier_i2c_tx() argument
107 ret = uniphier_i2c_send_byte(adap, addr << 1 | in uniphier_i2c_tx()
114 ret = uniphier_i2c_send_byte(adap, in uniphier_i2c_tx()
123 static int uniphier_i2c_rx(struct i2c_adapter *adap, u16 addr, u16 len, in uniphier_i2c_rx() argument
128 ret = uniphier_i2c_send_byte(adap, addr << 1 | in uniphier_i2c_rx()
138 ret = uniphier_i2c_xfer_byte(adap, in uniphier_i2c_rx()
149 static int uniphier_i2c_stop(struct i2c_adapter *adap) in uniphier_i2c_stop() argument
151 return uniphier_i2c_send_byte(adap, UNIPHIER_I2C_DTRM_STO | in uniphier_i2c_stop()
155 static int uniphier_i2c_xfer_one(struct i2c_adapter *adap, in uniphier_i2c_xfer_one() argument
163 ret = uniphier_i2c_rx(adap, msg->addr, msg->len, msg->buf); in uniphier_i2c_xfer_one()
165 ret = uniphier_i2c_tx(adap, msg->addr, msg->len, msg->buf); in uniphier_i2c_xfer_one()
177 int ret2 = uniphier_i2c_stop(adap); in uniphier_i2c_xfer_one()
187 i2c_recover_bus(adap); in uniphier_i2c_xfer_one()
192 static int uniphier_i2c_check_bus_busy(struct i2c_adapter *adap) in uniphier_i2c_check_bus_busy() argument
194 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_check_bus_busy()
203 i2c_recover_bus(adap); in uniphier_i2c_check_bus_busy()
214 static int uniphier_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) in uniphier_i2c_xfer() argument
219 ret = uniphier_i2c_check_bus_busy(adap); in uniphier_i2c_xfer()
227 ret = uniphier_i2c_xfer_one(adap, msg, stop); in uniphier_i2c_xfer()
235 static u32 uniphier_i2c_functionality(struct i2c_adapter *adap) in uniphier_i2c_functionality() argument
253 static int uniphier_i2c_get_scl(struct i2c_adapter *adap) in uniphier_i2c_get_scl() argument
255 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_get_scl()
261 static void uniphier_i2c_set_scl(struct i2c_adapter *adap, int val) in uniphier_i2c_set_scl() argument
263 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_set_scl()
269 static int uniphier_i2c_get_sda(struct i2c_adapter *adap) in uniphier_i2c_get_sda() argument
271 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_get_sda()
277 static void uniphier_i2c_unprepare_recovery(struct i2c_adapter *adap) in uniphier_i2c_unprepare_recovery() argument
279 uniphier_i2c_reset(i2c_get_adapdata(adap), false); in uniphier_i2c_unprepare_recovery()
343 priv->adap.owner = THIS_MODULE; in uniphier_i2c_probe()
344 priv->adap.algo = &uniphier_i2c_algo; in uniphier_i2c_probe()
345 priv->adap.dev.parent = dev; in uniphier_i2c_probe()
346 priv->adap.dev.of_node = dev->of_node; in uniphier_i2c_probe()
347 strscpy(priv->adap.name, "UniPhier I2C", sizeof(priv->adap.name)); in uniphier_i2c_probe()
348 priv->adap.bus_recovery_info = &uniphier_i2c_bus_recovery_info; in uniphier_i2c_probe()
349 i2c_set_adapdata(&priv->adap, priv); in uniphier_i2c_probe()
359 return i2c_add_adapter(&priv->adap); in uniphier_i2c_probe()
366 i2c_del_adapter(&priv->adap); in uniphier_i2c_remove()