mfd: db8500-prcmu: Handle missing FW variant
authorLinus Walleij <linus.walleij@linaro.org>
Sun, 1 Aug 2021 23:33:14 +0000 (01:33 +0200)
committerLee Jones <lee.jones@linaro.org>
Mon, 9 Aug 2021 08:33:29 +0000 (09:33 +0100)
There was an "unknown" firmware variant turning up in the wild
causing problems in the clock driver. Add this missing variant
and clarify that varian 11 and 15 are Samsung variants, as this
is now very well known from released products.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/clk/ux500/u8500_of_clk.c
drivers/mfd/db8500-prcmu.c
include/linux/mfd/dbx500-prcmu.h

index 0aedd42fad52447413f1db3fdd99571774164521..528c5bb397cc6c413629f79550cd9bc80b369000 100644 (file)
@@ -99,10 +99,11 @@ static void u8500_clk_init(struct device_node *np)
        if (fw_version != NULL) {
                switch (fw_version->project) {
                case PRCMU_FW_PROJECT_U8500_C2:
-               case PRCMU_FW_PROJECT_U8500_MBL:
+               case PRCMU_FW_PROJECT_U8500_SSG1:
                case PRCMU_FW_PROJECT_U8520:
                case PRCMU_FW_PROJECT_U8420:
                case PRCMU_FW_PROJECT_U8420_SYSCLK:
+               case PRCMU_FW_PROJECT_U8500_SSG2:
                        sgaclk_parent = "soc0_pll";
                        break;
                default:
index 82058d11099fd8204fe637c2600d7584a8ea58a6..75049cf3883260e19861775000af05ce95184df3 100644 (file)
@@ -2565,14 +2565,16 @@ static char *fw_project_name(u32 project)
                return "U8500 C4";
        case PRCMU_FW_PROJECT_U9500_MBL:
                return "U9500 MBL";
-       case PRCMU_FW_PROJECT_U8500_MBL:
-               return "U8500 MBL";
+       case PRCMU_FW_PROJECT_U8500_SSG1:
+               return "U8500 Samsung 1";
        case PRCMU_FW_PROJECT_U8500_MBL2:
                return "U8500 MBL2";
        case PRCMU_FW_PROJECT_U8520:
                return "U8520 MBL";
        case PRCMU_FW_PROJECT_U8420:
                return "U8420";
+       case PRCMU_FW_PROJECT_U8500_SSG2:
+               return "U8500 Samsung 2";
        case PRCMU_FW_PROJECT_U8420_SYSCLK:
                return "U8420-sysclk";
        case PRCMU_FW_PROJECT_U9540:
index e6ee2ec35de9b4a5cf62fc8524e75a14f06200d5..cbf9d76194934b7923ff6c0d09a6f3d09b35f614 100644 (file)
@@ -186,10 +186,11 @@ enum ddr_pwrst {
 #define PRCMU_FW_PROJECT_U8500_C3      8
 #define PRCMU_FW_PROJECT_U8500_C4      9
 #define PRCMU_FW_PROJECT_U9500_MBL     10
-#define PRCMU_FW_PROJECT_U8500_MBL     11 /* Customer specific */
+#define PRCMU_FW_PROJECT_U8500_SSG1    11 /* Samsung specific */
 #define PRCMU_FW_PROJECT_U8500_MBL2    12 /* Customer specific */
 #define PRCMU_FW_PROJECT_U8520         13
 #define PRCMU_FW_PROJECT_U8420         14
+#define PRCMU_FW_PROJECT_U8500_SSG2    15 /* Samsung specific */
 #define PRCMU_FW_PROJECT_U8420_SYSCLK  17
 #define PRCMU_FW_PROJECT_A9420         20
 /* [32..63] 9540 and derivatives */