mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 01:32:21 +02:00
amba/serial: amba-pl011: Bring back zx29 UART support
This is based on code removed in commit 89d4f98ae9 ("ARM: remove zte
zx platform"). I did not bring back the zx29-uart .compatible as the
arm,primecell-periphid does the job.
Reviewed-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Stefan Dösinger <stefandoesinger@gmail.com>
Link: https://patch.msgid.link/20260514-zx29uart-v1-2-68470ecc3977@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5e6dfb87b1
commit
d9ee199c0f
|
|
@ -240,6 +240,38 @@ static struct vendor_data vendor_nvidia = {
|
|||
.get_fifosize = get_fifosize_nvidia,
|
||||
};
|
||||
|
||||
static const u16 pl011_zte_offsets[REG_ARRAY_SIZE] = {
|
||||
[REG_DR] = ZX_UART011_DR,
|
||||
[REG_FR] = ZX_UART011_FR,
|
||||
[REG_LCRH_RX] = ZX_UART011_LCRH,
|
||||
[REG_LCRH_TX] = ZX_UART011_LCRH,
|
||||
[REG_IBRD] = ZX_UART011_IBRD,
|
||||
[REG_FBRD] = ZX_UART011_FBRD,
|
||||
[REG_CR] = ZX_UART011_CR,
|
||||
[REG_IFLS] = ZX_UART011_IFLS,
|
||||
[REG_IMSC] = ZX_UART011_IMSC,
|
||||
[REG_RIS] = ZX_UART011_RIS,
|
||||
[REG_MIS] = ZX_UART011_MIS,
|
||||
[REG_ICR] = ZX_UART011_ICR,
|
||||
[REG_DMACR] = ZX_UART011_DMACR,
|
||||
};
|
||||
|
||||
static unsigned int get_fifosize_zte(struct amba_device *dev)
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
static struct vendor_data vendor_zte = {
|
||||
.reg_offset = pl011_zte_offsets,
|
||||
.access_32b = true,
|
||||
.ifls = UART011_IFLS_RX4_8 | UART011_IFLS_TX4_8,
|
||||
.fr_busy = ZX_UART01x_FR_BUSY,
|
||||
.fr_dsr = ZX_UART01x_FR_DSR,
|
||||
.fr_cts = ZX_UART01x_FR_CTS,
|
||||
.fr_ri = ZX_UART011_FR_RI,
|
||||
.get_fifosize = get_fifosize_zte,
|
||||
};
|
||||
|
||||
/* Deals with DMA transactions */
|
||||
|
||||
struct pl011_dmabuf {
|
||||
|
|
@ -3180,6 +3212,16 @@ static const struct amba_id pl011_ids[] = {
|
|||
.mask = 0x000fffff,
|
||||
.data = &vendor_nvidia,
|
||||
},
|
||||
{
|
||||
/* This is an invented ID. The actual hardware that contains
|
||||
* these ZTE UARTs (zx29 boards) has no AMBA PIDs stored. ZTE
|
||||
* JEDEC ID (ignoring banks) and the "011" part number as used
|
||||
* by ARM.
|
||||
*/
|
||||
.id = 0x0008c011,
|
||||
.mask = 0x000fffff,
|
||||
.data = &vendor_zte,
|
||||
},
|
||||
{ 0, 0 },
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user