|
@@ -221,3 +221,98 @@ static struct resource zeus_serial_resources[] = {
|
|
|
.start = 0x40200000,
|
|
|
.end = 0x4020001f,
|
|
|
.flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = 0x40700000,
|
|
|
+ .end = 0x4070001f,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct plat_serial8250_port serial_platform_data[] = {
|
|
|
+ /* External UARTs */
|
|
|
+ /* FIXME: Shared IRQs on COM1-COM4 will not work properly on v1i1 hardware. */
|
|
|
+ { /* COM1 */
|
|
|
+ .mapbase = 0x10000000,
|
|
|
+ .irq = PXA_GPIO_TO_IRQ(ZEUS_UARTA_GPIO),
|
|
|
+ .irqflags = IRQF_TRIGGER_RISING,
|
|
|
+ .uartclk = 14745600,
|
|
|
+ .regshift = 1,
|
|
|
+ .flags = UPF_IOREMAP | UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
|
|
|
+ .iotype = UPIO_MEM,
|
|
|
+ },
|
|
|
+ { /* COM2 */
|
|
|
+ .mapbase = 0x10800000,
|
|
|
+ .irq = PXA_GPIO_TO_IRQ(ZEUS_UARTB_GPIO),
|
|
|
+ .irqflags = IRQF_TRIGGER_RISING,
|
|
|
+ .uartclk = 14745600,
|
|
|
+ .regshift = 1,
|
|
|
+ .flags = UPF_IOREMAP | UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
|
|
|
+ .iotype = UPIO_MEM,
|
|
|
+ },
|
|
|
+ { /* COM3 */
|
|
|
+ .mapbase = 0x11000000,
|
|
|
+ .irq = PXA_GPIO_TO_IRQ(ZEUS_UARTC_GPIO),
|
|
|
+ .irqflags = IRQF_TRIGGER_RISING,
|
|
|
+ .uartclk = 14745600,
|
|
|
+ .regshift = 1,
|
|
|
+ .flags = UPF_IOREMAP | UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
|
|
|
+ .iotype = UPIO_MEM,
|
|
|
+ },
|
|
|
+ { /* COM4 */
|
|
|
+ .mapbase = 0x11800000,
|
|
|
+ .irq = PXA_GPIO_TO_IRQ(ZEUS_UARTD_GPIO),
|
|
|
+ .irqflags = IRQF_TRIGGER_RISING,
|
|
|
+ .uartclk = 14745600,
|
|
|
+ .regshift = 1,
|
|
|
+ .flags = UPF_IOREMAP | UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
|
|
|
+ .iotype = UPIO_MEM,
|
|
|
+ },
|
|
|
+ /* Internal UARTs */
|
|
|
+ { /* FFUART */
|
|
|
+ .membase = (void *)&FFUART,
|
|
|
+ .mapbase = __PREG(FFUART),
|
|
|
+ .irq = IRQ_FFUART,
|
|
|
+ .uartclk = 921600 * 16,
|
|
|
+ .regshift = 2,
|
|
|
+ .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
|
|
|
+ .iotype = UPIO_MEM,
|
|
|
+ },
|
|
|
+ { /* BTUART */
|
|
|
+ .membase = (void *)&BTUART,
|
|
|
+ .mapbase = __PREG(BTUART),
|
|
|
+ .irq = IRQ_BTUART,
|
|
|
+ .uartclk = 921600 * 16,
|
|
|
+ .regshift = 2,
|
|
|
+ .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
|
|
|
+ .iotype = UPIO_MEM,
|
|
|
+ },
|
|
|
+ { /* STUART */
|
|
|
+ .membase = (void *)&STUART,
|
|
|
+ .mapbase = __PREG(STUART),
|
|
|
+ .irq = IRQ_STUART,
|
|
|
+ .uartclk = 921600 * 16,
|
|
|
+ .regshift = 2,
|
|
|
+ .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
|
|
|
+ .iotype = UPIO_MEM,
|
|
|
+ },
|
|
|
+ { },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device zeus_serial_device = {
|
|
|
+ .name = "serial8250",
|
|
|
+ .id = PLAT8250_DEV_PLATFORM,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = serial_platform_data,
|
|
|
+ },
|
|
|
+ .num_resources = ARRAY_SIZE(zeus_serial_resources),
|
|
|
+ .resource = zeus_serial_resources,
|
|
|
+};
|
|
|
+
|
|
|
+/* Ethernet */
|
|
|
+static struct resource zeus_dm9k0_resource[] = {
|
|
|
+ [0] = {
|
|
|
+ .start = ZEUS_ETH0_PHYS,
|
|
|
+ .end = ZEUS_ETH0_PHYS + 1,
|
|
|
+ .flags = IORESOURCE_MEM
|
|
|
+ },
|