Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Feb 2008 01:28:12 +0300
From:      Artem Kim <artem_kim@inbox.ru>
To:        freebsd-questions@freebsd.org
Subject:   i2c driver   newbie question
Message-ID:  <200802050128.12155.artem_kim@inbox.ru>

next in thread | raw e-mail | index | archive | help
Can anybody help my to write i2c drivers for saa7146 ?

I do not good understand how to connect this device to existing  iicbus=20
infrastructure.

I do:

static device_method_t saa7146_i2c_methods[] =3D {
	/* device interface */
	DEVMETHOD(device_probe,		saa7146_i2c_probe),
	DEVMETHOD(device_attach,	saa7146_i2c_attach),
	DEVMETHOD(device_detach,	saa7146_i2c_detach),
=20
	/* 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)
{
=2E......
}

static int
saa7146_i2c_attach(device_t dev)
{
=09
	//... Allocation of some resources

	//add child

	if ((sc->i2c_dev =3D device_add_child(dev, "iicbus", -1)) =3D=3D 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)
{
	......
}

=2E....

DRIVER_MODULE  (saa7146_i2c, pci, saa7146_i2c_driver, saa7146_i2c_devclass,=
 0,=20
0);
MODULE_DEPEND  (saa7146_i2c, iicbus, SAA7146_I2C_MINVER, SAA7146_I2C_PREFVE=
R,=20
SAA7146_I2C_MAXVER);
MODULE_VERSION (saa7146_i2c, SAA7146_I2C_MODVER);

But this now work. =F3hild-device do not use any resource and is no active,=
 and=20
calling any method of this device lead to panic.

What do I do wrong?

Thanks,
Artem



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200802050128.12155.artem_kim>