Nick Thompson wrote:
> Wolfgang Denk wrote:
>> Dear Nick Thompson,
>>
>> In message <4ae5dffd.2090...@gefanuc.com> you wrote:
>>> Provides initial support for TI OMAP-L1x/DA8xx SoC devices.
>>> See http://www.ti.com
>>>
>>> The DA8xx devices are similar to DaVinci devices but have a differing
>>> memory map and updated peripheral versions.
>>>
>>> Signed-off-by: Nick Thompson <nick.thomp...@gefanuc.com>
>>> ---
>> ...
>>> +/* required by davinci drivers */
>> Is this really an essential comment? Drop it!
>>
>>>  #define    REG(addr)       (*(volatile unsigned int *)(addr))
>>> -#define REG_P(addr)        ((volatile unsigned int *)(addr))
>>>  
>>> +/* required by davinci drivers */
>> Ditto.
>>
>>>  typedef volatile unsigned int      dv_reg;
>>>  typedef volatile unsigned int *    dv_reg_p;
>> ...
>>
>>> +/* for LPSCs in PSC1, 32 + actual id is being used for differentiation */
>>> +#define DAVINCI_LPSC_BASE  32
>>> +#define DAVINCI_LPSC_USB11 (DAVINCI_LPSC_BASE + 1)
>>> +#define DAVINCI_LPSC_USB20 (DAVINCI_LPSC_BASE + 2)
>>> +#define DAVINCI_LPSC_GPIO  (DAVINCI_LPSC_BASE + 3)
>>> +#define DAVINCI_LPSC_UHPI  (DAVINCI_LPSC_BASE + 4)
>>> +#define DAVINCI_LPSC_EMAC  (DAVINCI_LPSC_BASE + 5)
>>> +#define DAVINCI_LPSC_DDR_EMIF      (DAVINCI_LPSC_BASE + 6)
>>> +#define DAVINCI_LPSC_McASP0        (DAVINCI_LPSC_BASE + 7)
>>> +#define DAVINCI_LPSC_McASP1        (DAVINCI_LPSC_BASE + 8)
>>> +#define DAVINCI_LPSC_McASP2        (DAVINCI_LPSC_BASE + 9)
>>> +#define DAVINCI_LPSC_SPI1  (DAVINCI_LPSC_BASE + 10)
>>> +#define DAVINCI_LPSC_I2C1  (DAVINCI_LPSC_BASE + 11)
>>> +#define DAVINCI_LPSC_UART1 (DAVINCI_LPSC_BASE + 12)
>>> +#define DAVINCI_LPSC_UART2 (DAVINCI_LPSC_BASE + 13)
>>> +#define DAVINCI_LPSC_LCDC  (DAVINCI_LPSC_BASE + 16)
>>> +#define DAVINCI_LPSC_ePWM  (DAVINCI_LPSC_BASE + 17)
>>> +#define DAVINCI_LPSC_eCAP  (DAVINCI_LPSC_BASE + 20)
>>> +#define DAVINCI_LPSC_eQEP  (DAVINCI_LPSC_BASE + 21)
>>> +#define DAVINCI_LPSC_SCR_P0        (DAVINCI_LPSC_BASE + 22)
>>> +#define DAVINCI_LPSC_SCR_P1        (DAVINCI_LPSC_BASE + 23)
>>> +#define DAVINCI_LPSC_CR_P3 (DAVINCI_LPSC_BASE + 26)
>>> +#define DAVINCI_LPSC_L3_CBA_RAM    (DAVINCI_LPSC_BASE + 31)
>> I think you actually want to use a C struct here, like in many other
>> places.
>>
>> Please do not access device registers using plain pointers like (base
>> address plus offet), but always use I/O accessors with C structs, so
>> we can have strict type checking by the compiler.
> 
> As I mentioned in the patch introduction "[PATCH V3 0/4]..." there are
> several places where out of fashion code is present in these patches.
> 
> DA8xx SoC's are considered a member of the DaVinci family of SoC's and
> so these headers need to maintain compatibility with the relevant
> drivers already in the U-Boot git tree.
> 
> Those drivers do not use C structures and I/O accessors and so require
> the use of #defines as presented here.
> 
> Where possible I have not used legacy code forms in new code, but in
> the case of new code that also has to use these same registers, I have
> again opted for compatibility.
> 
> Of course I could duplicate the definitions as defines /and/ C structs,
> or even rewrite all the DaVinci family drivers, but I'm hoping neither
> of those options was the intention of your comments here.
> 
> Can you please confirm whether my assumptions as correct and acceptable
> in this case? I.e. (as Tom Rix put it) Can I get a pass on this one?
> 
> I think you have a point in the PINMUX cases below however, as I believe
> these #defines are only used in SoC specific code...
> 
> Best Regards,
> Nick
> 

There are a large number of #define's in davinci that could be
converted to structures.  My opinion is that da8xx sharing code
with davinci is a big enough change.  The reworking of basic
davici register calling through structs falls outside of what
I expect.

The cleanup on the calling I am looking for is switching
for direct access to registers to calling them through readl/writel.

Tom

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to