Lines Matching refs: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()
75 dev_err(&adap->dev, "transaction timeout\n"); in uniphier_i2c_xfer_byte()
86 static int uniphier_i2c_send_byte(struct i2c_adapter *adap, u32 txdata) in uniphier_i2c_send_byte() argument
91 ret = uniphier_i2c_xfer_byte(adap, txdata, &rxdata); in uniphier_i2c_send_byte()
104 static int uniphier_i2c_tx(struct i2c_adapter *adap, u16 addr, u16 len, in uniphier_i2c_tx() argument
109 ret = uniphier_i2c_send_byte(adap, addr << 1 | in uniphier_i2c_tx()
116 ret = uniphier_i2c_send_byte(adap, in uniphier_i2c_tx()
125 static int uniphier_i2c_rx(struct i2c_adapter *adap, u16 addr, u16 len, in uniphier_i2c_rx() argument
130 ret = uniphier_i2c_send_byte(adap, addr << 1 | in uniphier_i2c_rx()
140 ret = uniphier_i2c_xfer_byte(adap, in uniphier_i2c_rx()
151 static int uniphier_i2c_stop(struct i2c_adapter *adap) in uniphier_i2c_stop() argument
153 return uniphier_i2c_send_byte(adap, UNIPHIER_I2C_DTRM_STO | in uniphier_i2c_stop()
157 static int uniphier_i2c_master_xfer_one(struct i2c_adapter *adap, in uniphier_i2c_master_xfer_one() argument
165 ret = uniphier_i2c_rx(adap, msg->addr, msg->len, msg->buf); in uniphier_i2c_master_xfer_one()
167 ret = uniphier_i2c_tx(adap, msg->addr, msg->len, msg->buf); in uniphier_i2c_master_xfer_one()
179 int ret2 = uniphier_i2c_stop(adap); in uniphier_i2c_master_xfer_one()
189 i2c_recover_bus(adap); in uniphier_i2c_master_xfer_one()
194 static int uniphier_i2c_check_bus_busy(struct i2c_adapter *adap) in uniphier_i2c_check_bus_busy() argument
196 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_check_bus_busy()
205 i2c_recover_bus(adap); in uniphier_i2c_check_bus_busy()
216 static int uniphier_i2c_master_xfer(struct i2c_adapter *adap, in uniphier_i2c_master_xfer() argument
222 ret = uniphier_i2c_check_bus_busy(adap); in uniphier_i2c_master_xfer()
230 ret = uniphier_i2c_master_xfer_one(adap, msg, stop); in uniphier_i2c_master_xfer()
238 static u32 uniphier_i2c_functionality(struct i2c_adapter *adap) in uniphier_i2c_functionality() argument
256 static int uniphier_i2c_get_scl(struct i2c_adapter *adap) in uniphier_i2c_get_scl() argument
258 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_get_scl()
264 static void uniphier_i2c_set_scl(struct i2c_adapter *adap, int val) in uniphier_i2c_set_scl() argument
266 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_set_scl()
272 static int uniphier_i2c_get_sda(struct i2c_adapter *adap) in uniphier_i2c_get_sda() argument
274 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_get_sda()
280 static void uniphier_i2c_unprepare_recovery(struct i2c_adapter *adap) in uniphier_i2c_unprepare_recovery() argument
282 uniphier_i2c_reset(i2c_get_adapdata(adap), false); in uniphier_i2c_unprepare_recovery()
352 priv->adap.owner = THIS_MODULE; in uniphier_i2c_probe()
353 priv->adap.algo = &uniphier_i2c_algo; in uniphier_i2c_probe()
354 priv->adap.dev.parent = dev; in uniphier_i2c_probe()
355 priv->adap.dev.of_node = dev->of_node; in uniphier_i2c_probe()
356 strscpy(priv->adap.name, "UniPhier I2C", sizeof(priv->adap.name)); in uniphier_i2c_probe()
357 priv->adap.bus_recovery_info = &uniphier_i2c_bus_recovery_info; in uniphier_i2c_probe()
358 i2c_set_adapdata(&priv->adap, priv); in uniphier_i2c_probe()
370 return i2c_add_adapter(&priv->adap); in uniphier_i2c_probe()
377 i2c_del_adapter(&priv->adap); in uniphier_i2c_remove()