Can anybody help my to write i2c drivers for saa7146 ? I do not good understand how to connect this device to existing iicbus infrastructure.
I do: static device_method_t saa7146_i2c_methods[] = { /* device interface */ DEVMETHOD(device_probe, saa7146_i2c_probe), DEVMETHOD(device_attach, saa7146_i2c_attach), DEVMETHOD(device_detach, saa7146_i2c_detach), /* iicbus interface */ DEVMETHOD(iicbus_callback, iicbus_null_callback), DEVMETHOD(iicbus_repeated_start, saa7146_i2c_repeated_start), DEVMETHOD(iicbus_start, saa7146_i2c_start), DEVMETHOD(iicbus_stop, saa7146_i2c_stop), DEVMETHOD(iicbus_write, saa7146_i2c_write), DEVMETHOD(iicbus_read, saa7146_i2c_read), DEVMETHOD(iicbus_reset, saa7146_i2c_rst_card), { 0, 0 } }; static int saa7146_i2c_probe(device_t dev) { ....... } static int saa7146_i2c_attach(device_t dev) { //... Allocation of some resources //add child if ((sc->i2c_dev = device_add_child(dev, "iicbus", -1)) == NULL) device_printf(dev, "could not allocate iicbus instance\n"); bus_generic_attach(dev); device_printf(dev, "%s complite\n", __FUNCTION__); return (0); } static int saa7146_i2c_start (device_t dev, u_char slave, int timeout) { ...... } ..... DRIVER_MODULE (saa7146_i2c, pci, saa7146_i2c_driver, saa7146_i2c_devclass, 0, 0); MODULE_DEPEND (saa7146_i2c, iicbus, SAA7146_I2C_MINVER, SAA7146_I2C_PREFVER, SAA7146_I2C_MAXVER); MODULE_VERSION (saa7146_i2c, SAA7146_I2C_MODVER); But this now work. Сhild-device do not use any resource and is no active, and calling any method of this device lead to panic. What do I do wrong? Thanks, Artem _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"