soc: samsung: exynos-chipid: Pass revision reg offsets
authorSam Protsenko <semen.protsenko@linaro.org>
Thu, 14 Oct 2021 13:35:06 +0000 (16:35 +0300)
committerKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Fri, 15 Oct 2021 07:48:40 +0000 (09:48 +0200)
commitc072c4ef7ef09e1d6470c48cf52570487589b76a
tree23fde89567f814e1dd851f584f19650bc3a59877
parent178d6c1b83e5244b866d90071246b3b0135c3f7d
soc: samsung: exynos-chipid: Pass revision reg offsets

Old Exynos SoCs have both Product ID and Revision ID in one single
register, while new SoCs tend to have two separate registers for those
IDs. Implement handling of both cases by passing Revision ID register
offsets in driver data.

Previously existing macros for Exynos4210 (removed in this patch) were
incorrect:

    #define EXYNOS_SUBREV_MASK         (0xf << 4)
    #define EXYNOS_MAINREV_MASK        (0xf << 0)

Actual format of PRO_ID register in Exynos4210 (offset 0x0):

    [31:12] Product ID
      [9:8] Package information
      [7:4] Main Revision Number
      [3:0] Sub Revision Number

This patch doesn't change the behavior on existing platforms, so
'/sys/devices/soc0/revision' will show the same string as before.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Henrik Grimler <henrik@grimler.se>
Link: https://lore.kernel.org/r/20211014133508.1210-1-semen.protsenko@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
drivers/soc/samsung/exynos-chipid.c
include/linux/soc/samsung/exynos-chipid.h