On 8/27/08, David Brownell <[EMAIL PROTECTED]> wrote:
> On Tuesday 26 August 2008, Trent Piepho wrote:
> > Lots of tv cards have eeproms with configuration information. They use an
> > I2C driver called tveeprom that exports this:
> >
> > int tveeprom_read(struct i2c_client *c, unsigned char *eedata, int len)
>
>
> That presumes the driver somehow has access to that I2C client.
How about using bus_find_device? PowerPC uses it to locate the i2c
device using pointers in the device tree.
+static int of_dev_node_match(struct device *dev, void *data)
+{
+ return dev->archdata.of_node == data;
+}
+
+struct i2c_client *of_find_i2c_device_by_node(struct device_node *node)
+{
+ struct device *dev;
+
+ dev = bus_find_device(&i2c_bus_type, NULL, node,
+ of_dev_node_match);
+ if (!dev)
+ return NULL;
+
+ return to_i2c_client(dev);
+}
+EXPORT_SYMBOL(of_find_i2c_device_by_node);
+
>
> (Also, that it's an I2C EEPROM. I keep wanting to have something
> usable for SPI EEPROMs and NVRAM too. But maybe nobody else cares.)
>
>
>
> > > Last I heard, the U-Boot policy was not to touch controllers that are
> > > not required during boot. Despite relatively common cases like needing
> > > to set up MAC addresses ... maybe this patch of Kevin's can make it a
> > > bunch easier to cope with that U-Boot policy. :)
> >
> > U-boot can put the MAC address into a property of the MAC's device node in
> > the OF device tree (which u-boot passes to the kernel).
>
>
> Maybe with PowerPC it does. Not on ARM. ;)
>
>
>
--
Jon Smirl
[EMAIL PROTECTED]
_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c