Lines Matching refs:dev

86 static int iicbb_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs);
128 iicbb_probe(device_t dev) in iicbb_probe() argument
130 device_set_desc(dev, "I2C bit-banging driver"); in iicbb_probe()
136 iicbb_attach(device_t dev) in iicbb_attach() argument
138 struct iicbb_softc *sc = (struct iicbb_softc *)device_get_softc(dev); in iicbb_attach()
140 sc->iicbus = device_add_child(dev, "iicbus", -1); in iicbb_attach()
144 bus_generic_attach(dev); in iicbb_attach()
150 iicbb_detach(device_t dev) in iicbb_detach() argument
153 bus_generic_detach(dev); in iicbb_detach()
154 device_delete_children(dev); in iicbb_detach()
161 iicbb_get_node(device_t bus, device_t dev) in iicbb_get_node() argument
170 iicbb_child_detached( device_t dev, device_t child ) in iicbb_child_detached() argument
172 struct iicbb_softc *sc = (struct iicbb_softc *)device_get_softc(dev); in iicbb_child_detached()
179 iicbb_print_child(device_t bus, device_t dev) in iicbb_print_child() argument
185 retval += bus_print_child_header(bus, dev); in iicbb_print_child()
202 #define I2C_SETSDA(sc,dev,val) do { \ argument
203 IICBB_SETSDA(device_get_parent(dev), val); \
207 #define I2C_SETSCL(dev,val) do { \ argument
208 iicbb_setscl(dev, val, 100); \
211 #define I2C_SET(sc,dev,ctrl,data) do { \ argument
212 I2C_SETSCL(dev, ctrl); \
213 I2C_SETSDA(sc, dev, data); \
216 #define I2C_GETSDA(dev) (IICBB_GETSDA(device_get_parent(dev))) argument
218 #define I2C_GETSCL(dev) (IICBB_GETSCL(device_get_parent(dev))) argument
230 iicbb_setscl(device_t dev, int val, int timeout) in iicbb_setscl() argument
232 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_setscl()
235 IICBB_SETSCL(device_get_parent(dev), val); in iicbb_setscl()
238 while (val && !I2C_GETSCL(dev) && k++ < timeout) { in iicbb_setscl()
239 IICBB_SETSCL(device_get_parent(dev), val); in iicbb_setscl()
247 iicbb_one(device_t dev, int timeout) in iicbb_one() argument
249 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_one()
251 I2C_SET(sc,dev,0,1); in iicbb_one()
252 I2C_SET(sc,dev,1,1); in iicbb_one()
253 I2C_SET(sc,dev,0,1); in iicbb_one()
258 iicbb_zero(device_t dev, int timeout) in iicbb_zero() argument
260 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_zero()
262 I2C_SET(sc,dev,0,0); in iicbb_zero()
263 I2C_SET(sc,dev,1,0); in iicbb_zero()
264 I2C_SET(sc,dev,0,0); in iicbb_zero()
283 iicbb_ack(device_t dev, int timeout) in iicbb_ack() argument
285 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_ack()
289 I2C_SET(sc,dev,0,1); in iicbb_ack()
290 I2C_SET(sc,dev,1,1); in iicbb_ack()
292 noack = I2C_GETSDA(dev); in iicbb_ack()
299 I2C_SET(sc,dev,0,1); in iicbb_ack()
306 iicbb_sendbyte(device_t dev, u_char data, int timeout) in iicbb_sendbyte() argument
312 iicbb_one(dev, timeout); in iicbb_sendbyte()
314 iicbb_zero(dev, timeout); in iicbb_sendbyte()
322 iicbb_readbyte(device_t dev, int last, int timeout) in iicbb_readbyte() argument
324 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_readbyte()
328 I2C_SET(sc,dev,0,1); in iicbb_readbyte()
331 I2C_SET(sc,dev,1,1); in iicbb_readbyte()
332 if (I2C_GETSDA(dev)) in iicbb_readbyte()
334 I2C_SET(sc,dev,0,1); in iicbb_readbyte()
337 iicbb_one(dev, timeout); in iicbb_readbyte()
339 iicbb_zero(dev, timeout); in iicbb_readbyte()
346 iicbb_callback(device_t dev, int index, caddr_t data) in iicbb_callback() argument
348 return (IICBB_CALLBACK(device_get_parent(dev), index, data)); in iicbb_callback()
352 iicbb_reset(device_t dev, u_char speed, u_char addr, u_char *oldaddr) in iicbb_reset() argument
354 return (IICBB_RESET(device_get_parent(dev), speed, addr, oldaddr)); in iicbb_reset()
358 iicbb_start(device_t dev, u_char slave, int timeout) in iicbb_start() argument
360 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_start()
365 I2C_SET(sc,dev,1,1); in iicbb_start()
366 I2C_SET(sc,dev,1,0); in iicbb_start()
367 I2C_SET(sc,dev,0,0); in iicbb_start()
370 iicbb_sendbyte(dev, slave, timeout); in iicbb_start()
373 if (iicbb_ack(dev, timeout)) { in iicbb_start()
381 iicbb_stop(dev); in iicbb_start()
386 iicbb_stop(device_t dev) in iicbb_stop() argument
388 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_stop()
390 I2C_SET(sc,dev,0,0); in iicbb_stop()
391 I2C_SET(sc,dev,1,0); in iicbb_stop()
392 I2C_SET(sc,dev,1,1); in iicbb_stop()
399 iicbb_write(device_t dev, const char *buf, int len, int *sent, int timeout) in iicbb_write() argument
406 iicbb_sendbyte(dev,(u_char)*buf++, timeout); in iicbb_write()
409 if (iicbb_ack(dev, timeout)) { in iicbb_write()
423 iicbb_read(device_t dev, char * buf, int len, int *read, int last, int delay) in iicbb_read() argument
430 *buf++ = (char)iicbb_readbyte(dev, (len == 1) ? last : 0, delay); in iicbb_read()
441 iicbb_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) in iicbb_transfer() argument
445 error = IICBB_PRE_XFER(device_get_parent(dev)); in iicbb_transfer()
449 error = iicbus_transfer_gen(dev, msgs, nmsgs); in iicbb_transfer()
451 IICBB_POST_XFER(device_get_parent(dev)); in iicbb_transfer()