Lines Matching refs:adap

52 	struct i2c_adapter adap;  member
72 static int uniphier_i2c_xfer_byte(struct i2c_adapter *adap, u32 txdata, in uniphier_i2c_xfer_byte() argument
75 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_xfer_byte()
82 dev_dbg(&adap->dev, "write data: 0x%04x\n", txdata); in uniphier_i2c_xfer_byte()
85 time_left = wait_for_completion_timeout(&priv->comp, adap->timeout); in uniphier_i2c_xfer_byte()
87 dev_err(&adap->dev, "transaction timeout\n"); in uniphier_i2c_xfer_byte()
92 dev_dbg(&adap->dev, "read data: 0x%04x\n", rxdata); in uniphier_i2c_xfer_byte()
100 static int uniphier_i2c_send_byte(struct i2c_adapter *adap, u32 txdata) in uniphier_i2c_send_byte() argument
105 ret = uniphier_i2c_xfer_byte(adap, txdata, &rxdata); in uniphier_i2c_send_byte()
110 dev_dbg(&adap->dev, "arbitration lost\n"); in uniphier_i2c_send_byte()
114 dev_dbg(&adap->dev, "could not get ACK\n"); in uniphier_i2c_send_byte()
121 static int uniphier_i2c_tx(struct i2c_adapter *adap, u16 addr, u16 len, in uniphier_i2c_tx() argument
126 dev_dbg(&adap->dev, "start condition\n"); in uniphier_i2c_tx()
127 ret = uniphier_i2c_send_byte(adap, addr << 1 | in uniphier_i2c_tx()
134 ret = uniphier_i2c_send_byte(adap, in uniphier_i2c_tx()
143 static int uniphier_i2c_rx(struct i2c_adapter *adap, u16 addr, u16 len, in uniphier_i2c_rx() argument
148 dev_dbg(&adap->dev, "start condition\n"); in uniphier_i2c_rx()
149 ret = uniphier_i2c_send_byte(adap, addr << 1 | in uniphier_i2c_rx()
159 ret = uniphier_i2c_xfer_byte(adap, in uniphier_i2c_rx()
170 static int uniphier_i2c_stop(struct i2c_adapter *adap) in uniphier_i2c_stop() argument
172 dev_dbg(&adap->dev, "stop condition\n"); in uniphier_i2c_stop()
173 return uniphier_i2c_send_byte(adap, UNIPHIER_I2C_DTRM_STO | in uniphier_i2c_stop()
177 static int uniphier_i2c_master_xfer_one(struct i2c_adapter *adap, in uniphier_i2c_master_xfer_one() argument
184 dev_dbg(&adap->dev, "%s: addr=0x%02x, len=%d, stop=%d\n", in uniphier_i2c_master_xfer_one()
188 ret = uniphier_i2c_rx(adap, msg->addr, msg->len, msg->buf); in uniphier_i2c_master_xfer_one()
190 ret = uniphier_i2c_tx(adap, msg->addr, msg->len, msg->buf); in uniphier_i2c_master_xfer_one()
202 int ret2 = uniphier_i2c_stop(adap); in uniphier_i2c_master_xfer_one()
212 i2c_recover_bus(adap); in uniphier_i2c_master_xfer_one()
217 static int uniphier_i2c_check_bus_busy(struct i2c_adapter *adap) in uniphier_i2c_check_bus_busy() argument
219 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_check_bus_busy()
228 i2c_recover_bus(adap); in uniphier_i2c_check_bus_busy()
239 static int uniphier_i2c_master_xfer(struct i2c_adapter *adap, in uniphier_i2c_master_xfer() argument
245 ret = uniphier_i2c_check_bus_busy(adap); in uniphier_i2c_master_xfer()
256 ret = uniphier_i2c_master_xfer_one(adap, msg, stop); in uniphier_i2c_master_xfer()
264 static u32 uniphier_i2c_functionality(struct i2c_adapter *adap) in uniphier_i2c_functionality() argument
282 static int uniphier_i2c_get_scl(struct i2c_adapter *adap) in uniphier_i2c_get_scl() argument
284 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_get_scl()
290 static void uniphier_i2c_set_scl(struct i2c_adapter *adap, int val) in uniphier_i2c_set_scl() argument
292 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_set_scl()
298 static int uniphier_i2c_get_sda(struct i2c_adapter *adap) in uniphier_i2c_get_sda() argument
300 struct uniphier_i2c_priv *priv = i2c_get_adapdata(adap); in uniphier_i2c_get_sda()
306 static void uniphier_i2c_unprepare_recovery(struct i2c_adapter *adap) in uniphier_i2c_unprepare_recovery() argument
308 uniphier_i2c_reset(i2c_get_adapdata(adap), false); in uniphier_i2c_unprepare_recovery()
380 priv->adap.owner = THIS_MODULE; in uniphier_i2c_probe()
381 priv->adap.algo = &uniphier_i2c_algo; in uniphier_i2c_probe()
382 priv->adap.dev.parent = dev; in uniphier_i2c_probe()
383 priv->adap.dev.of_node = dev->of_node; in uniphier_i2c_probe()
384 strlcpy(priv->adap.name, "UniPhier I2C", sizeof(priv->adap.name)); in uniphier_i2c_probe()
385 priv->adap.bus_recovery_info = &uniphier_i2c_bus_recovery_info; in uniphier_i2c_probe()
386 i2c_set_adapdata(&priv->adap, priv); in uniphier_i2c_probe()
400 ret = i2c_add_adapter(&priv->adap); in uniphier_i2c_probe()
417 i2c_del_adapter(&priv->adap); in uniphier_i2c_remove()