On Tue, 2010-09-07 at 17:50 -0500, Moffett, Kyle D wrote: > On Sep 07, 2010, at 18:09, Peter Tyser wrote: > >>> The GPIO functions above aren't hww1u1a specific. What about adding > >>> generic 85xx GPIO functions so others can use them too? > >> > >> I can do that. Do you have any particular place you recommend I put them? > > > > The 2 places that jump to mind are drivers/gpio, or > > arch/powerpc/cpu/mpc8xxx. My personal preference would be drivers/gpio. > > Hmm, given that they all seem to inline smaller than a function call would > be, I've put them as "static inline" functions in: > arch/powerpc/include/asm/mpc85xx_gpio.h > > Is that OK?
I'd recommend throwing it in a C file and using the "standard" gpiolib function names. That way others can easily use it to tie into U-Boot's LED, NAND, I2C, etc drivers. Eg I'd use it for LEDs immediately on a number of my company's boards if it existed. board/altera/nios2-generic/gpio.c is a simple example, arch/blackfin/cpu/gpio.c is a bit more complicated but featureful. > >>> Is the above check the same as the hww1u1a_is_cpu_a() function > >>> previously added? > >> > >> Oops, yes it is, will fix. That reminds me of one other question, > >> though. Several variables are different between the CPU A and the CPU > >> B on the board but maintaining 2 nearly-identical device trees is kind > >> of a pain. Is there any good way to manage that? Should I try to > >> poke the device tree file during boot, or is there some kind of macro > >> language I can use in the dts file? (EG: "#ifdef CPU_A", etc) > > > > There isn't a macro language in the dts file that you can use. Its hard > > to say if you should tweak the dtb in U-Boot. People's opinions vary: > > http://www.mail-archive.com/u-boot@lists.denx.de/msg36029.html > > > > I'd give modifying the dtb in U-Boot a try, and people will let you know > > if its outside of the scope of U-Boot's responsibility. > > Hmm, seems like a lot of extra work to try fiddling with the DTB for very > little gain. If done right its not much to tweak the dtb in code for what its worth. > I think at this point I'll just implement an "is_cpu_a" command and use it > from a hush script something like this: > > if is_cpu_a; then > bootm ${flkernel} ${flinitramfs} ${fldevicetree_cpua} > else > bootm ${flkernel} ${flinitramfs} ${fldevicetree_cpub} > fi > > Does that seem OK? Sounds good to me. You could always try adding dtb tweaking to U-Boot at a later date if you got sick of maintaining 2 device trees. Best. Peter _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot