Lines Matching refs:dev

94 static int iicbb_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs);
137 iicbb_probe(device_t dev) in iicbb_probe() argument
139 device_set_desc(dev, "I2C bit-banging driver"); in iicbb_probe()
145 iicbb_attach(device_t dev) in iicbb_attach() argument
147 struct iicbb_softc *sc = (struct iicbb_softc *)device_get_softc(dev); in iicbb_attach()
149 sc->iicbus = device_add_child(dev, "iicbus", -1); in iicbb_attach()
155 SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), in iicbb_attach()
156 SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, in iicbb_attach()
160 SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), in iicbb_attach()
161 SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, in iicbb_attach()
164 SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), in iicbb_attach()
165 SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, in iicbb_attach()
169 bus_generic_attach(dev); in iicbb_attach()
174 iicbb_detach(device_t dev) in iicbb_detach() argument
177 bus_generic_detach(dev); in iicbb_detach()
178 device_delete_children(dev); in iicbb_detach()
185 iicbb_get_node(device_t bus, device_t dev) in iicbb_get_node() argument
194 iicbb_child_detached( device_t dev, device_t child ) in iicbb_child_detached() argument
196 struct iicbb_softc *sc = (struct iicbb_softc *)device_get_softc(dev); in iicbb_child_detached()
203 iicbb_print_child(device_t bus, device_t dev) in iicbb_print_child() argument
209 retval += bus_print_child_header(bus, dev); in iicbb_print_child()
241 #define I2C_GETSDA(dev) (IICBB_GETSDA(device_get_parent(dev))) argument
242 #define I2C_SETSDA(dev, x) (IICBB_SETSDA(device_get_parent(dev), x)) argument
243 #define I2C_GETSCL(dev) (IICBB_GETSCL(device_get_parent(dev))) argument
244 #define I2C_SETSCL(dev, x) (IICBB_SETSCL(device_get_parent(dev), x)) argument
247 iicbb_waitforscl(device_t dev) in iicbb_waitforscl() argument
249 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_waitforscl()
258 if (I2C_GETSCL(dev)) in iicbb_waitforscl()
266 if (I2C_GETSCL(dev)) in iicbb_waitforscl()
277 iicbb_clockin(device_t dev, int sda) in iicbb_clockin() argument
291 I2C_SETSDA(dev, sda); in iicbb_clockin()
292 I2C_SETSCL(dev, 1); in iicbb_clockin()
293 return (iicbb_waitforscl(dev)); in iicbb_clockin()
301 iicbb_clockout(device_t dev) in iicbb_clockout() argument
303 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_clockout()
310 I2C_SETSCL(dev, 0); in iicbb_clockout()
315 iicbb_sendbit(device_t dev, int bit) in iicbb_sendbit() argument
317 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_sendbit()
320 err = iicbb_clockin(dev, bit); in iicbb_sendbit()
324 iicbb_clockout(dev); in iicbb_sendbit()
343 iicbb_getack(device_t dev) in iicbb_getack() argument
345 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_getack()
350 err = iicbb_clockin(dev, 1); in iicbb_getack()
358 noack = I2C_GETSDA(dev); in iicbb_getack()
365 iicbb_clockout(dev); in iicbb_getack()
372 iicbb_sendbyte(device_t dev, uint8_t data) in iicbb_sendbyte() argument
377 err = iicbb_sendbit(dev, (data & (1 << i)) != 0); in iicbb_sendbyte()
388 iicbb_readbyte(device_t dev, bool last, uint8_t *data) in iicbb_readbyte() argument
390 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_readbyte()
399 I2C_SETSDA(dev, 1); in iicbb_readbyte()
401 I2C_SETSCL(dev, 1); in iicbb_readbyte()
402 err = iicbb_waitforscl(dev); in iicbb_readbyte()
408 if (I2C_GETSDA(dev)) in iicbb_readbyte()
411 iicbb_clockout(dev); in iicbb_readbyte()
418 iicbb_sendbit(dev, last); in iicbb_readbyte()
424 iicbb_callback(device_t dev, int index, caddr_t data) in iicbb_callback() argument
426 return (IICBB_CALLBACK(device_get_parent(dev), index, data)); in iicbb_callback()
430 iicbb_reset(device_t dev, u_char speed, u_char addr, u_char *oldaddr) in iicbb_reset() argument
432 iicbb_set_speed(device_get_softc(dev), speed); in iicbb_reset()
433 return (IICBB_RESET(device_get_parent(dev), speed, addr, oldaddr)); in iicbb_reset()
437 iicbb_start_impl(device_t dev, u_char slave, bool repstart) in iicbb_start_impl() argument
439 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_start_impl()
446 if (iicbb_waitforscl(dev) != 0) { in iicbb_start_impl()
452 error = iicbb_clockin(dev, 1); in iicbb_start_impl()
464 if (!I2C_GETSDA(dev)) { in iicbb_start_impl()
470 I2C_SETSDA(dev, 0); in iicbb_start_impl()
476 iicbb_clockout(dev); in iicbb_start_impl()
479 error = iicbb_sendbyte(dev, slave); in iicbb_start_impl()
483 error = iicbb_getack(dev); in iicbb_start_impl()
485 (void)iicbb_stop(dev); in iicbb_start_impl()
491 iicbb_start(device_t dev, u_char slave, int timeout) in iicbb_start() argument
493 return (iicbb_start_impl(dev, slave, false)); in iicbb_start()
498 iicbb_repstart(device_t dev, u_char slave, int timeout) in iicbb_repstart() argument
500 return (iicbb_start_impl(dev, slave, true)); in iicbb_repstart()
504 iicbb_stop(device_t dev) in iicbb_stop() argument
506 struct iicbb_softc *sc = device_get_softc(dev); in iicbb_stop()
512 err = iicbb_clockin(dev, 0); in iicbb_stop()
516 I2C_SETSDA(dev, 1); in iicbb_stop()
526 iicbb_write(device_t dev, const char *buf, int len, int *sent, int timeout) in iicbb_write() argument
533 iicbb_sendbyte(dev, (uint8_t)*buf++); in iicbb_write()
536 error = iicbb_getack(dev); in iicbb_write()
549 iicbb_read(device_t dev, char *buf, int len, int *read, int last, int delay) in iicbb_read() argument
555 err = iicbb_readbyte(dev, (len == 1) ? last : 0, in iicbb_read()
569 iicbb_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) in iicbb_transfer() argument
573 error = IICBB_PRE_XFER(device_get_parent(dev)); in iicbb_transfer()
577 error = iicbus_transfer_gen(dev, msgs, nmsgs); in iicbb_transfer()
579 IICBB_POST_XFER(device_get_parent(dev)); in iicbb_transfer()