[U-Boot] [PATCH 1/6] mxs: dma: Fix APBH DMA driver for MX23

Marek Vasut marex at denx.de
Thu Jan 24 19:27:29 CET 2013


Dear Stefano Babic,

> On 23/01/2013 02:01, Marek Vasut wrote:
> > The MX23 has less channels for the APBH DMA, sligtly different register
> > layout and some bits in those registers are placed differently. Reflect
> > this in the driver. This patch fixes MMC/DMA issue on MX23.
> > 
> > Signed-off-by: Marek Vasut <marex at denx.de>
> > Cc: Otavio Salvador <otavio at ossystems.com.br>
> > Cc: Fabio Estevam <fabio.estevam at freescale.com>
> > Cc: Stefano Babic <sbabic at denx.de>
> > ---
> > 
> >  arch/arm/include/asm/arch-mxs/regs-apbh.h |  121
> >  +++++++++++++++++++++++++++++ drivers/dma/apbh_dma.c                   
> >  |   10 ++-
> >  2 files changed, 129 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/arm/include/asm/arch-mxs/regs-apbh.h
> > b/arch/arm/include/asm/arch-mxs/regs-apbh.h index e18e677..fcef4b8
> > 100644
> > --- a/arch/arm/include/asm/arch-mxs/regs-apbh.h
> > +++ b/arch/arm/include/asm/arch-mxs/regs-apbh.h
> > @@ -29,6 +29,87 @@
> > 
> >  #include <asm/arch/regs-common.h>
> >  
> >  #ifndef	__ASSEMBLY__
> > 
> > +
> > +#if defined(CONFIG_MX23)
> > +struct mxs_apbh_regs {
> > +	mxs_reg_32(hw_apbh_ctrl0)
> > +	mxs_reg_32(hw_apbh_ctrl1)
> > +	mxs_reg_32(hw_apbh_ctrl2)
> > +	mxs_reg_32(hw_apbh_channel_ctrl)
> 
> I see there are diffrent definitions, but why do not we set a common
> name (as an alias) ?
> 
> Such as:
> #define hw_ahph_ctrl_set hw_apbh_ctrl0
> 
> > +#if defined(CONFIG_MX23)
> > +	uint32_t setreg = (uint32_t)(&apbh_regs->hw_apbh_ctrl0_set);
> > +	uint32_t offset = APBH_CTRL0_RESET_CHANNEL_OFFSET;
> 
> and we could drop the #ifdef in the driver file.

Oh this junk. On mx23, this bitfield is located in ctrl0 at offset 16 ; on mx28 
there's a dedicated register for this bitfield (since mx28 has 16 dma channels, 
mx23 has only 8).

So it's a bit confusing, but that's how it has to be done.

Best regards,
Marek Vasut


More information about the U-Boot mailing list