[PATCH v2] pasemi: process i2c device tree entries at boot

Scott Wood scottwood at freescale.com
Tue Oct 16 08:54:51 EST 2007


Olof Johansson wrote:
> Setup i2c_board_info based on device tree contents. This has to be
> a device_initcall since we need PCI to be probed by the time we
> run it, but before the actual driver is initialized.

Can we factor at least some of this stuff out into common code?

We certainly shouldn't need more than one translation table, and this loop:

> +static int __init pasemi_register_i2c_devices(void)
> +{
> +	struct pci_dev *pdev;
> +	struct device_node *adap_node;
> +	struct device_node *node;
> +
> +	pdev = NULL;
> +	while ((pdev = pci_get_device(PCI_VENDOR_ID_PASEMI, 0xa003, pdev))) {
> +		adap_node = pci_device_to_OF_node(pdev);

Should be in the pasemi code, and pass a bus number and device node to 
generic code that does this:

> +		node = NULL;
> +		while ((node = of_get_next_child(adap_node, node))) {

-Scott



More information about the Linuxppc-dev mailing list