xen/arm: drivers: scif: Extend driver to handle other interfaces
authorOleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Thu, 2 May 2019 17:00:19 +0000 (20:00 +0300)
committerWei Liu <wei.liu2@citrix.com>
Mon, 13 May 2019 10:28:03 +0000 (11:28 +0100)
commit2e052b07bb11b4721e88730c1c0a6859cc182265
treec0f4e7c326facfa4d609a937fbed42f9aa2bc67b
parent117bab9d7a270df90c540e984da18739022ce11e
xen/arm: drivers: scif: Extend driver to handle other interfaces

Extend driver to be able to handle other SCIF(X) compatible
interfaces as well. These interfaces have lot in common,
but mostly differ in offsets and bits for some registers.

For example, the main difference between SCIF and SCIFA interfaces
from "scif-uart" driver's point of view:
- Registers offset: serial status, receive/transmit FIFO data
  registers have different offset
- Internal FIFO size: 64 bytes for SCIFA and 16 bytes for SCIF
- Overrun bit location: serial status register for SCIFA and
  dedicated line status register for SCIF

Introduce "port_params" array to keep interface specific things.

The "data" field in struct dt_device_match is used for recognizing
what interface is present on a target board.

Please note, nothing has been technically changed for Renesas "Lager"
and other supported boards (SCIF).

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Acked-by: Julien Grall <julien.grall@arm.com>
xen/drivers/char/scif-uart.c
xen/include/asm-arm/scif-uart.h