On Wed, May 21, 2008 at 04:28:51PM -0500, Nate Case wrote: > This adds support for hardware configurations that don't match the > chip default register settings (e.g., 16-bit data bus, DACK and > DREQ pulled down instead of up, analog overcurrent mode). > > These settings are passed in via the OF device tree. The PCI > interface still assumes the same default values.
Nice! I'll give this a spin on Electra as well, it should make it work there. A couple of comments on the OF interface: > @@ -55,8 +57,34 @@ static int of_isp1760_probe(struct of_device *dev, > virq = irq_create_of_mapping(oirq.controller, oirq.specifier, > oirq.size); > > + prop = of_get_property(dp, "port1-disable", NULL); > + if (prop && *prop != 0) > + devflags |= ISP1760_FLAG_PORT1_DIS; It should be sufficient to add the property without a value, and just check for the presence of it. The cpu nodes have properties like this if you want something to compare with. > + > + /* Some systems wire up only 16 of the 32 data lines */ > + prop = of_get_property(dp, "bus-width", NULL); > + if (prop && *prop == 16) > + devflags |= ISP1760_FLAG_BUS_WIDTH_16; This is the obvious exception, here you'll have to check the value. I'm not sure if the DT police will complain of the overloaded bus-width property name and would prefer a custom one. -Olof _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev