.params = &rsci_rzg3e_port_params,
};
+struct sci_of_data of_rsci_rzg3l_data = {
+ .type = RSCI_PORT_SCIF32_SINGLE_TCLK,
+ .ops = &rsci_port_ops,
+ .uart_ops = &rsci_uart_ops,
+ .params = &rsci_rzg3e_port_params,
+};
+
struct sci_of_data of_rsci_rzt2h_data = {
.type = RSCI_PORT_SCIF16,
.ops = &rsci_port_ops,
};
#ifdef CONFIG_SERIAL_SH_SCI_EARLYCON
+static int __init rsci_rzg3l_early_console_setup(struct earlycon_device *device,
+ const char *opt)
+{
+ return scix_early_console_setup(device, &of_rsci_rzg3l_data);
+}
static int __init rsci_rzg3e_early_console_setup(struct earlycon_device *device,
const char *opt)
return scix_early_console_setup(device, &of_rsci_rzt2h_data);
}
+OF_EARLYCON_DECLARE(rsci, "renesas,r9a08g046-rsci", rsci_rzg3l_early_console_setup);
OF_EARLYCON_DECLARE(rsci, "renesas,r9a09g047-rsci", rsci_rzg3e_early_console_setup);
OF_EARLYCON_DECLARE(rsci, "renesas,r9a09g077-rsci", rsci_rzt2h_early_console_setup);
static bool sci_is_rsci_type(u8 type)
{
- return (type == RSCI_PORT_SCIF16 || type == RSCI_PORT_SCIF32);
+ return (type == RSCI_PORT_SCIF16 || type == RSCI_PORT_SCIF32 ||
+ type == RSCI_PORT_SCIF32_SINGLE_TCLK);
}
static int sci_handle_fifo_overrun(struct uart_port *port)
if (sci_port->type == PORT_HSCIF) {
clk_names[SCI_SCK] = "hsck";
- } else if (sci_port->type == RSCI_PORT_SCIF16) {
+ } else if (sci_port->type == RSCI_PORT_SCIF16 ||
+ sci_port->type == RSCI_PORT_SCIF32_SINGLE_TCLK) {
clk_names[SCI_FCK] = "operation";
clk_names[SCI_BRG_INT] = "bus";
} else if (sci_port->type == RSCI_PORT_SCIF32) {
if (IS_ERR(clk))
return PTR_ERR(clk);
- if (!clk && sci_port->type == RSCI_PORT_SCIF16 &&
+ if (!clk && (sci_port->type == RSCI_PORT_SCIF16 ||
+ sci_port->type == RSCI_PORT_SCIF32_SINGLE_TCLK) &&
(i == SCI_FCK || i == SCI_BRG_INT))
return dev_err_probe(dev, -ENODEV, "failed to get %s\n", name);
break;
case PORT_SCIFA:
case RSCI_PORT_SCIF32:
+ case RSCI_PORT_SCIF32_SINGLE_TCLK:
sci_port->rx_trigger = 32;
break;
case PORT_SCIF:
.data = &of_sci_scif_rzv2h,
},
#ifdef CONFIG_SERIAL_RSCI
+ {
+ .compatible = "renesas,r9a08g046-rsci",
+ .data = &of_rsci_rzg3l_data,
+ },
{
.compatible = "renesas,r9a09g047-rsci",
.data = &of_rsci_rzg3e_data,