Lines Matching refs:port

32 i2c_drive_scl(struct nvkm_i2c_port *port, int state)  in i2c_drive_scl()  argument
34 port->func->drive_scl(port, state); in i2c_drive_scl()
38 i2c_drive_sda(struct nvkm_i2c_port *port, int state) in i2c_drive_sda() argument
40 port->func->drive_sda(port, state); in i2c_drive_sda()
44 i2c_sense_scl(struct nvkm_i2c_port *port) in i2c_sense_scl() argument
46 return port->func->sense_scl(port); in i2c_sense_scl()
50 i2c_sense_sda(struct nvkm_i2c_port *port) in i2c_sense_sda() argument
52 return port->func->sense_sda(port); in i2c_sense_sda()
56 i2c_delay(struct nvkm_i2c_port *port, u32 nsec) in i2c_delay() argument
62 i2c_raise_scl(struct nvkm_i2c_port *port) in i2c_raise_scl() argument
66 i2c_drive_scl(port, 1); in i2c_raise_scl()
68 i2c_delay(port, T_RISEFALL); in i2c_raise_scl()
69 } while (!i2c_sense_scl(port) && --timeout); in i2c_raise_scl()
75 i2c_start(struct nvkm_i2c_port *port) in i2c_start() argument
79 if (!i2c_sense_scl(port) || in i2c_start()
80 !i2c_sense_sda(port)) { in i2c_start()
81 i2c_drive_scl(port, 0); in i2c_start()
82 i2c_drive_sda(port, 1); in i2c_start()
83 if (!i2c_raise_scl(port)) in i2c_start()
87 i2c_drive_sda(port, 0); in i2c_start()
88 i2c_delay(port, T_HOLD); in i2c_start()
89 i2c_drive_scl(port, 0); in i2c_start()
90 i2c_delay(port, T_HOLD); in i2c_start()
95 i2c_stop(struct nvkm_i2c_port *port) in i2c_stop() argument
97 i2c_drive_scl(port, 0); in i2c_stop()
98 i2c_drive_sda(port, 0); in i2c_stop()
99 i2c_delay(port, T_RISEFALL); in i2c_stop()
101 i2c_drive_scl(port, 1); in i2c_stop()
102 i2c_delay(port, T_HOLD); in i2c_stop()
103 i2c_drive_sda(port, 1); in i2c_stop()
104 i2c_delay(port, T_HOLD); in i2c_stop()
108 i2c_bitw(struct nvkm_i2c_port *port, int sda) in i2c_bitw() argument
110 i2c_drive_sda(port, sda); in i2c_bitw()
111 i2c_delay(port, T_RISEFALL); in i2c_bitw()
113 if (!i2c_raise_scl(port)) in i2c_bitw()
115 i2c_delay(port, T_HOLD); in i2c_bitw()
117 i2c_drive_scl(port, 0); in i2c_bitw()
118 i2c_delay(port, T_HOLD); in i2c_bitw()
123 i2c_bitr(struct nvkm_i2c_port *port) in i2c_bitr() argument
127 i2c_drive_sda(port, 1); in i2c_bitr()
128 i2c_delay(port, T_RISEFALL); in i2c_bitr()
130 if (!i2c_raise_scl(port)) in i2c_bitr()
132 i2c_delay(port, T_HOLD); in i2c_bitr()
134 sda = i2c_sense_sda(port); in i2c_bitr()
136 i2c_drive_scl(port, 0); in i2c_bitr()
137 i2c_delay(port, T_HOLD); in i2c_bitr()
142 i2c_get_byte(struct nvkm_i2c_port *port, u8 *byte, bool last) in i2c_get_byte() argument
148 bit = i2c_bitr(port); in i2c_get_byte()
154 return i2c_bitw(port, last ? 1 : 0); in i2c_get_byte()
158 i2c_put_byte(struct nvkm_i2c_port *port, u8 byte) in i2c_put_byte() argument
162 ret = i2c_bitw(port, !!(byte & (1 << i))); in i2c_put_byte()
167 ret = i2c_bitr(port); in i2c_put_byte()
174 i2c_addr(struct nvkm_i2c_port *port, struct i2c_msg *msg) in i2c_addr() argument
179 return i2c_put_byte(port, addr); in i2c_addr()
185 struct nvkm_i2c_port *port = adap->algo_data; in i2c_bit_xfer() local
189 ret = nvkm_i2c(port)->acquire(port, nsecs_to_jiffies(T_TIMEOUT)); in i2c_bit_xfer()
197 ret = i2c_start(port); in i2c_bit_xfer()
199 ret = i2c_addr(port, msg); in i2c_bit_xfer()
203 ret = i2c_get_byte(port, ptr++, !remaining); in i2c_bit_xfer()
206 ret = i2c_put_byte(port, *ptr++); in i2c_bit_xfer()
212 i2c_stop(port); in i2c_bit_xfer()
213 nvkm_i2c(port)->release(port); in i2c_bit_xfer()