Skip to content

Commit 3a78f7f

Browse files
asdfugiljannau
authored andcommitted
tty: serial: samsung: Fix A7-A11 serial earlycon SError
Apple's earlier SoCs, like A7-A11, requires 32-bit writes for the serial port. Otherwise, a SError happens when writing to UTXH (+0x20). This only manifested in earlycon as reg-io-width in the device tree is consulted for normal serial writes. Change the iotype of the port to UPIO_MEM32, to allow the serial port to function on A7-A11 SoCs. This change does not appear to affect Apple M1 and above. Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Nick Chan <towinchenmi@gmail.com>
1 parent 8242bb0 commit 3a78f7f

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

drivers/tty/serial/samsung_tty.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2541,7 +2541,7 @@ static const struct s3c24xx_serial_drv_data s5l_serial_drv_data = {
25412541
.name = "Apple S5L UART",
25422542
.type = TYPE_APPLE_S5L,
25432543
.port_type = PORT_8250,
2544-
.iotype = UPIO_MEM,
2544+
.iotype = UPIO_MEM32,
25452545
.fifosize = 16,
25462546
.rx_fifomask = S3C2410_UFSTAT_RXMASK,
25472547
.rx_fifoshift = S3C2410_UFSTAT_RXSHIFT,
@@ -2827,6 +2827,9 @@ OF_EARLYCON_DECLARE(gs101, "google,gs101-uart", gs101_early_console_setup);
28272827
static int __init apple_s5l_early_console_setup(struct earlycon_device *device,
28282828
const char *opt)
28292829
{
2830+
/* Apple A7-A11 requires MMIO32 register accesses. */
2831+
device->port.iotype = UPIO_MEM32;
2832+
28302833
/* Close enough to S3C2410 for earlycon... */
28312834
device->port.private_data = &s3c2410_early_console_data;
28322835

0 commit comments

Comments
 (0)