Re: 8250-based SoC serial ports and features

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

 




On 24 April 2015 at 14:06, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Friday 24 April 2015 13:48:57 Joachim Eastwood wrote:
>> Hi,
>>
>> I am working on a DT supported SoC which has a 8250-based USART block
>> with some additional features:
>>  - Two clocks (baud and reg)
>>  - DMA support (DMA engine)
>>  - RS485
>>
>> Should support for these things be put into a 8250_<soc uart>.c file
>> or should of_serial.c be extended?
>> I am leaning towards creating a 8250_<soc uart>.c since the RS485
>> support can't be made generic here.
>
> Yes, that seems fine. If you need a separate file, don't put it
> into of_serial.c
>
>> On a related note: How should quirks be handeled?
>> Example: arch/arm/mach-lpc32xx/serial.c does applies a lot of errata
>> workarounds. (This UART also requires two clocks)
>> Should this be moved into a 8250_lpc32xx_uart.c file or it's there a
>> better place to do this?
>
> That code probably needs to be rewritten before it can be put into
> drivers/tty/serial/, but I think that's where it should go if anyone
> finds the time, and can convert lpc32xx to use common-clk first.

One other question: What is the preferred way of describing different
UART SoC features in DT?
16550a is used as base on most NXP Cortex-M devices, but each UART can
have different features like; IRDA, Smart card, RS485, sync mode
(USART), DMA, hardware RTS/CTS pins and full modem pins.
Features also differ between UARTs on the same device.

I am thinking about either using different comp strings or some kind
of feature flags in DT. (Freescale UART already uses feature flags
like: "fsl,irda-mode" and "fsl,uart-has-rtscts")

All UARTs on LPC1850 have RS485 and DMA support. In additional you have:
UART0,2,3: sync mode and smart card.
UART3: IRDA
UART1: full modem control pin set.

Comp strings could be something like:
"nxp,lpc1850-usart" <- sync+smart card
"nxp,lpc1850-usart-irda" <- sync+smart card+irda
"nxp,lpc1850-uart-modem" <- modem-pins

or feature flags like:
nxp,sync-mode;
nxp,rs485-mode;
nxp,smart-card;
nxp,irda-mode;
nxp,full-modem;

regards,
Joachim Eastwood
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux