|
@@ -423,3 +423,172 @@ static void enable_board_wakeup_source(void)
|
|
|
omap_mux_init_signal("sys_nirq",
|
|
|
OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP);
|
|
|
}
|
|
|
+
|
|
|
+static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
|
|
|
+
|
|
|
+ .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
|
|
|
+ .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
|
|
|
+ .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
|
|
|
+
|
|
|
+ .phy_reset = true,
|
|
|
+ .reset_gpio_port[0] = 57,
|
|
|
+ .reset_gpio_port[1] = 61,
|
|
|
+ .reset_gpio_port[2] = -EINVAL
|
|
|
+};
|
|
|
+
|
|
|
+#ifdef CONFIG_OMAP_MUX
|
|
|
+static struct omap_board_mux board_mux[] __initdata = {
|
|
|
+ { .reg_offset = OMAP_MUX_TERMINATOR },
|
|
|
+};
|
|
|
+#else
|
|
|
+#define board_mux NULL
|
|
|
+#endif
|
|
|
+
|
|
|
+/*
|
|
|
+ * SDP3430 V2 Board CS organization
|
|
|
+ * Different from SDP3430 V1. Now 4 switches used to specify CS
|
|
|
+ *
|
|
|
+ * See also the Switch S8 settings in the comments.
|
|
|
+ */
|
|
|
+static char chip_sel_3430[][GPMC_CS_NUM] = {
|
|
|
+ {PDC_NOR, PDC_NAND, PDC_ONENAND, DBG_MPDB, 0, 0, 0, 0}, /* S8:1111 */
|
|
|
+ {PDC_ONENAND, PDC_NAND, PDC_NOR, DBG_MPDB, 0, 0, 0, 0}, /* S8:1110 */
|
|
|
+ {PDC_NAND, PDC_ONENAND, PDC_NOR, DBG_MPDB, 0, 0, 0, 0}, /* S8:1101 */
|
|
|
+};
|
|
|
+
|
|
|
+static struct mtd_partition sdp_nor_partitions[] = {
|
|
|
+ /* bootloader (U-Boot, etc) in first sector */
|
|
|
+ {
|
|
|
+ .name = "Bootloader-NOR",
|
|
|
+ .offset = 0,
|
|
|
+ .size = SZ_256K,
|
|
|
+ .mask_flags = MTD_WRITEABLE, /* force read-only */
|
|
|
+ },
|
|
|
+ /* bootloader params in the next sector */
|
|
|
+ {
|
|
|
+ .name = "Params-NOR",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = SZ_256K,
|
|
|
+ .mask_flags = 0,
|
|
|
+ },
|
|
|
+ /* kernel */
|
|
|
+ {
|
|
|
+ .name = "Kernel-NOR",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = SZ_2M,
|
|
|
+ .mask_flags = 0
|
|
|
+ },
|
|
|
+ /* file system */
|
|
|
+ {
|
|
|
+ .name = "Filesystem-NOR",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = MTDPART_SIZ_FULL,
|
|
|
+ .mask_flags = 0
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+static struct mtd_partition sdp_onenand_partitions[] = {
|
|
|
+ {
|
|
|
+ .name = "X-Loader-OneNAND",
|
|
|
+ .offset = 0,
|
|
|
+ .size = 4 * (64 * 2048),
|
|
|
+ .mask_flags = MTD_WRITEABLE /* force read-only */
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "U-Boot-OneNAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = 2 * (64 * 2048),
|
|
|
+ .mask_flags = MTD_WRITEABLE /* force read-only */
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "U-Boot Environment-OneNAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = 1 * (64 * 2048),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "Kernel-OneNAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = 16 * (64 * 2048),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "File System-OneNAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = MTDPART_SIZ_FULL,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct mtd_partition sdp_nand_partitions[] = {
|
|
|
+ /* All the partition sizes are listed in terms of NAND block size */
|
|
|
+ {
|
|
|
+ .name = "X-Loader-NAND",
|
|
|
+ .offset = 0,
|
|
|
+ .size = 4 * (64 * 2048),
|
|
|
+ .mask_flags = MTD_WRITEABLE, /* force read-only */
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "U-Boot-NAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */
|
|
|
+ .size = 10 * (64 * 2048),
|
|
|
+ .mask_flags = MTD_WRITEABLE, /* force read-only */
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "Boot Env-NAND",
|
|
|
+
|
|
|
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x1c0000 */
|
|
|
+ .size = 6 * (64 * 2048),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "Kernel-NAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */
|
|
|
+ .size = 40 * (64 * 2048),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "File System - NAND",
|
|
|
+ .size = MTDPART_SIZ_FULL,
|
|
|
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x780000 */
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct flash_partitions sdp_flash_partitions[] = {
|
|
|
+ {
|
|
|
+ .parts = sdp_nor_partitions,
|
|
|
+ .nr_parts = ARRAY_SIZE(sdp_nor_partitions),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .parts = sdp_onenand_partitions,
|
|
|
+ .nr_parts = ARRAY_SIZE(sdp_onenand_partitions),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .parts = sdp_nand_partitions,
|
|
|
+ .nr_parts = ARRAY_SIZE(sdp_nand_partitions),
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static void __init omap_3430sdp_init(void)
|
|
|
+{
|
|
|
+ int gpio_pendown;
|
|
|
+
|
|
|
+ omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
|
|
|
+ omap_hsmmc_init(mmc);
|
|
|
+ omap3430_i2c_init();
|
|
|
+ omap_display_init(&sdp3430_dss_data);
|
|
|
+ if (omap_rev() > OMAP3430_REV_ES1_0)
|
|
|
+ gpio_pendown = SDP3430_TS_GPIO_IRQ_SDPV2;
|
|
|
+ else
|
|
|
+ gpio_pendown = SDP3430_TS_GPIO_IRQ_SDPV1;
|
|
|
+ omap_ads7846_init(1, gpio_pendown, 310, NULL);
|
|
|
+ omap_serial_init();
|
|
|
+ omap_sdrc_init(hyb18m512160af6_sdrc_params, NULL);
|
|
|
+ usb_musb_init(NULL);
|
|
|
+ board_smc91x_init();
|
|
|
+ board_flash_init(sdp_flash_partitions, chip_sel_3430, 0);
|
|
|
+ sdp3430_display_init();
|
|
|
+ enable_board_wakeup_source();
|
|
|
+ usbhs_init(&usbhs_bdata);
|
|
|
+}
|
|
|
+
|
|
|
+MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
|
|
|
+ /* Maintainer: Syed Khasim - Texas Instruments Inc */
|
|
|
+ .atag_offset = 0x100,
|
|
|
+ .reserve = omap_reserve,
|
|
|
+ .map_io = omap3_map_io,
|