[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-m68k
Subject:    Re: [PATCH] dmaengine: mcf-edma: add ColdFire mcf5441x eDMA support
From:       Angelo Dureghello <angelo () sysam ! it>
Date:       2018-05-30 20:59:13
Message-ID: 20180530205913.GB17648 () jerusalem
[Download RAW message or body]

Hi Vinod,

On Mon, May 28, 2018 at 09:31:23AM +0530, Vinod wrote:
> Hi Angelo,
> 
> On 26-05-18, 22:50, Angelo Dureghello wrote:
> 
> > > wouldn't it be easier to just make common parts and then add edma specific code.
> > > If I was doing this it would be my apprach and that way code edma specific will
> > > be lesser and faster review
> > > 
> > 
> > I tried to set up a common module, but couldn't reach any good point.
> > 
> > Issues are:
> > 1) Edma register set between 32 and 64ch is similar, but some offsets/names 
> > are not matching between the 2 variants, some registers names are swapped over
> > the reg. address range,
> > 2) interrupt numbers and scheme is still different, handler implementation comes 
> > different,
> > 3) as a corollary of the above, all the common functions that needs to access 
> > edma registers should use same structure pointers. I could use a union
> > someway but points where register are accessed are many, and i should
> > differentiate the access in each case, referencing to a different structure
> > in each case.
> > 
> > If you have any idea on how i could reach a common module, with 2 different 
> > registers set, that's welcome.
> > I stay on the thought that a separate 64-channel module is the best
> > way to go here.
> > 
> > Currently, as Freescale "edma" variants, i know:
> > 
> > Vybrid VFXXX           32ch   DMA multiplexer   reg.set 1
> > Kynetis K70 (CortexM4) 32ch   DMA multiplexer   reg.set 1
> > imx8xx (coming)        32ch   no multiplexer    reg.set 1
> > MPC57xxk               32ch   DMA multiplexer   reg.set 1
> > ColdFire mcf5441x      64ch   no multiplexer    reg.set 2 <---
> > 
> > There may me other cpu using this fsl edma module but not in my knowledge
> > right now.
> > 
> > So i still think at the end, to have 2 separate drivers for the 32 and 64
> > variant is good and probably the most ordered/clean solution.
> 
> Okay there are few ways we can do this. One is to use helpers for register
> access and these helpers are different for the variant you are loaded on.
> 
> Another is to use register offsets which are set based on the variant loaded..
> 

Ok i try with register offsets. Lets' see.

Thanks,
Angelo

> HTH
> -- 
> ~Vinod
> --
> To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic