From patchwork Mon Mar 7 08:50:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vincent Whitchurch X-Patchwork-Id: 12771372 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7431EC433F5 for ; Mon, 7 Mar 2022 08:52:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=to8kqxLRakTqyZH8YE5lxV/BmLhwQ5uDcj3eW1j2fqc=; b=ZsmPkRQbBEqo0g 6mf1K/T8dOsVQBPOH6tchqguTJL6uTmiSjqoGP3KaM3nZ71FUKho0o5Qt/3D5LSqK9+84dyfkcwzZ 7kYZNsqWEqIa3NQ8UTQprHrkDYOe9vvLRNb+K0OgaigVz6Fdirmn3rZ1RTm4U4H5ug1sRd0qBW7jS 6IogUARiGiRS7ivWj90M1//7zv0zA/F2a0CXIdSM99FrSyh2kAI80QMfF9sPG7C2eCP1jC0I+HoNr UlsKJU2UZHdInLApQVx7lHr7VOKbm7nVn4jCBWyCfIgDXpmA3EQNEkZwM3a1AAFWHw9JbLE/WIzqX diTQKdyIl5oG6LlCzhaA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nR95W-00GYzc-BF; Mon, 07 Mar 2022 08:51:30 +0000 Received: from smtp2.axis.com ([195.60.68.18]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nR953-00GYoS-92 for linux-arm-kernel@lists.infradead.org; Mon, 07 Mar 2022 08:51:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; q=dns/txt; s=axis-central1; t=1646643061; x=1678179061; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ytKQtShjwa35NIFSZwwjBXyX3q9doQnHdIn7CTmZOnE=; b=CNt4KrxCGFNQGWn0CqYhRC1jnTkTiWD8X6ADU8HXeo/n4rpXAG/rh37y uJYNcEK5Wdjx9be6Cgp9y790qCnHlKHT5x22NOKOgmO8fVTdIueRVvtC/ /d2r/CrTXcrdt4Ls4dyHWBicOa2oEEmlDwVlJZfp3QXWHs6SQZwBnKata BiM+Y52U2u9WxyDlfRmRz4lw4YIul+iytcEv1D8e7KwjkDzJPdlhfBJCN Rd3zSjwWXb9BOVocZ6n5XTHy8Wl2Yegpl52yFy1vRTPhzGI2vdnmejWmf +6Deb9l1PvO6arv5QyL9c8UtNh0sN/BTt+ZLWkbMmDmZS6mbdY9kAioss g==; From: Vincent Whitchurch To: , , CC: , , , , , , , , Vincent Whitchurch Subject: [PATCH 2/2] tty: serial: samsung: Add ARTPEC-8 support Date: Mon, 7 Mar 2022 09:50:53 +0100 Message-ID: <20220307085053.1636475-3-vincent.whitchurch@axis.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220307085053.1636475-1-vincent.whitchurch@axis.com> References: <20220307085053.1636475-1-vincent.whitchurch@axis.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220307_005101_685884_8354DABC X-CRM114-Status: GOOD ( 13.79 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add support for the UART on the ARTPEC-8 SoC. Signed-off-by: Vincent Whitchurch Reviewed-by: Krzysztof Kozlowski --- drivers/tty/serial/Kconfig | 2 +- drivers/tty/serial/samsung_tty.c | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index e952ec5c7a7c..ae120d3d933a 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@ -237,7 +237,7 @@ config SERIAL_CLPS711X_CONSOLE config SERIAL_SAMSUNG tristate "Samsung SoC serial support" - depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || ARCH_APPLE || COMPILE_TEST + depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || ARCH_APPLE || ARCH_ARTPEC || COMPILE_TEST select SERIAL_CORE help Support for the on-chip UARTs on the Samsung diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c index d002a4e48ed9..4f9e74c6bcef 100644 --- a/drivers/tty/serial/samsung_tty.c +++ b/drivers/tty/serial/samsung_tty.c @@ -2837,6 +2837,36 @@ static struct s3c24xx_serial_drv_data s5l_serial_drv_data = { #define S5L_SERIAL_DRV_DATA ((kernel_ulong_t)NULL) #endif +#if defined(CONFIG_ARCH_ARTPEC) +static struct s3c24xx_serial_drv_data artpec8_serial_drv_data = { + .info = &(struct s3c24xx_uart_info) { + .name = "Axis ARTPEC-8 UART", + .type = TYPE_S3C6400, + .port_type = PORT_S3C6400, + .fifosize = 128, + .has_divslot = 1, + .rx_fifomask = S5PV210_UFSTAT_RXMASK, + .rx_fifoshift = S5PV210_UFSTAT_RXSHIFT, + .rx_fifofull = S5PV210_UFSTAT_RXFULL, + .tx_fifofull = S5PV210_UFSTAT_TXFULL, + .tx_fifomask = S5PV210_UFSTAT_TXMASK, + .tx_fifoshift = S5PV210_UFSTAT_TXSHIFT, + .def_clk_sel = S3C2410_UCON_CLKSEL0, + .num_clks = 1, + .clksel_mask = 0, + .clksel_shift = 0, + }, + .def_cfg = &(struct s3c2410_uartcfg) { + .ucon = S5PV210_UCON_DEFAULT, + .ufcon = S5PV210_UFCON_DEFAULT, + .has_fracval = 1, + } +}; +#define ARTPEC8_SERIAL_DRV_DATA ((kernel_ulong_t)&artpec8_serial_drv_data) +#else +#define ARTPEC8_SERIAL_DRV_DATA ((kernel_ulong_t)NULL) +#endif + static const struct platform_device_id s3c24xx_serial_driver_ids[] = { { .name = "s3c2410-uart", @@ -2866,6 +2896,10 @@ static const struct platform_device_id s3c24xx_serial_driver_ids[] = { .name = "exynos850-uart", .driver_data = EXYNOS850_SERIAL_DRV_DATA, }, + { + .name = "artpec8-uart", + .driver_data = ARTPEC8_SERIAL_DRV_DATA, + }, { }, }; MODULE_DEVICE_TABLE(platform, s3c24xx_serial_driver_ids); @@ -2888,6 +2922,8 @@ static const struct of_device_id s3c24xx_uart_dt_match[] = { .data = (void *)EXYNOS5433_SERIAL_DRV_DATA }, { .compatible = "apple,s5l-uart", .data = (void *)S5L_SERIAL_DRV_DATA }, + { .compatible = "axis,artpec8-uart", + .data = (void *)ARTPEC8_SERIAL_DRV_DATA }, { .compatible = "samsung,exynos850-uart", .data = (void *)EXYNOS850_SERIAL_DRV_DATA }, {}, @@ -3043,6 +3079,8 @@ OF_EARLYCON_DECLARE(s5pv210, "samsung,s5pv210-uart", s5pv210_early_console_setup); OF_EARLYCON_DECLARE(exynos4210, "samsung,exynos4210-uart", s5pv210_early_console_setup); +OF_EARLYCON_DECLARE(artpec8, "axis,artpec8-uart", + s5pv210_early_console_setup); /* Apple S5L */ static int __init apple_s5l_early_console_setup(struct earlycon_device *device,