tty: serial: samsung: Add Exynos8895 compatible
authorIvaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Wed, 23 Oct 2024 09:09:02 +0000 (12:09 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Nov 2024 01:02:45 +0000 (02:02 +0100)
Add serial driver data for Exynos8895 SoC. The main difference from
other platforms is that fifosize is only specified via the
samsung,uart-fifosize DT property.

Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20241023090902.538040-3-ivo.ivanov.ivanov1@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/samsung_tty.c

index 405b1a2..210fff7 100644 (file)
@@ -2498,6 +2498,12 @@ static const struct s3c24xx_serial_drv_data exynos850_serial_drv_data = {
        .fifosize = { 256, 64, 64, 64 },
 };
 
+static const struct s3c24xx_serial_drv_data exynos8895_serial_drv_data = {
+       EXYNOS_COMMON_SERIAL_DRV_DATA,
+       /* samsung,uart-fifosize must be specified in the device tree. */
+       .fifosize = { 0 },
+};
+
 static const struct s3c24xx_serial_drv_data gs101_serial_drv_data = {
        .info = {
                .name           = "Google GS101 UART",
@@ -2528,12 +2534,14 @@ static const struct s3c24xx_serial_drv_data gs101_serial_drv_data = {
 #define EXYNOS4210_SERIAL_DRV_DATA (&exynos4210_serial_drv_data)
 #define EXYNOS5433_SERIAL_DRV_DATA (&exynos5433_serial_drv_data)
 #define EXYNOS850_SERIAL_DRV_DATA (&exynos850_serial_drv_data)
+#define EXYNOS8895_SERIAL_DRV_DATA (&exynos8895_serial_drv_data)
 #define GS101_SERIAL_DRV_DATA (&gs101_serial_drv_data)
 
 #else
 #define EXYNOS4210_SERIAL_DRV_DATA NULL
 #define EXYNOS5433_SERIAL_DRV_DATA NULL
 #define EXYNOS850_SERIAL_DRV_DATA NULL
+#define EXYNOS8895_SERIAL_DRV_DATA NULL
 #define GS101_SERIAL_DRV_DATA NULL
 #endif
 
@@ -2623,6 +2631,9 @@ static const struct platform_device_id s3c24xx_serial_driver_ids[] = {
        }, {
                .name           = "gs101-uart",
                .driver_data    = (kernel_ulong_t)GS101_SERIAL_DRV_DATA,
+       }, {
+               .name           = "exynos8895-uart",
+               .driver_data    = (kernel_ulong_t)EXYNOS8895_SERIAL_DRV_DATA,
        },
        { },
 };
@@ -2646,6 +2657,8 @@ static const struct of_device_id s3c24xx_uart_dt_match[] = {
                .data = ARTPEC8_SERIAL_DRV_DATA },
        { .compatible = "google,gs101-uart",
                .data = GS101_SERIAL_DRV_DATA },
+       { .compatible = "samsung,exynos8895-uart",
+               .data = EXYNOS8895_SERIAL_DRV_DATA },
        {},
 };
 MODULE_DEVICE_TABLE(of, s3c24xx_uart_dt_match);