|
@@ -60,95 +60,13 @@ static struct map_desc s3c2440_iodesc[] __initdata = {
|
|
IODESC_ENT(WATCHDOG),
|
|
IODESC_ENT(WATCHDOG),
|
|
};
|
|
};
|
|
|
|
|
|
-static struct resource s3c_uart0_resource[] = {
|
|
|
|
- [0] = {
|
|
|
|
- .start = S3C2410_PA_UART0,
|
|
|
|
- .end = S3C2410_PA_UART0 + 0x3fff,
|
|
|
|
- .flags = IORESOURCE_MEM,
|
|
|
|
- },
|
|
|
|
- [1] = {
|
|
|
|
- .start = IRQ_S3CUART_RX0,
|
|
|
|
- .end = IRQ_S3CUART_ERR0,
|
|
|
|
- .flags = IORESOURCE_IRQ,
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct resource s3c_uart1_resource[] = {
|
|
|
|
- [0] = {
|
|
|
|
- .start = S3C2410_PA_UART1,
|
|
|
|
- .end = S3C2410_PA_UART1 + 0x3fff,
|
|
|
|
- .flags = IORESOURCE_MEM,
|
|
|
|
- },
|
|
|
|
- [1] = {
|
|
|
|
- .start = IRQ_S3CUART_RX1,
|
|
|
|
- .end = IRQ_S3CUART_ERR1,
|
|
|
|
- .flags = IORESOURCE_IRQ,
|
|
|
|
- }
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct resource s3c_uart2_resource[] = {
|
|
|
|
- [0] = {
|
|
|
|
- .start = S3C2410_PA_UART2,
|
|
|
|
- .end = S3C2410_PA_UART2 + 0x3fff,
|
|
|
|
- .flags = IORESOURCE_MEM,
|
|
|
|
- },
|
|
|
|
- [1] = {
|
|
|
|
- .start = IRQ_S3CUART_RX2,
|
|
|
|
- .end = IRQ_S3CUART_ERR2,
|
|
|
|
- .flags = IORESOURCE_IRQ,
|
|
|
|
- }
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-/* our uart devices */
|
|
|
|
-
|
|
|
|
-static struct platform_device s3c_uart0 = {
|
|
|
|
- .name = "s3c2440-uart",
|
|
|
|
- .id = 0,
|
|
|
|
- .num_resources = ARRAY_SIZE(s3c_uart0_resource),
|
|
|
|
- .resource = s3c_uart0_resource,
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct platform_device s3c_uart1 = {
|
|
|
|
- .name = "s3c2440-uart",
|
|
|
|
- .id = 1,
|
|
|
|
- .num_resources = ARRAY_SIZE(s3c_uart1_resource),
|
|
|
|
- .resource = s3c_uart1_resource,
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct platform_device s3c_uart2 = {
|
|
|
|
- .name = "s3c2440-uart",
|
|
|
|
- .id = 2,
|
|
|
|
- .num_resources = ARRAY_SIZE(s3c_uart2_resource),
|
|
|
|
- .resource = s3c_uart2_resource,
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-static struct platform_device *uart_devices[] __initdata = {
|
|
|
|
- &s3c_uart0,
|
|
|
|
- &s3c_uart1,
|
|
|
|
- &s3c_uart2
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
/* uart initialisation */
|
|
/* uart initialisation */
|
|
|
|
|
|
-static int __initdata s3c2440_uart_count;
|
|
|
|
-
|
|
|
|
void __init s3c2440_init_uarts(struct s3c2410_uartcfg *cfg, int no)
|
|
void __init s3c2440_init_uarts(struct s3c2410_uartcfg *cfg, int no)
|
|
{
|
|
{
|
|
- struct platform_device *platdev;
|
|
|
|
- int uart;
|
|
|
|
-
|
|
|
|
- for (uart = 0; uart < no; uart++, cfg++) {
|
|
|
|
- platdev = uart_devices[cfg->hwport];
|
|
|
|
-
|
|
|
|
- s3c24xx_uart_devs[uart] = platdev;
|
|
|
|
- platdev->dev.platform_data = cfg;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- s3c2440_uart_count = uart;
|
|
|
|
|
|
+ s3c24xx_init_uartdevs("s3c2440-uart", s3c2410_uart_resources, cfg, no);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
#ifdef CONFIG_PM
|
|
#ifdef CONFIG_PM
|
|
|
|
|
|
static struct sleep_save s3c2440_sleep[] = {
|
|
static struct sleep_save s3c2440_sleep[] = {
|
|
@@ -269,15 +187,7 @@ core_initcall(s3c2440_core_init);
|
|
|
|
|
|
int __init s3c2440_init(void)
|
|
int __init s3c2440_init(void)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
-
|
|
|
|
printk("S3C2440: Initialising architecture\n");
|
|
printk("S3C2440: Initialising architecture\n");
|
|
|
|
|
|
- ret = sysdev_register(&s3c2440_sysdev);
|
|
|
|
- if (ret != 0)
|
|
|
|
- printk(KERN_ERR "failed to register sysdev for s3c2440\n");
|
|
|
|
- else
|
|
|
|
- ret = platform_add_devices(s3c24xx_uart_devs, s3c2440_uart_count);
|
|
|
|
-
|
|
|
|
- return ret;
|
|
|
|
|
|
+ return sysdev_register(&s3c2440_sysdev);
|
|
}
|
|
}
|