Dear Matthias Fuchs, In message <4a61e62e.3030...@esd.eu> you wrote: > > Do you want to see something like this (see below)?
Basicly yes, but see comments below. > I ran into the problem that include/ppc405.h defines a macro "tcr". > This conflicts with tcr in my gpio_controller struct. Indeed - this is one of the resons we sreally should clean this up. > I hope you do make adding PMC405DE board support dependant from > fixing all casts with io accessor macros :-( If you really like and kindly ask for it, we can certainly do that :-) [Or did was a "not" missing somewhere in this sentence? :-) ] > index 9c1a119..789e326 100644 > --- a/board/esd/pmc405de/pmc405de.c > +++ b/board/esd/pmc405de/pmc405de.c > @@ -26,10 +26,20 @@ > #include <fdt_support.h> > #include <asm/processor.h> > #include <asm/io.h> > +#include <asm/gpio.h> > #include <asm/4xx_pci.h> > #include <command.h> > #include <malloc.h> Patch is white space corrupted. > +struct pmc405de_cpld { > + u8 version; > + u8 reserved0[3]; > + u8 status; > + u8 reserved1[3]; > + u8 control; > + u8 reserved2[3]; > +}; Are you sure these are 8 bit registers? And some comments would be nice, too. > - out_be32((void*)GPIO0_OR, > - in_be32((void*)GPIO0_OR) | CONFIG_SYS_GPIO_EREADY); > - out_be32((void*)GPIO0_TCR, > - in_be32((void*)GPIO0_TCR) | CONFIG_SYS_GPIO_EREADY); > + out_be32(&gpio0->or, > + in_be32(&gpio0->or) | CONFIG_SYS_GPIO_EREADY); > + out_be32(&gpio0->_tcr, > + in_be32(&gpio0->_tcr) | CONFIG_SYS_GPIO_EREADY); Something is wrong here- either it's 8 bit registers, nd you should use 8 bit accessor functions, or it's 32 bit in both cases. And instead of out_be32(&gpio0->or, in_be32(&gpio0->or) | CONFIG_SYS_GPIO_EREADY); you better use setbits_be32(&gpio0->or, CONFIG_SYS_GPIO_EREADY); [See also clrbits_*() and clrsetbits_*()] > +/* GPIO controller */ > +struct ppc4xx_gpio_controller { > + u32 or; > + u32 _tcr; > + u32 osl; > + u32 osh; > + u32 tsl; > + u32 tsh; > + u32 odr; > + u32 ir; > + u32 rr1; > + u32 rr2; > + u32 rr3; > + u32 reserved; > + u32 is1l; > + u32 is1h; > + u32 is2l; > + u32 is2h; > + u32 is3l; > + u32 is3h; > +}; Some comments might be helpful here, too. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Perfection is reached, not when there is no longer anything to add, but when there is no longer anything to take away. - Antoine de Saint-Exupery _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot