2009-08-28 19:35:35 +03:00
|
|
|
diff --git a/arch/mips/jz4740/platform.c b/arch/mips/jz4740/platform.c
|
2009-08-31 20:13:19 +03:00
|
|
|
index 6a129e7..b870583 100644
|
2009-08-28 19:35:35 +03:00
|
|
|
--- a/arch/mips/jz4740/platform.c
|
|
|
|
+++ b/arch/mips/jz4740/platform.c
|
2009-08-31 20:13:19 +03:00
|
|
|
@@ -164,6 +164,7 @@ static struct resource jz_nand_resources[] = {
|
2009-08-28 19:35:35 +03:00
|
|
|
},
|
|
|
|
};
|
|
|
|
|
2009-08-31 20:13:19 +03:00
|
|
|
+#ifdef QI_LB60_1GB_NAND
|
2009-08-28 19:35:35 +03:00
|
|
|
static struct nand_ecclayout qi_lb60_ecclayout = {
|
|
|
|
.eccbytes = 36,
|
|
|
|
.eccpos = {
|
2009-08-31 20:13:19 +03:00
|
|
|
@@ -180,29 +181,68 @@ static struct nand_ecclayout qi_lb60_ecclayout = {
|
2009-08-28 19:35:35 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
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,
|
|
|
|
+ },
|
|
|
|
};
|
2009-08-31 20:13:19 +03:00
|
|
|
+#else
|
|
|
|
+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,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+#endif /* QI_LB60_1GB_NAND */
|
2009-08-28 19:35:35 +03:00
|
|
|
|
|
|
|
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];
|
|
|
|
};
|