On Mon, Feb 18, 2008 at 01:43:52PM +0100, Laurent Pinchart wrote: > [EMAIL PROTECTED],0 { > device_type = "board-control"; > reg = <3 0 00000020>; > };
No device_type. Needs a compatible. > > [EMAIL PROTECTED],0 { > reg = <4 0 00010000>; > }; > }; > > The fourth device is a FPGA that contains several IP cores such as an > interrupt controller and a SD/MMC host controller. If I understand things > correctly, each IP core should have its own node in the device tree to allow > proper binding with device drivers. Correct. > As booting-without-of.txt describes the localbus node ranges as > corresponding to a single chipselect and covering the entire chipselect > access window, I can't have nodes for each IP core as children of the > localbus node. That does not follow. The ranges entry has to cover the whole chipselect, but there's no one-to-one correspondence between nodes and ranges entries. There's nothing wrong with doing this: [EMAIL PROTECTED],0 { compatible = "foo,bar"; reg = <4 0 00010000>; }; [EMAIL PROTECTED],10000 { compatible = "foo,baz"; reg = <4 00010000 00010000>; }; [EMAIL PROTECTED],20000 { compatible = "foo,blah"; reg = <4 00020000 00010000>; }; > Should I put IP core nodes as children of the FPGA node ? You could do that as well. > If so, how do I map addresses at the FPGA level ? A ranges property in the > FPGA node would let me map addresses in the FPGA scope to the localbus > scope. However, as the localbus scope use the chipselect number as its > first address cell and 0 as its second address cell, The second cell is the address within the chipselect. If it were always zero, it wouldn't be there at all. -Scott _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev