diff options
| -rw-r--r-- | arch/arm/mach-omap2/gpmc.c | 20 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/gpmc.h | 18 |
2 files changed, 38 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index b2b5759ab0fe..5cce9b00c13e 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
| @@ -682,6 +682,26 @@ int gpmc_prefetch_reset(int cs) | |||
| 682 | } | 682 | } |
| 683 | EXPORT_SYMBOL(gpmc_prefetch_reset); | 683 | EXPORT_SYMBOL(gpmc_prefetch_reset); |
| 684 | 684 | ||
| 685 | void gpmc_update_nand_reg(struct gpmc_nand_regs *reg, int cs) | ||
| 686 | { | ||
| 687 | reg->gpmc_status = gpmc_base + GPMC_STATUS; | ||
| 688 | reg->gpmc_nand_command = gpmc_base + GPMC_CS0_OFFSET + | ||
| 689 | GPMC_CS_NAND_COMMAND + GPMC_CS_SIZE * cs; | ||
| 690 | reg->gpmc_nand_address = gpmc_base + GPMC_CS0_OFFSET + | ||
| 691 | GPMC_CS_NAND_ADDRESS + GPMC_CS_SIZE * cs; | ||
| 692 | reg->gpmc_nand_data = gpmc_base + GPMC_CS0_OFFSET + | ||
| 693 | GPMC_CS_NAND_DATA + GPMC_CS_SIZE * cs; | ||
| 694 | reg->gpmc_prefetch_config1 = gpmc_base + GPMC_PREFETCH_CONFIG1; | ||
| 695 | reg->gpmc_prefetch_config2 = gpmc_base + GPMC_PREFETCH_CONFIG2; | ||
| 696 | reg->gpmc_prefetch_control = gpmc_base + GPMC_PREFETCH_CONTROL; | ||
| 697 | reg->gpmc_prefetch_status = gpmc_base + GPMC_PREFETCH_STATUS; | ||
| 698 | reg->gpmc_ecc_config = gpmc_base + GPMC_ECC_CONFIG; | ||
| 699 | reg->gpmc_ecc_control = gpmc_base + GPMC_ECC_CONTROL; | ||
| 700 | reg->gpmc_ecc_size_config = gpmc_base + GPMC_ECC_SIZE_CONFIG; | ||
| 701 | reg->gpmc_ecc1_result = gpmc_base + GPMC_ECC1_RESULT; | ||
| 702 | reg->gpmc_bch_result0 = gpmc_base + GPMC_ECC_BCH_RESULT_0; | ||
| 703 | } | ||
| 704 | |||
| 685 | static void __init gpmc_mem_init(void) | 705 | static void __init gpmc_mem_init(void) |
| 686 | { | 706 | { |
| 687 | int cs; | 707 | int cs; |
diff --git a/arch/arm/plat-omap/include/plat/gpmc.h b/arch/arm/plat-omap/include/plat/gpmc.h index f37764a36072..06198a51c4f0 100644 --- a/arch/arm/plat-omap/include/plat/gpmc.h +++ b/arch/arm/plat-omap/include/plat/gpmc.h | |||
| @@ -133,6 +133,24 @@ struct gpmc_timings { | |||
| 133 | u16 wr_data_mux_bus; /* WRDATAONADMUXBUS */ | 133 | u16 wr_data_mux_bus; /* WRDATAONADMUXBUS */ |
| 134 | }; | 134 | }; |
| 135 | 135 | ||
| 136 | struct gpmc_nand_regs { | ||
| 137 | void __iomem *gpmc_status; | ||
| 138 | void __iomem *gpmc_nand_command; | ||
| 139 | void __iomem *gpmc_nand_address; | ||
| 140 | void __iomem *gpmc_nand_data; | ||
| 141 | void __iomem *gpmc_prefetch_config1; | ||
| 142 | void __iomem *gpmc_prefetch_config2; | ||
| 143 | void __iomem *gpmc_prefetch_control; | ||
| 144 | void __iomem *gpmc_prefetch_status; | ||
| 145 | void __iomem *gpmc_ecc_config; | ||
| 146 | void __iomem *gpmc_ecc_control; | ||
| 147 | void __iomem *gpmc_ecc_size_config; | ||
| 148 | void __iomem *gpmc_ecc1_result; | ||
| 149 | void __iomem *gpmc_bch_result0; | ||
| 150 | }; | ||
| 151 | |||
| 152 | extern void gpmc_update_nand_reg(struct gpmc_nand_regs *reg, int cs); | ||
| 153 | |||
| 136 | extern unsigned int gpmc_ns_to_ticks(unsigned int time_ns); | 154 | extern unsigned int gpmc_ns_to_ticks(unsigned int time_ns); |
| 137 | extern unsigned int gpmc_ps_to_ticks(unsigned int time_ps); | 155 | extern unsigned int gpmc_ps_to_ticks(unsigned int time_ps); |
| 138 | extern unsigned int gpmc_ticks_to_ns(unsigned int ticks); | 156 | extern unsigned int gpmc_ticks_to_ns(unsigned int ticks); |
