soc: samsung: exynos-chipid: Add Exynos850 support
authorSam Protsenko <semen.protsenko@linaro.org>
Thu, 14 Oct 2021 13:35:08 +0000 (16:35 +0300)
committerKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Fri, 15 Oct 2021 07:48:52 +0000 (09:48 +0200)
Add chip-id support for Exynos850 SoC. Despite its "E3830" ID, the
actual SoC name is Exynos850 (Exynos3830 name is internal and outdated).

Format of Product_ID register in Exynos850 (offset 0x0):

     [31:0] Product ID (identification)

Format of CHIPID_REV register in Exynos850 (offset 0x10):

    [23:20] Main revision
    [19:16] Sub revision

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Link: https://lore.kernel.org/r/20211014133508.1210-3-semen.protsenko@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
drivers/soc/samsung/exynos-chipid.c

index 986978e..0aeb24b 100644 (file)
@@ -55,6 +55,7 @@ static const struct exynos_soc_id {
        { "EXYNOS5440", 0xE5440000 },
        { "EXYNOS5800", 0xE5422000 },
        { "EXYNOS7420", 0xE7420000 },
+       { "EXYNOS850", 0xE3830000 },
 };
 
 static const char *product_id_to_soc_id(unsigned int product_id)
@@ -169,10 +170,19 @@ static const struct exynos_chipid_variant exynos4210_chipid_drv_data = {
        .sub_rev_shift  = 0,
 };
 
+static const struct exynos_chipid_variant exynos850_chipid_drv_data = {
+       .rev_reg        = 0x10,
+       .main_rev_shift = 20,
+       .sub_rev_shift  = 16,
+};
+
 static const struct of_device_id exynos_chipid_of_device_ids[] = {
        {
                .compatible     = "samsung,exynos4210-chipid",
                .data           = &exynos4210_chipid_drv_data,
+       }, {
+               .compatible     = "samsung,exynos850-chipid",
+               .data           = &exynos850_chipid_drv_data,
        },
        { }
 };