Merge "feat(cpu): add library support for Poseidon CPU" into integration
diff --git a/changelog.yaml b/changelog.yaml
index b591da3..1bb542a 100644
--- a/changelog.yaml
+++ b/changelog.yaml
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2021, Arm Limited. All rights reserved.
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -731,6 +731,9 @@
           - drivers/st
 
         subsections:
+          - title: BSEC
+            scope: st-bsec
+
           - title: Clock
             scope: st-clock
 
@@ -739,6 +742,12 @@
               - drivers/st/clk
               - stm32mp1_clk
 
+          - title: Crypto
+            scope: st-crypto
+
+          - title: DDR
+            scope: st-ddr
+
           - title: I/O
             scope: st-io-drivers
 
@@ -753,6 +762,15 @@
               - title: fiptool
                 scope: fiptool
 
+          - title: I2C
+            scope: st-i2c
+
+          - title: FMC
+            scope: st-fmc
+
+          - title: GPIO
+            scope: st-gpio
+
           - title: SDMMC2
             scope: st-sdmmc2
 
@@ -768,6 +786,15 @@
           - title: STPMIC1
             scope: stpmic1
 
+          - title: Regulator
+            scope: st-regulator
+
+          - title: Reset
+            scope: st-reset
+
+          - title: SPI
+            scope: st-spi
+
           - title: UART
             scope: st-uart
 
@@ -784,6 +811,9 @@
             deprecated:
               - drivers/st/usb
 
+          - title: Watchdog
+            scope: st-iwdg
+
       - title: USB
         scope: usb
 
diff --git a/drivers/st/regulator/regulator_core.c b/drivers/st/regulator/regulator_core.c
index 94b3cef..5cc8329 100644
--- a/drivers/st/regulator/regulator_core.c
+++ b/drivers/st/regulator/regulator_core.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021, STMicroelectronics - All Rights Reserved
+ * Copyright (c) 2021-2022, STMicroelectronics - All Rights Reserved
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -156,6 +156,10 @@
 
 	assert(rdev != NULL);
 
+	if (rdev->flags & REGUL_ALWAYS_ON) {
+		return 0;
+	}
+
 	ret = __regulator_set_state(rdev, STATE_DISABLE);
 
 	udelay(rdev->enable_ramp_delay);
@@ -412,6 +416,21 @@
 	return 0;
 }
 
+static int parse_properties(const void *fdt, struct rdev *rdev, int node)
+{
+	int ret;
+
+	if (fdt_getprop(fdt, node, "regulator-always-on", NULL) != NULL) {
+		VERBOSE("%s: set regulator-always-on\n", rdev->desc->node_name);
+		ret = regulator_set_flag(rdev, REGUL_ALWAYS_ON);
+		if (ret != 0) {
+			return ret;
+		}
+	}
+
+	return 0;
+}
+
 /*
  * Parse the device-tree for a regulator
  *
@@ -476,6 +495,11 @@
 		return ret;
 	}
 
+	ret = parse_properties(fdt, rdev, node);
+	if (ret != 0) {
+		return ret;
+	}
+
 	return 0;
 }
 
diff --git a/fdts/stm32mp15-bl2.dtsi b/fdts/stm32mp15-bl2.dtsi
index 074414b..d00e35b 100644
--- a/fdts/stm32mp15-bl2.dtsi
+++ b/fdts/stm32mp15-bl2.dtsi
@@ -1,12 +1,13 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 /*
- * Copyright (C) STMicroelectronics 2020-2021 - All Rights Reserved
+ * Copyright (C) STMicroelectronics 2020-2022 - All Rights Reserved
  */
 
 / {
 #if !STM32MP_EMMC && !STM32MP_SDMMC
 	aliases {
 		/delete-property/ mmc0;
+		/delete-property/ mmc1;
 	};
 #endif