Loading arch/arm/mach-dove/common.c +11 −148 Original line number Diff line number Diff line Loading @@ -36,8 +36,11 @@ #include <plat/mv_xor.h> #include <plat/ehci-orion.h> #include <plat/time.h> #include <plat/common.h> #include "common.h" static int get_tclk(void); /***************************************************************************** * I/O Address Mapping ****************************************************************************/ Loading Loading @@ -255,173 +258,37 @@ void __init dove_sata_init(struct mv_sata_platform_data *sata_data) /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port dove_uart0_data[] = { { .mapbase = DOVE_UART0_PHYS_BASE, .membase = (char *)DOVE_UART0_VIRT_BASE, .irq = IRQ_DOVE_UART_0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource dove_uart0_resources[] = { { .start = DOVE_UART0_PHYS_BASE, .end = DOVE_UART0_PHYS_BASE + SZ_256 - 1, .flags = IORESOURCE_MEM, }, { .start = IRQ_DOVE_UART_0, .end = IRQ_DOVE_UART_0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device dove_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = dove_uart0_data, }, .resource = dove_uart0_resources, .num_resources = ARRAY_SIZE(dove_uart0_resources), }; void __init dove_uart0_init(void) { platform_device_register(&dove_uart0); orion_uart0_init(DOVE_UART0_VIRT_BASE, DOVE_UART0_PHYS_BASE, IRQ_DOVE_UART_0, get_tclk()); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port dove_uart1_data[] = { { .mapbase = DOVE_UART1_PHYS_BASE, .membase = (char *)DOVE_UART1_VIRT_BASE, .irq = IRQ_DOVE_UART_1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource dove_uart1_resources[] = { { .start = DOVE_UART1_PHYS_BASE, .end = DOVE_UART1_PHYS_BASE + SZ_256 - 1, .flags = IORESOURCE_MEM, }, { .start = IRQ_DOVE_UART_1, .end = IRQ_DOVE_UART_1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device dove_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = dove_uart1_data, }, .resource = dove_uart1_resources, .num_resources = ARRAY_SIZE(dove_uart1_resources), }; void __init dove_uart1_init(void) { platform_device_register(&dove_uart1); orion_uart1_init(DOVE_UART1_VIRT_BASE, DOVE_UART1_PHYS_BASE, IRQ_DOVE_UART_1, get_tclk()); } /***************************************************************************** * UART2 ****************************************************************************/ static struct plat_serial8250_port dove_uart2_data[] = { { .mapbase = DOVE_UART2_PHYS_BASE, .membase = (char *)DOVE_UART2_VIRT_BASE, .irq = IRQ_DOVE_UART_2, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource dove_uart2_resources[] = { { .start = DOVE_UART2_PHYS_BASE, .end = DOVE_UART2_PHYS_BASE + SZ_256 - 1, .flags = IORESOURCE_MEM, }, { .start = IRQ_DOVE_UART_2, .end = IRQ_DOVE_UART_2, .flags = IORESOURCE_IRQ, }, }; static struct platform_device dove_uart2 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM2, .dev = { .platform_data = dove_uart2_data, }, .resource = dove_uart2_resources, .num_resources = ARRAY_SIZE(dove_uart2_resources), }; void __init dove_uart2_init(void) { platform_device_register(&dove_uart2); orion_uart2_init(DOVE_UART2_VIRT_BASE, DOVE_UART2_PHYS_BASE, IRQ_DOVE_UART_2, get_tclk()); } /***************************************************************************** * UART3 ****************************************************************************/ static struct plat_serial8250_port dove_uart3_data[] = { { .mapbase = DOVE_UART3_PHYS_BASE, .membase = (char *)DOVE_UART3_VIRT_BASE, .irq = IRQ_DOVE_UART_3, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource dove_uart3_resources[] = { { .start = DOVE_UART3_PHYS_BASE, .end = DOVE_UART3_PHYS_BASE + SZ_256 - 1, .flags = IORESOURCE_MEM, }, { .start = IRQ_DOVE_UART_3, .end = IRQ_DOVE_UART_3, .flags = IORESOURCE_IRQ, }, }; static struct platform_device dove_uart3 = { .name = "serial8250", .id = 3, .dev = { .platform_data = dove_uart3_data, }, .resource = dove_uart3_resources, .num_resources = ARRAY_SIZE(dove_uart3_resources), }; void __init dove_uart3_init(void) { platform_device_register(&dove_uart3); orion_uart3_init(DOVE_UART3_VIRT_BASE, DOVE_UART3_PHYS_BASE, IRQ_DOVE_UART_3, get_tclk()); } /***************************************************************************** Loading Loading @@ -835,10 +702,6 @@ void __init dove_init(void) dove_setup_cpu_mbus(); dove_ge00_shared_data.t_clk = tclk; dove_uart0_data[0].uartclk = tclk; dove_uart1_data[0].uartclk = tclk; dove_uart2_data[0].uartclk = tclk; dove_uart3_data[0].uartclk = tclk; dove_spi0_data.tclk = tclk; dove_spi1_data.tclk = tclk; Loading arch/arm/mach-kirkwood/common.c +5 −74 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <plat/mv_xor.h> #include <plat/orion_nand.h> #include <plat/orion_wdt.h> #include <plat/common.h> #include <plat/time.h> #include "common.h" Loading Loading @@ -491,91 +492,23 @@ void __init kirkwood_i2c_init(void) /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port kirkwood_uart0_data[] = { { .mapbase = UART0_PHYS_BASE, .membase = (char *)UART0_VIRT_BASE, .irq = IRQ_KIRKWOOD_UART_0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource kirkwood_uart0_resources[] = { { .start = UART0_PHYS_BASE, .end = UART0_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_KIRKWOOD_UART_0, .end = IRQ_KIRKWOOD_UART_0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device kirkwood_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = kirkwood_uart0_data, }, .resource = kirkwood_uart0_resources, .num_resources = ARRAY_SIZE(kirkwood_uart0_resources), }; void __init kirkwood_uart0_init(void) { platform_device_register(&kirkwood_uart0); orion_uart0_init(UART0_VIRT_BASE, UART0_PHYS_BASE, IRQ_KIRKWOOD_UART_0, kirkwood_tclk); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port kirkwood_uart1_data[] = { { .mapbase = UART1_PHYS_BASE, .membase = (char *)UART1_VIRT_BASE, .irq = IRQ_KIRKWOOD_UART_1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource kirkwood_uart1_resources[] = { { .start = UART1_PHYS_BASE, .end = UART1_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_KIRKWOOD_UART_1, .end = IRQ_KIRKWOOD_UART_1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device kirkwood_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = kirkwood_uart1_data, }, .resource = kirkwood_uart1_resources, .num_resources = ARRAY_SIZE(kirkwood_uart1_resources), }; void __init kirkwood_uart1_init(void) { platform_device_register(&kirkwood_uart1); orion_uart1_init(UART1_VIRT_BASE, UART1_PHYS_BASE, IRQ_KIRKWOOD_UART_1, kirkwood_tclk); } /***************************************************************************** * Cryptographic Engines and Security Accelerator (CESA) ****************************************************************************/ Loading Loading @@ -987,8 +920,6 @@ void __init kirkwood_init(void) kirkwood_ge00_shared_data.t_clk = kirkwood_tclk; kirkwood_ge01_shared_data.t_clk = kirkwood_tclk; kirkwood_spi_plat_data.tclk = kirkwood_tclk; kirkwood_uart0_data[0].uartclk = kirkwood_tclk; kirkwood_uart1_data[0].uartclk = kirkwood_tclk; kirkwood_i2s_data.tclk = kirkwood_tclk; /* Loading arch/arm/mach-loki/common.c +5 −73 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <mach/loki.h> #include <plat/orion_nand.h> #include <plat/time.h> #include <plat/common.h> #include "common.h" /***************************************************************************** Loading Loading @@ -204,88 +205,19 @@ void __init loki_sas_init(void) /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port loki_uart0_data[] = { { .mapbase = UART0_PHYS_BASE, .membase = (char *)UART0_VIRT_BASE, .irq = IRQ_LOKI_UART0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = LOKI_TCLK, }, { }, }; static struct resource loki_uart0_resources[] = { { .start = UART0_PHYS_BASE, .end = UART0_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_LOKI_UART0, .end = IRQ_LOKI_UART0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device loki_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = loki_uart0_data, }, .resource = loki_uart0_resources, .num_resources = ARRAY_SIZE(loki_uart0_resources), }; void __init loki_uart0_init(void) { platform_device_register(&loki_uart0); orion_uart0_init(UART0_VIRT_BASE, UART0_PHYS_BASE, IRQ_LOKI_UART0, LOKI_TCLK); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port loki_uart1_data[] = { { .mapbase = UART1_PHYS_BASE, .membase = (char *)UART1_VIRT_BASE, .irq = IRQ_LOKI_UART1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = LOKI_TCLK, }, { }, }; static struct resource loki_uart1_resources[] = { { .start = UART1_PHYS_BASE, .end = UART1_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_LOKI_UART1, .end = IRQ_LOKI_UART1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device loki_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = loki_uart1_data, }, .resource = loki_uart1_resources, .num_resources = ARRAY_SIZE(loki_uart1_resources), }; void __init loki_uart1_init(void) { platform_device_register(&loki_uart1); orion_uart1_init(UART1_VIRT_BASE, UART1_PHYS_BASE, IRQ_LOKI_UART1, LOKI_TCLK); } Loading arch/arm/mach-mv78xx0/common.c +10 −150 Original line number Diff line number Diff line Loading @@ -25,8 +25,10 @@ #include <plat/ehci-orion.h> #include <plat/orion_nand.h> #include <plat/time.h> #include <plat/common.h> #include "common.h" static int get_tclk(void); /***************************************************************************** * Common bits Loading Loading @@ -642,179 +644,41 @@ void __init mv78xx0_sata_init(struct mv_sata_platform_data *sata_data) /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port mv78xx0_uart0_data[] = { { .mapbase = UART0_PHYS_BASE, .membase = (char *)UART0_VIRT_BASE, .irq = IRQ_MV78XX0_UART_0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource mv78xx0_uart0_resources[] = { { .start = UART0_PHYS_BASE, .end = UART0_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_MV78XX0_UART_0, .end = IRQ_MV78XX0_UART_0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device mv78xx0_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = mv78xx0_uart0_data, }, .resource = mv78xx0_uart0_resources, .num_resources = ARRAY_SIZE(mv78xx0_uart0_resources), }; void __init mv78xx0_uart0_init(void) { platform_device_register(&mv78xx0_uart0); orion_uart0_init(UART0_VIRT_BASE, UART0_PHYS_BASE, IRQ_MV78XX0_UART_0, get_tclk()); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port mv78xx0_uart1_data[] = { { .mapbase = UART1_PHYS_BASE, .membase = (char *)UART1_VIRT_BASE, .irq = IRQ_MV78XX0_UART_1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource mv78xx0_uart1_resources[] = { { .start = UART1_PHYS_BASE, .end = UART1_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_MV78XX0_UART_1, .end = IRQ_MV78XX0_UART_1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device mv78xx0_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = mv78xx0_uart1_data, }, .resource = mv78xx0_uart1_resources, .num_resources = ARRAY_SIZE(mv78xx0_uart1_resources), }; void __init mv78xx0_uart1_init(void) { platform_device_register(&mv78xx0_uart1); orion_uart1_init(UART1_VIRT_BASE, UART1_PHYS_BASE, IRQ_MV78XX0_UART_1, get_tclk()); } /***************************************************************************** * UART2 ****************************************************************************/ static struct plat_serial8250_port mv78xx0_uart2_data[] = { { .mapbase = UART2_PHYS_BASE, .membase = (char *)UART2_VIRT_BASE, .irq = IRQ_MV78XX0_UART_2, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource mv78xx0_uart2_resources[] = { { .start = UART2_PHYS_BASE, .end = UART2_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_MV78XX0_UART_2, .end = IRQ_MV78XX0_UART_2, .flags = IORESOURCE_IRQ, }, }; static struct platform_device mv78xx0_uart2 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM2, .dev = { .platform_data = mv78xx0_uart2_data, }, .resource = mv78xx0_uart2_resources, .num_resources = ARRAY_SIZE(mv78xx0_uart2_resources), }; void __init mv78xx0_uart2_init(void) { platform_device_register(&mv78xx0_uart2); orion_uart2_init(UART2_VIRT_BASE, UART2_PHYS_BASE, IRQ_MV78XX0_UART_2, get_tclk()); } /***************************************************************************** * UART3 ****************************************************************************/ static struct plat_serial8250_port mv78xx0_uart3_data[] = { { .mapbase = UART3_PHYS_BASE, .membase = (char *)UART3_VIRT_BASE, .irq = IRQ_MV78XX0_UART_3, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource mv78xx0_uart3_resources[] = { { .start = UART3_PHYS_BASE, .end = UART3_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_MV78XX0_UART_3, .end = IRQ_MV78XX0_UART_3, .flags = IORESOURCE_IRQ, }, }; static struct platform_device mv78xx0_uart3 = { .name = "serial8250", .id = 3, .dev = { .platform_data = mv78xx0_uart3_data, }, .resource = mv78xx0_uart3_resources, .num_resources = ARRAY_SIZE(mv78xx0_uart3_resources), }; void __init mv78xx0_uart3_init(void) { platform_device_register(&mv78xx0_uart3); orion_uart3_init(UART3_VIRT_BASE, UART3_PHYS_BASE, IRQ_MV78XX0_UART_3, get_tclk()); } /***************************************************************************** * Time handling ****************************************************************************/ Loading Loading @@ -900,8 +764,4 @@ void __init mv78xx0_init(void) mv78xx0_ge01_shared_data.t_clk = tclk; mv78xx0_ge10_shared_data.t_clk = tclk; mv78xx0_ge11_shared_data.t_clk = tclk; mv78xx0_uart0_data[0].uartclk = tclk; mv78xx0_uart1_data[0].uartclk = tclk; mv78xx0_uart2_data[0].uartclk = tclk; mv78xx0_uart3_data[0].uartclk = tclk; } arch/arm/mach-orion5x/common.c +5 −76 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #include <plat/orion_nand.h> #include <plat/orion_wdt.h> #include <plat/time.h> #include <plat/common.h> #include "common.h" /***************************************************************************** Loading Loading @@ -349,91 +350,21 @@ void __init orion5x_spi_init() /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port orion5x_uart0_data[] = { { .mapbase = UART0_PHYS_BASE, .membase = (char *)UART0_VIRT_BASE, .irq = IRQ_ORION5X_UART0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource orion5x_uart0_resources[] = { { .start = UART0_PHYS_BASE, .end = UART0_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_ORION5X_UART0, .end = IRQ_ORION5X_UART0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device orion5x_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = orion5x_uart0_data, }, .resource = orion5x_uart0_resources, .num_resources = ARRAY_SIZE(orion5x_uart0_resources), }; void __init orion5x_uart0_init(void) { platform_device_register(&orion5x_uart0); orion_uart0_init(UART0_VIRT_BASE, UART0_PHYS_BASE, IRQ_ORION5X_UART0, orion5x_tclk); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port orion5x_uart1_data[] = { { .mapbase = UART1_PHYS_BASE, .membase = (char *)UART1_VIRT_BASE, .irq = IRQ_ORION5X_UART1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource orion5x_uart1_resources[] = { { .start = UART1_PHYS_BASE, .end = UART1_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_ORION5X_UART1, .end = IRQ_ORION5X_UART1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device orion5x_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = orion5x_uart1_data, }, .resource = orion5x_uart1_resources, .num_resources = ARRAY_SIZE(orion5x_uart1_resources), }; void __init orion5x_uart1_init(void) { platform_device_register(&orion5x_uart1); orion_uart1_init(UART1_VIRT_BASE, UART1_PHYS_BASE, IRQ_ORION5X_UART1, orion5x_tclk); } /***************************************************************************** * XOR engine ****************************************************************************/ Loading Loading @@ -687,8 +618,6 @@ void __init orion5x_init(void) orion5x_ge00_shared_data.t_clk = orion5x_tclk; orion5x_spi_plat_data.tclk = orion5x_tclk; orion5x_uart0_data[0].uartclk = orion5x_tclk; orion5x_uart1_data[0].uartclk = orion5x_tclk; /* * Setup Orion address map Loading Loading
arch/arm/mach-dove/common.c +11 −148 Original line number Diff line number Diff line Loading @@ -36,8 +36,11 @@ #include <plat/mv_xor.h> #include <plat/ehci-orion.h> #include <plat/time.h> #include <plat/common.h> #include "common.h" static int get_tclk(void); /***************************************************************************** * I/O Address Mapping ****************************************************************************/ Loading Loading @@ -255,173 +258,37 @@ void __init dove_sata_init(struct mv_sata_platform_data *sata_data) /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port dove_uart0_data[] = { { .mapbase = DOVE_UART0_PHYS_BASE, .membase = (char *)DOVE_UART0_VIRT_BASE, .irq = IRQ_DOVE_UART_0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource dove_uart0_resources[] = { { .start = DOVE_UART0_PHYS_BASE, .end = DOVE_UART0_PHYS_BASE + SZ_256 - 1, .flags = IORESOURCE_MEM, }, { .start = IRQ_DOVE_UART_0, .end = IRQ_DOVE_UART_0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device dove_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = dove_uart0_data, }, .resource = dove_uart0_resources, .num_resources = ARRAY_SIZE(dove_uart0_resources), }; void __init dove_uart0_init(void) { platform_device_register(&dove_uart0); orion_uart0_init(DOVE_UART0_VIRT_BASE, DOVE_UART0_PHYS_BASE, IRQ_DOVE_UART_0, get_tclk()); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port dove_uart1_data[] = { { .mapbase = DOVE_UART1_PHYS_BASE, .membase = (char *)DOVE_UART1_VIRT_BASE, .irq = IRQ_DOVE_UART_1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource dove_uart1_resources[] = { { .start = DOVE_UART1_PHYS_BASE, .end = DOVE_UART1_PHYS_BASE + SZ_256 - 1, .flags = IORESOURCE_MEM, }, { .start = IRQ_DOVE_UART_1, .end = IRQ_DOVE_UART_1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device dove_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = dove_uart1_data, }, .resource = dove_uart1_resources, .num_resources = ARRAY_SIZE(dove_uart1_resources), }; void __init dove_uart1_init(void) { platform_device_register(&dove_uart1); orion_uart1_init(DOVE_UART1_VIRT_BASE, DOVE_UART1_PHYS_BASE, IRQ_DOVE_UART_1, get_tclk()); } /***************************************************************************** * UART2 ****************************************************************************/ static struct plat_serial8250_port dove_uart2_data[] = { { .mapbase = DOVE_UART2_PHYS_BASE, .membase = (char *)DOVE_UART2_VIRT_BASE, .irq = IRQ_DOVE_UART_2, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource dove_uart2_resources[] = { { .start = DOVE_UART2_PHYS_BASE, .end = DOVE_UART2_PHYS_BASE + SZ_256 - 1, .flags = IORESOURCE_MEM, }, { .start = IRQ_DOVE_UART_2, .end = IRQ_DOVE_UART_2, .flags = IORESOURCE_IRQ, }, }; static struct platform_device dove_uart2 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM2, .dev = { .platform_data = dove_uart2_data, }, .resource = dove_uart2_resources, .num_resources = ARRAY_SIZE(dove_uart2_resources), }; void __init dove_uart2_init(void) { platform_device_register(&dove_uart2); orion_uart2_init(DOVE_UART2_VIRT_BASE, DOVE_UART2_PHYS_BASE, IRQ_DOVE_UART_2, get_tclk()); } /***************************************************************************** * UART3 ****************************************************************************/ static struct plat_serial8250_port dove_uart3_data[] = { { .mapbase = DOVE_UART3_PHYS_BASE, .membase = (char *)DOVE_UART3_VIRT_BASE, .irq = IRQ_DOVE_UART_3, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource dove_uart3_resources[] = { { .start = DOVE_UART3_PHYS_BASE, .end = DOVE_UART3_PHYS_BASE + SZ_256 - 1, .flags = IORESOURCE_MEM, }, { .start = IRQ_DOVE_UART_3, .end = IRQ_DOVE_UART_3, .flags = IORESOURCE_IRQ, }, }; static struct platform_device dove_uart3 = { .name = "serial8250", .id = 3, .dev = { .platform_data = dove_uart3_data, }, .resource = dove_uart3_resources, .num_resources = ARRAY_SIZE(dove_uart3_resources), }; void __init dove_uart3_init(void) { platform_device_register(&dove_uart3); orion_uart3_init(DOVE_UART3_VIRT_BASE, DOVE_UART3_PHYS_BASE, IRQ_DOVE_UART_3, get_tclk()); } /***************************************************************************** Loading Loading @@ -835,10 +702,6 @@ void __init dove_init(void) dove_setup_cpu_mbus(); dove_ge00_shared_data.t_clk = tclk; dove_uart0_data[0].uartclk = tclk; dove_uart1_data[0].uartclk = tclk; dove_uart2_data[0].uartclk = tclk; dove_uart3_data[0].uartclk = tclk; dove_spi0_data.tclk = tclk; dove_spi1_data.tclk = tclk; Loading
arch/arm/mach-kirkwood/common.c +5 −74 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <plat/mv_xor.h> #include <plat/orion_nand.h> #include <plat/orion_wdt.h> #include <plat/common.h> #include <plat/time.h> #include "common.h" Loading Loading @@ -491,91 +492,23 @@ void __init kirkwood_i2c_init(void) /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port kirkwood_uart0_data[] = { { .mapbase = UART0_PHYS_BASE, .membase = (char *)UART0_VIRT_BASE, .irq = IRQ_KIRKWOOD_UART_0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource kirkwood_uart0_resources[] = { { .start = UART0_PHYS_BASE, .end = UART0_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_KIRKWOOD_UART_0, .end = IRQ_KIRKWOOD_UART_0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device kirkwood_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = kirkwood_uart0_data, }, .resource = kirkwood_uart0_resources, .num_resources = ARRAY_SIZE(kirkwood_uart0_resources), }; void __init kirkwood_uart0_init(void) { platform_device_register(&kirkwood_uart0); orion_uart0_init(UART0_VIRT_BASE, UART0_PHYS_BASE, IRQ_KIRKWOOD_UART_0, kirkwood_tclk); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port kirkwood_uart1_data[] = { { .mapbase = UART1_PHYS_BASE, .membase = (char *)UART1_VIRT_BASE, .irq = IRQ_KIRKWOOD_UART_1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource kirkwood_uart1_resources[] = { { .start = UART1_PHYS_BASE, .end = UART1_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_KIRKWOOD_UART_1, .end = IRQ_KIRKWOOD_UART_1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device kirkwood_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = kirkwood_uart1_data, }, .resource = kirkwood_uart1_resources, .num_resources = ARRAY_SIZE(kirkwood_uart1_resources), }; void __init kirkwood_uart1_init(void) { platform_device_register(&kirkwood_uart1); orion_uart1_init(UART1_VIRT_BASE, UART1_PHYS_BASE, IRQ_KIRKWOOD_UART_1, kirkwood_tclk); } /***************************************************************************** * Cryptographic Engines and Security Accelerator (CESA) ****************************************************************************/ Loading Loading @@ -987,8 +920,6 @@ void __init kirkwood_init(void) kirkwood_ge00_shared_data.t_clk = kirkwood_tclk; kirkwood_ge01_shared_data.t_clk = kirkwood_tclk; kirkwood_spi_plat_data.tclk = kirkwood_tclk; kirkwood_uart0_data[0].uartclk = kirkwood_tclk; kirkwood_uart1_data[0].uartclk = kirkwood_tclk; kirkwood_i2s_data.tclk = kirkwood_tclk; /* Loading
arch/arm/mach-loki/common.c +5 −73 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <mach/loki.h> #include <plat/orion_nand.h> #include <plat/time.h> #include <plat/common.h> #include "common.h" /***************************************************************************** Loading Loading @@ -204,88 +205,19 @@ void __init loki_sas_init(void) /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port loki_uart0_data[] = { { .mapbase = UART0_PHYS_BASE, .membase = (char *)UART0_VIRT_BASE, .irq = IRQ_LOKI_UART0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = LOKI_TCLK, }, { }, }; static struct resource loki_uart0_resources[] = { { .start = UART0_PHYS_BASE, .end = UART0_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_LOKI_UART0, .end = IRQ_LOKI_UART0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device loki_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = loki_uart0_data, }, .resource = loki_uart0_resources, .num_resources = ARRAY_SIZE(loki_uart0_resources), }; void __init loki_uart0_init(void) { platform_device_register(&loki_uart0); orion_uart0_init(UART0_VIRT_BASE, UART0_PHYS_BASE, IRQ_LOKI_UART0, LOKI_TCLK); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port loki_uart1_data[] = { { .mapbase = UART1_PHYS_BASE, .membase = (char *)UART1_VIRT_BASE, .irq = IRQ_LOKI_UART1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = LOKI_TCLK, }, { }, }; static struct resource loki_uart1_resources[] = { { .start = UART1_PHYS_BASE, .end = UART1_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_LOKI_UART1, .end = IRQ_LOKI_UART1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device loki_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = loki_uart1_data, }, .resource = loki_uart1_resources, .num_resources = ARRAY_SIZE(loki_uart1_resources), }; void __init loki_uart1_init(void) { platform_device_register(&loki_uart1); orion_uart1_init(UART1_VIRT_BASE, UART1_PHYS_BASE, IRQ_LOKI_UART1, LOKI_TCLK); } Loading
arch/arm/mach-mv78xx0/common.c +10 −150 Original line number Diff line number Diff line Loading @@ -25,8 +25,10 @@ #include <plat/ehci-orion.h> #include <plat/orion_nand.h> #include <plat/time.h> #include <plat/common.h> #include "common.h" static int get_tclk(void); /***************************************************************************** * Common bits Loading Loading @@ -642,179 +644,41 @@ void __init mv78xx0_sata_init(struct mv_sata_platform_data *sata_data) /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port mv78xx0_uart0_data[] = { { .mapbase = UART0_PHYS_BASE, .membase = (char *)UART0_VIRT_BASE, .irq = IRQ_MV78XX0_UART_0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource mv78xx0_uart0_resources[] = { { .start = UART0_PHYS_BASE, .end = UART0_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_MV78XX0_UART_0, .end = IRQ_MV78XX0_UART_0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device mv78xx0_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = mv78xx0_uart0_data, }, .resource = mv78xx0_uart0_resources, .num_resources = ARRAY_SIZE(mv78xx0_uart0_resources), }; void __init mv78xx0_uart0_init(void) { platform_device_register(&mv78xx0_uart0); orion_uart0_init(UART0_VIRT_BASE, UART0_PHYS_BASE, IRQ_MV78XX0_UART_0, get_tclk()); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port mv78xx0_uart1_data[] = { { .mapbase = UART1_PHYS_BASE, .membase = (char *)UART1_VIRT_BASE, .irq = IRQ_MV78XX0_UART_1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource mv78xx0_uart1_resources[] = { { .start = UART1_PHYS_BASE, .end = UART1_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_MV78XX0_UART_1, .end = IRQ_MV78XX0_UART_1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device mv78xx0_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = mv78xx0_uart1_data, }, .resource = mv78xx0_uart1_resources, .num_resources = ARRAY_SIZE(mv78xx0_uart1_resources), }; void __init mv78xx0_uart1_init(void) { platform_device_register(&mv78xx0_uart1); orion_uart1_init(UART1_VIRT_BASE, UART1_PHYS_BASE, IRQ_MV78XX0_UART_1, get_tclk()); } /***************************************************************************** * UART2 ****************************************************************************/ static struct plat_serial8250_port mv78xx0_uart2_data[] = { { .mapbase = UART2_PHYS_BASE, .membase = (char *)UART2_VIRT_BASE, .irq = IRQ_MV78XX0_UART_2, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource mv78xx0_uart2_resources[] = { { .start = UART2_PHYS_BASE, .end = UART2_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_MV78XX0_UART_2, .end = IRQ_MV78XX0_UART_2, .flags = IORESOURCE_IRQ, }, }; static struct platform_device mv78xx0_uart2 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM2, .dev = { .platform_data = mv78xx0_uart2_data, }, .resource = mv78xx0_uart2_resources, .num_resources = ARRAY_SIZE(mv78xx0_uart2_resources), }; void __init mv78xx0_uart2_init(void) { platform_device_register(&mv78xx0_uart2); orion_uart2_init(UART2_VIRT_BASE, UART2_PHYS_BASE, IRQ_MV78XX0_UART_2, get_tclk()); } /***************************************************************************** * UART3 ****************************************************************************/ static struct plat_serial8250_port mv78xx0_uart3_data[] = { { .mapbase = UART3_PHYS_BASE, .membase = (char *)UART3_VIRT_BASE, .irq = IRQ_MV78XX0_UART_3, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource mv78xx0_uart3_resources[] = { { .start = UART3_PHYS_BASE, .end = UART3_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_MV78XX0_UART_3, .end = IRQ_MV78XX0_UART_3, .flags = IORESOURCE_IRQ, }, }; static struct platform_device mv78xx0_uart3 = { .name = "serial8250", .id = 3, .dev = { .platform_data = mv78xx0_uart3_data, }, .resource = mv78xx0_uart3_resources, .num_resources = ARRAY_SIZE(mv78xx0_uart3_resources), }; void __init mv78xx0_uart3_init(void) { platform_device_register(&mv78xx0_uart3); orion_uart3_init(UART3_VIRT_BASE, UART3_PHYS_BASE, IRQ_MV78XX0_UART_3, get_tclk()); } /***************************************************************************** * Time handling ****************************************************************************/ Loading Loading @@ -900,8 +764,4 @@ void __init mv78xx0_init(void) mv78xx0_ge01_shared_data.t_clk = tclk; mv78xx0_ge10_shared_data.t_clk = tclk; mv78xx0_ge11_shared_data.t_clk = tclk; mv78xx0_uart0_data[0].uartclk = tclk; mv78xx0_uart1_data[0].uartclk = tclk; mv78xx0_uart2_data[0].uartclk = tclk; mv78xx0_uart3_data[0].uartclk = tclk; }
arch/arm/mach-orion5x/common.c +5 −76 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #include <plat/orion_nand.h> #include <plat/orion_wdt.h> #include <plat/time.h> #include <plat/common.h> #include "common.h" /***************************************************************************** Loading Loading @@ -349,91 +350,21 @@ void __init orion5x_spi_init() /***************************************************************************** * UART0 ****************************************************************************/ static struct plat_serial8250_port orion5x_uart0_data[] = { { .mapbase = UART0_PHYS_BASE, .membase = (char *)UART0_VIRT_BASE, .irq = IRQ_ORION5X_UART0, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource orion5x_uart0_resources[] = { { .start = UART0_PHYS_BASE, .end = UART0_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_ORION5X_UART0, .end = IRQ_ORION5X_UART0, .flags = IORESOURCE_IRQ, }, }; static struct platform_device orion5x_uart0 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { .platform_data = orion5x_uart0_data, }, .resource = orion5x_uart0_resources, .num_resources = ARRAY_SIZE(orion5x_uart0_resources), }; void __init orion5x_uart0_init(void) { platform_device_register(&orion5x_uart0); orion_uart0_init(UART0_VIRT_BASE, UART0_PHYS_BASE, IRQ_ORION5X_UART0, orion5x_tclk); } /***************************************************************************** * UART1 ****************************************************************************/ static struct plat_serial8250_port orion5x_uart1_data[] = { { .mapbase = UART1_PHYS_BASE, .membase = (char *)UART1_VIRT_BASE, .irq = IRQ_ORION5X_UART1, .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM, .regshift = 2, .uartclk = 0, }, { }, }; static struct resource orion5x_uart1_resources[] = { { .start = UART1_PHYS_BASE, .end = UART1_PHYS_BASE + 0xff, .flags = IORESOURCE_MEM, }, { .start = IRQ_ORION5X_UART1, .end = IRQ_ORION5X_UART1, .flags = IORESOURCE_IRQ, }, }; static struct platform_device orion5x_uart1 = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = orion5x_uart1_data, }, .resource = orion5x_uart1_resources, .num_resources = ARRAY_SIZE(orion5x_uart1_resources), }; void __init orion5x_uart1_init(void) { platform_device_register(&orion5x_uart1); orion_uart1_init(UART1_VIRT_BASE, UART1_PHYS_BASE, IRQ_ORION5X_UART1, orion5x_tclk); } /***************************************************************************** * XOR engine ****************************************************************************/ Loading Loading @@ -687,8 +618,6 @@ void __init orion5x_init(void) orion5x_ge00_shared_data.t_clk = orion5x_tclk; orion5x_spi_plat_data.tclk = orion5x_tclk; orion5x_uart0_data[0].uartclk = orion5x_tclk; orion5x_uart1_data[0].uartclk = orion5x_tclk; /* * Setup Orion address map Loading