|
@@ -141,3 +141,83 @@ static void __init zeus_init_irq(void)
|
|
irq_set_irq_type(gpio_to_irq(ZEUS_WAKEUP_GPIO), IRQ_TYPE_EDGE_RISING);
|
|
irq_set_irq_type(gpio_to_irq(ZEUS_WAKEUP_GPIO), IRQ_TYPE_EDGE_RISING);
|
|
irq_set_irq_type(gpio_to_irq(ZEUS_PTT_GPIO), IRQ_TYPE_EDGE_RISING);
|
|
irq_set_irq_type(gpio_to_irq(ZEUS_PTT_GPIO), IRQ_TYPE_EDGE_RISING);
|
|
irq_set_irq_type(gpio_to_irq(ZEUS_EXTGPIO_GPIO),
|
|
irq_set_irq_type(gpio_to_irq(ZEUS_EXTGPIO_GPIO),
|
|
|
|
+ IRQ_TYPE_EDGE_FALLING);
|
|
|
|
+ irq_set_irq_type(gpio_to_irq(ZEUS_CAN_GPIO), IRQ_TYPE_EDGE_FALLING);
|
|
|
|
+
|
|
|
|
+ /* Setup ISA IRQs */
|
|
|
|
+ for (level = 0; level < ARRAY_SIZE(zeus_isa_irqs); level++) {
|
|
|
|
+ isa_irq = zeus_bit_to_irq(level);
|
|
|
|
+ irq_set_chip_and_handler(isa_irq, &zeus_irq_chip,
|
|
|
|
+ handle_edge_irq);
|
|
|
|
+ set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ irq_set_irq_type(gpio_to_irq(ZEUS_ISA_GPIO), IRQ_TYPE_EDGE_RISING);
|
|
|
|
+ irq_set_chained_handler(gpio_to_irq(ZEUS_ISA_GPIO), zeus_irq_handler);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Platform devices
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+/* Flash */
|
|
|
|
+static struct resource zeus_mtd_resources[] = {
|
|
|
|
+ [0] = { /* NOR Flash (up to 64MB) */
|
|
|
|
+ .start = ZEUS_FLASH_PHYS,
|
|
|
|
+ .end = ZEUS_FLASH_PHYS + SZ_64M - 1,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = { /* SRAM */
|
|
|
|
+ .start = ZEUS_SRAM_PHYS,
|
|
|
|
+ .end = ZEUS_SRAM_PHYS + SZ_512K - 1,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct physmap_flash_data zeus_flash_data[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .width = 2,
|
|
|
|
+ .parts = NULL,
|
|
|
|
+ .nr_parts = 0,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device zeus_mtd_devices[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .name = "physmap-flash",
|
|
|
|
+ .id = 0,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &zeus_flash_data[0],
|
|
|
|
+ },
|
|
|
|
+ .resource = &zeus_mtd_resources[0],
|
|
|
|
+ .num_resources = 1,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* Serial */
|
|
|
|
+static struct resource zeus_serial_resources[] = {
|
|
|
|
+ {
|
|
|
|
+ .start = 0x10000000,
|
|
|
|
+ .end = 0x1000000f,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ .start = 0x10800000,
|
|
|
|
+ .end = 0x1080000f,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ .start = 0x11000000,
|
|
|
|
+ .end = 0x1100000f,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ .start = 0x40100000,
|
|
|
|
+ .end = 0x4010001f,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ .start = 0x40200000,
|
|
|
|
+ .end = 0x4020001f,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|