Hi, Alan. Thank You very much for the answer! So, if I understand correctly, I took for example this: arch/arm/mach-omap1/board-voiceblue.c And made in my board specific file: static struct plat_serial8250_port exar_ports[] = { { .mapbase = (unsigned long)(0x30000300), // according to at91rm9200 CS2 memory map .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, // I don't know, what kind of flags is suitable for me .iotype = UPIO_MEM, // similar problem .regshift = 1, .uartclk = 14745600, // Our chip clock frequency }, { .mapbase = (unsigned long)(0x30000200), .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, .iotype = UPIO_MEM, .regshift = 1, .uartclk = 14745600, }, { .mapbase = (unsigned long)(0x30000100), .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, .iotype = UPIO_MEM, .regshift = 1, .uartclk = 14745600, }, { .mapbase = (unsigned long)(0x30000000), .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, .iotype = UPIO_MEM, .regshift = 1, .uartclk = 14745600, }, { }, }; static struct platform_device serial_device = { .name = "serial8250", .id = PLAT8250_DEV_EXAR_ST16C554, .dev = { .platform_data = exar_ports, }, }; in my board __init func: platform_device_register(&serial_device); at .config I made: # # Serial drivers # CONFIG_SERIAL_8250=y # CONFIG_SERIAL_8250_CONSOLE is not set CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y # CONFIG_SERIAL_8250_SHARE_IRQ is not set # CONFIG_SERIAL_8250_DETECT_IRQ is not set # CONFIG_SERIAL_8250_RSA is not set dmesg gives: [ 0.695312] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled New devices in filesystem has been registered, but they didn't related with hardware chip yet. #cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:unknown mmio:0x30000000 irq:0 1: uart:unknown port:00000000 irq:0 2: uart:unknown port:00000000 irq:0 3: uart:unknown port:00000000 irq:0 What shoud I check, learn, do for solving this problem? Very grateful, Dmitriy Alekseev ----- Original Message ----- From: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> To: Dmitriy Alekseev <alexeev6@xxxxxxxxx> Cc: "linux-serial@xxxxxxxxxxxxxxx" <linux-serial@xxxxxxxxxxxxxxx> Sent: Tuesday, May 22, 2012 8:27 PM Subject: Re: struct tty_flip_buffer replacement in newer kernels On Tue, 22 May 2012 07:38:28 -0700 (PDT) Dmitriy Alekseev <alexeev6@xxxxxxxxx> wrote: > This is driver source I found: > http://www.codeforge.com/read/118181/st16c554_serial.c__html > > It was written for quad uart st16c554 for arm chip s3c2410, which I tried to adapt for at91rm9200 board and newer kernel version. Why not use the in kernel 8250 driver (which will drive a stamdard 16540/550/554 as well ?) To ressurect one you'll need to add kref handling, rework the termios code and maybe some other bits too. Take a look how other arm boards use struct plat_serial8250_port and the serial8250 platform driver. You should just be able to declare the structures and register the platform device. Alan -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html