Fw: struct tty_flip_buffer replacement in newer kernels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux