|
@@ -682,6 +682,26 @@ int gpmc_prefetch_reset(int cs)
|
|
|
}
|
|
|
EXPORT_SYMBOL(gpmc_prefetch_reset);
|
|
|
|
|
|
+void gpmc_update_nand_reg(struct gpmc_nand_regs *reg, int cs)
|
|
|
+{
|
|
|
+ reg->gpmc_status = gpmc_base + GPMC_STATUS;
|
|
|
+ reg->gpmc_nand_command = gpmc_base + GPMC_CS0_OFFSET +
|
|
|
+ GPMC_CS_NAND_COMMAND + GPMC_CS_SIZE * cs;
|
|
|
+ reg->gpmc_nand_address = gpmc_base + GPMC_CS0_OFFSET +
|
|
|
+ GPMC_CS_NAND_ADDRESS + GPMC_CS_SIZE * cs;
|
|
|
+ reg->gpmc_nand_data = gpmc_base + GPMC_CS0_OFFSET +
|
|
|
+ GPMC_CS_NAND_DATA + GPMC_CS_SIZE * cs;
|
|
|
+ reg->gpmc_prefetch_config1 = gpmc_base + GPMC_PREFETCH_CONFIG1;
|
|
|
+ reg->gpmc_prefetch_config2 = gpmc_base + GPMC_PREFETCH_CONFIG2;
|
|
|
+ reg->gpmc_prefetch_control = gpmc_base + GPMC_PREFETCH_CONTROL;
|
|
|
+ reg->gpmc_prefetch_status = gpmc_base + GPMC_PREFETCH_STATUS;
|
|
|
+ reg->gpmc_ecc_config = gpmc_base + GPMC_ECC_CONFIG;
|
|
|
+ reg->gpmc_ecc_control = gpmc_base + GPMC_ECC_CONTROL;
|
|
|
+ reg->gpmc_ecc_size_config = gpmc_base + GPMC_ECC_SIZE_CONFIG;
|
|
|
+ reg->gpmc_ecc1_result = gpmc_base + GPMC_ECC1_RESULT;
|
|
|
+ reg->gpmc_bch_result0 = gpmc_base + GPMC_ECC_BCH_RESULT_0;
|
|
|
+}
|
|
|
+
|
|
|
static void __init gpmc_mem_init(void)
|
|
|
{
|
|
|
int cs;
|