[U-Boot] [PATCH 5/7] ARM: sunxi-mmc: Add mmc support for sun6i / A31
Ian Campbell
ijc at hellion.org.uk
Tue Sep 23 14:42:59 CEST 2014
On Tue, 2014-09-23 at 20:07 +0800, Chen-Yu Tsai wrote:
> On Tue, Sep 23, 2014 at 7:54 PM, Ian Campbell <ijc at hellion.org.uk> wrote:
> > On Tue, 2014-09-23 at 19:50 +0800, Chen-Yu Tsai wrote:
> >> Ian, include/configs/sun?i.h and sunxi-common.h only have config
> >> related #defines. Are we sure this is the place for something
> >> like register offsets?
> >
> > I guess not ;-)
> >
> >> For reference, drivers/i2c/mvtwsi.c has sunxi specific register
> >> offsets wrapped in a #define in the file itself.
> >
> > How about either ./arch/arm/include/asm/arch-sunxi/mmc.h or near the top
> > of this C file (i.e. outside the code itself)?
>
> Adding it to the register definitions in ./arch/arm/include/asm/arch-sunxi/mmc.h
> seems like a good choice. The last bit of struct sunxi_mmc would be like:
>
> u32 idie; /* 0x8c internal DMA interrupt enable */
> u32 chda; /* 0x90 */
> u32 cbda; /* 0x94 */
> #if defined(CONFIG_SUN6I)
> u32 res1[126];
> #else
> u32 res1[26];
> #endif
> u32 fifo; /* 0x100 (0x200 on sun6i) FIFO access address */
> };
>
> And have
>
> mmchost->database = &mmchost->reg->fifo;
>
> Or just get rid of ->database and use ->reg->fifo directly.
> The latter seems better.
Yep, sounds good.
You could also consider just
#if defined(CONFIG_SUN6I)
u32 res2[100];
#endif
after the existing res1.
More information about the U-Boot
mailing list