
16 May
2009
16 May
'09
12:30 a.m.
Matthias Kaehlcke wrote:
+/*
- Board-specific function to access the device ready signal.
- */
+static int kb9202_nand_ready(struct mtd_info *mtd) +{
- return (((AT91C_BASE_PIOC->PIO_PDSR) & KB9202_NAND_BUSY) != 0);
+}
Use I/O accessors.
+int board_nand_init(struct nand_chip *nand) +{
- unsigned value;
[snip]
- /* enable internal NAND controller */
- value = *(AT91C_EBI_CSA);
- value |= AT91C_EBI_CS3A_SMC_SmartMedia;
- *(AT91C_EBI_CSA) = value;
This is a hardware register. Surely it has a defined width?
- /* setup nand flash access (allow ample margin) */
- /* 4 wait states, 1 setup, 1 hold, 1 float for 8-bit device */
- ((AT91PS_SMC2)AT91C_BASE_SMC2)->SMC2_CSR[3] =
AT91C_SMC2_WSEN |
(4 & AT91C_SMC2_NWS) |
((1 << 8) & AT91C_SMC2_TDF) |
AT91C_SMC2_DBW_8 |
((1 << 24) & AT91C_SMC2_RWSETUP) |
((1 << 29) & AT91C_SMC2_RWHOLD);
What is AT91PS_SMC2? Please don't hide pointers inside typedefs. Please define symbols to have the proper type in the first place, rather than casting at the point of use.
+#ifdef CONFIG_KB9202B_ATL +#define CFG_MAX_FLASH_BANKS 0 +#else
Is this really the recommended way of turning off flash support?
-Scott