mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-01 11:03:09 +02:00
add-2gb-nand-support
Signed-off-by: Xiangfu Liu <xiangfu.z@gmail.com>
This commit is contained in:
parent
26795803ce
commit
5b983412c7
@ -0,0 +1,166 @@
|
||||
diff --git a/arch/mips/jz4740/platform.c b/arch/mips/jz4740/platform.c
|
||||
index 6a129e7..3c069d8 100644
|
||||
--- a/arch/mips/jz4740/platform.c
|
||||
+++ b/arch/mips/jz4740/platform.c
|
||||
@@ -164,6 +164,45 @@ static struct resource jz_nand_resources[] = {
|
||||
},
|
||||
};
|
||||
|
||||
+#ifdef QI_LB60_2GB_NAND
|
||||
+static struct nand_ecclayout qi_lb60_ecclayout = {
|
||||
+ .eccbytes = 72,
|
||||
+ .eccpos = {
|
||||
+ 12, 13, 14, 15, 16, 17, 18, 19,
|
||||
+ 20, 21, 22, 23, 24, 25, 26, 27,
|
||||
+ 28, 29, 30, 31, 32, 33, 34, 35,
|
||||
+ 36, 37, 38, 39, 40, 41, 42, 43,
|
||||
+ 44, 45, 46, 47, 48, 49, 50, 51,
|
||||
+ 52, 53, 54, 55, 56, 57, 58, 59,
|
||||
+ 60, 61, 62, 63, 64, 65, 66, 67,
|
||||
+ 68, 69, 70, 71, 72, 73, 74, 75,
|
||||
+ 76, 77, 78, 79, 80, 81, 82, 83},
|
||||
+ .oobfree = {
|
||||
+ {.offset = 2,
|
||||
+ .length = 10},
|
||||
+ {.offset = 84,
|
||||
+ .length = 44}}
|
||||
+};
|
||||
+
|
||||
+static struct mtd_partition qi_lb60_partitions[] = {
|
||||
+ { .name = "NAND BOOT partition",
|
||||
+ .offset = 0 * 0x100000,
|
||||
+ .size = 4 * 0x100000,
|
||||
+ },
|
||||
+ { .name = "NAND KERNEL partition",
|
||||
+ .offset = 4 * 0x100000,
|
||||
+ .size = 4 * 0x100000,
|
||||
+ },
|
||||
+ { .name = "NAND ROOTFS partition",
|
||||
+ .offset = 8 * 0x100000,
|
||||
+ .size = 504 * 0x100000,
|
||||
+ },
|
||||
+ { .name = "NAND DATA partition",
|
||||
+ .offset = 512 * 0x100000,
|
||||
+ .size = (512 + 1024) * 0x100000,
|
||||
+ },
|
||||
+};
|
||||
+#else
|
||||
static struct nand_ecclayout qi_lb60_ecclayout = {
|
||||
.eccbytes = 36,
|
||||
.eccpos = {
|
||||
@@ -180,29 +219,30 @@ static struct nand_ecclayout qi_lb60_ecclayout = {
|
||||
};
|
||||
|
||||
static struct mtd_partition qi_lb60_partitions[] = {
|
||||
- { .name = "NAND BOOT partition",
|
||||
- .offset = 0 * 0x100000,
|
||||
- .size = 4 * 0x100000,
|
||||
- },
|
||||
- { .name = "NAND KERNEL partition",
|
||||
- .offset = 4 * 0x100000,
|
||||
- .size = 4 * 0x100000,
|
||||
- },
|
||||
- { .name = "NAND ROOTFS partition",
|
||||
- .offset = 8 * 0x100000,
|
||||
- .size = 20 * 0x100000,
|
||||
- },
|
||||
- { .name = "NAND DATA partition",
|
||||
- .offset = 100 * 0x100000,
|
||||
- .size = 20 * 0x100000,
|
||||
- },
|
||||
+ { .name = "NAND BOOT partition",
|
||||
+ .offset = 0 * 0x100000,
|
||||
+ .size = 4 * 0x100000,
|
||||
+ },
|
||||
+ { .name = "NAND KERNEL partition",
|
||||
+ .offset = 4 * 0x100000,
|
||||
+ .size = 4 * 0x100000,
|
||||
+ },
|
||||
+ { .name = "NAND ROOTFS partition",
|
||||
+ .offset = 8 * 0x100000,
|
||||
+ .size = 504 * 0x100000,
|
||||
+ },
|
||||
+ { .name = "NAND DATA partition",
|
||||
+ .offset = 512 * 0x100000,
|
||||
+ .size = 512 * 0x100000,
|
||||
+ },
|
||||
};
|
||||
+#endif /* QI_LB60_2GB_NAND */
|
||||
|
||||
static struct jz_nand_platform_data jz_nand_platform_data = {
|
||||
.num_partitions = ARRAY_SIZE(qi_lb60_partitions),
|
||||
.partitions = qi_lb60_partitions,
|
||||
.ecc_layout = &qi_lb60_ecclayout,
|
||||
- .busy_gpio = 94,
|
||||
+ .busy_gpio = 94,
|
||||
};
|
||||
|
||||
static struct platform_device jz_nand_device = {
|
||||
@@ -213,7 +253,9 @@ static struct platform_device jz_nand_device = {
|
||||
.platform_data = &jz_nand_platform_data,
|
||||
}
|
||||
};
|
||||
-#define KEEP_UART_ALIVE
|
||||
+/* #define KEEP_UART_ALIVE
|
||||
+ * don't define this. the keyboard and keyboard both work
|
||||
+ */
|
||||
|
||||
#define KEY_QI_QI KEY_F13
|
||||
#define KEY_QI_UPRED KEY_F14
|
||||
@@ -286,8 +328,8 @@ static const uint32_t qi_lb60_keymap[] = {
|
||||
};
|
||||
|
||||
static const struct matrix_keymap_data qi_lb60_keymap_data = {
|
||||
- .keymap = qi_lb60_keymap,
|
||||
- .keymap_size = ARRAY_SIZE(qi_lb60_keymap),
|
||||
+ .keymap = qi_lb60_keymap,
|
||||
+ .keymap_size = ARRAY_SIZE(qi_lb60_keymap),
|
||||
};
|
||||
|
||||
static const unsigned int qi_lb60_keypad_cols[] = {
|
||||
@@ -297,12 +339,12 @@ static const unsigned int qi_lb60_keypad_cols[] = {
|
||||
static const unsigned int qi_lb60_keypad_rows[] = {
|
||||
114, 115, 116, 117, 118, 119, 120,
|
||||
#ifndef KEEP_UART_ALIVE
|
||||
- 122,
|
||||
+ 122,
|
||||
#endif
|
||||
};
|
||||
|
||||
static struct matrix_keypad_platform_data qi_lb60_pdata = {
|
||||
- .keymap_data = &qi_lb60_keymap_data,
|
||||
+ .keymap_data = &qi_lb60_keymap_data,
|
||||
.col_gpios = qi_lb60_keypad_cols,
|
||||
.row_gpios = qi_lb60_keypad_rows,
|
||||
.num_col_gpios = ARRAY_SIZE(qi_lb60_keypad_cols),
|
||||
@@ -310,7 +352,7 @@ static struct matrix_keypad_platform_data qi_lb60_pdata = {
|
||||
.col_scan_delay_us = 10,
|
||||
.debounce_ms = 10,
|
||||
.wakeup = 1,
|
||||
- .active_low = 1,
|
||||
+ .active_low = 1,
|
||||
};
|
||||
|
||||
static struct platform_device qi_lb60_keypad = {
|
||||
@@ -375,7 +417,7 @@ static struct platform_device *jz_platform_devices[] __initdata = {
|
||||
&jz_mmc_device,
|
||||
&jz_nand_device,
|
||||
&jz_i2c_device,
|
||||
- &qi_lb60_keypad,
|
||||
+ &qi_lb60_keypad,
|
||||
&qi_lb60_fb,
|
||||
};
|
||||
|
||||
diff --git a/include/mtd/mtd-abi.h b/include/mtd/mtd-abi.h
|
||||
index f86db5a..b19fffa 100644
|
||||
--- a/include/mtd/mtd-abi.h
|
||||
+++ b/include/mtd/mtd-abi.h
|
||||
@@ -135,7 +135,7 @@ struct nand_oobfree {
|
||||
*/
|
||||
struct nand_ecclayout {
|
||||
__u32 eccbytes;
|
||||
- __u32 eccpos[64];
|
||||
+ __u32 eccpos[72];
|
||||
__u32 oobavail;
|
||||
struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES];
|
||||
};
|
Loading…
Reference in New Issue
Block a user