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 0aedd42..528c5bb 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 82058d1..75049cf 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 e6ee2ec..cbf9d76 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 */