summaryrefslogtreecommitdiff
path: root/arch/sh/kernel/cpu/sh4a/serial-sh7722.c
blob: 6ecc8b6e133c69ab17c8c90a9aa662ceacd4fdcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// SPDX-License-Identifier: GPL-2.0
#include <linux/serial_sci.h>
#include <linux/serial_core.h>
#include <linux/io.h>

#define PSCR 0xA405011E

static void sh7722_sci_init_pins(struct uart_port *port, unsigned int cflag)
{
	unsigned short data;

	if (port->mapbase == 0xffe00000) {
		data = __raw_readw(PSCR);
		data &= ~0x03cf;
		if (!(cflag & CRTSCTS))
			data |= 0x0340;

		__raw_writew(data, PSCR);
	}
}

struct plat_sci_port_ops sh7722_sci_port_ops = {
	.init_pins	= sh7722_sci_init_pins,
};