Hello. I wrote:
http://download.ronetix.info/sk-eb926x/linux/kernel/2.6.28/003_linux-2.6.28-at91-ronetix-12012009.patch
This patch is clearly incomplete because drivers/pcmcia/at91_cf.c does
accesses AT91RM9200 specific SMC register, but the patch does
nothing about
making this work on AT91SAM9. Though it indeed seems that AT91SAM9
can be
supported by that driver with minimum change -- perhaps by using
cpi_is_*()...
Rather see latest patch on http://maxim.org.za/at91_26.html.
The cpu_is_XX() is for run-time selection (and is the preferred
mechanism).
Unfortunately the SMC registers are significantly different on the
SAM9 and RM9200, so we need to use #ifdefs for compile-time selection.
Ah, seeing the real issue now: different encoding of the DBW fields
b/w those 2 types of SMCs. Oh, and I've missed the different DBW field
positions too... That however can be addressed by using the driver
local #define', not the ones from the headers (which should be
conflicting)...
Well, probably not the best approach either. Since the SMC specific
in contained in a single funtion in this case, anothe rapproach can be
used: implement the function in the platfrom code and pass the pointer
to it via the platfrom data. This approach is used when the driver needs
to some board specific hook, e.g. some MMC drivers use this approach for
checking the write protect signal wired to some GPIO in a board specific
way).
Andrew Victor
Regards,
WBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html