intel_adsp: adsp_memory: update cAVS 2.5 memory definitions
This commit updates the device tree and memory header file
for the Intel cAVS 2.5 platform to define the LSBPM and
HSBPM registers.
Changes include:
- Added node definitions for 'lsbpm' and 'hsbpm' in
intel_adsp_cavs25.dtsi and intel_adsp_cavs25_tgph.dtsi
- Updated adsp_memory.h
Signed-off-by: Damian Nikodem <damian.nikodem@intel.com>
diff --git a/dts/xtensa/intel/intel_adsp_cavs25.dtsi b/dts/xtensa/intel/intel_adsp_cavs25.dtsi
index 03faf22..552d6cf 100644
--- a/dts/xtensa/intel/intel_adsp_cavs25.dtsi
+++ b/dts/xtensa/intel/intel_adsp_cavs25.dtsi
@@ -106,6 +106,16 @@
};
soc {
+ lsbpm: lsbpm@71d50 {
+ compatible = "intel,adsp-lsbpm";
+ reg = <0x71d50 0x10>;
+ };
+
+ hsbpm: hsbpm@71d10 {
+ compatible = "intel,adsp-hsbpm";
+ reg = <0x71d10 0x10>;
+ };
+
shim: shim@71f00 {
compatible = "intel,adsp-shim";
reg = <0x71f00 0x100>;
diff --git a/dts/xtensa/intel/intel_adsp_cavs25_tgph.dtsi b/dts/xtensa/intel/intel_adsp_cavs25_tgph.dtsi
index 28b982e..7ea3556 100644
--- a/dts/xtensa/intel/intel_adsp_cavs25_tgph.dtsi
+++ b/dts/xtensa/intel/intel_adsp_cavs25_tgph.dtsi
@@ -92,6 +92,16 @@
};
soc {
+ lsbpm: lsbpm@71d50 {
+ compatible = "intel,adsp-lsbpm";
+ reg = <0x71d50 0x10>;
+ };
+
+ hsbpm: hsbpm@71d10 {
+ compatible = "intel,adsp-hsbpm";
+ reg = <0x71d10 0x10>;
+ };
+
shim: shim@71f00 {
compatible = "intel,adsp-shim";
reg = <0x71f00 0x100>;
diff --git a/soc/intel/intel_adsp/cavs/include/cavs25/adsp_memory.h b/soc/intel/intel_adsp/cavs/include/cavs25/adsp_memory.h
index ed10a5d..231c254 100644
--- a/soc/intel/intel_adsp/cavs/include/cavs25/adsp_memory.h
+++ b/soc/intel/intel_adsp/cavs/include/cavs25/adsp_memory.h
@@ -65,5 +65,40 @@
/* The number of set associative cache way supported on L1 Instruction Cache */
#define ADSP_CxL1CCAP_ICMWC ((ADSP_CxL1CCAP_REG >> 20) & 7)
+#ifndef _ASMLANGUAGE
+/* L2 Local Memory Management */
+
+struct cavs_hpsram_regs {
+ /** @brief power gating control */
+ uint32_t HSxPGCTL;
+ /** @brief retention mode control */
+ uint32_t HSxRMCTL;
+ /** @brief power gating status */
+ uint32_t HSxPGISTS;
+};
+
+struct cavs_lpsram_regs {
+ /** @brief power gating control */
+ uint32_t USxPGCTL;
+ /** @brief retention mode control */
+ uint32_t USxRMCTL;
+ /** @brief power gating status */
+ uint32_t USxPGISTS;
+};
+#endif /* _ASMLANGUAGE */
+
+/* These registers are for the L2 HP SRAM bank power management control and status.*/
+#define L2_HSBPM_BASE (DT_REG_ADDR(DT_NODELABEL(hsbpm)))
+#define L2_HSBPM_SIZE (DT_REG_SIZE(DT_NODELABEL(hsbpm)))
+
+#define HPSRAM_REGS(block_idx) ((volatile struct cavs_hpsram_regs *const) \
+ (L2_HSBPM_BASE + L2_HSBPM_SIZE * (block_idx)))
+
+/* These registers are for the L2 LP SRAM bank power management control and status.*/
+#define L2_LSBPM_BASE (DT_REG_ADDR(DT_NODELABEL(lsbpm)))
+#define L2_LSBPM_SIZE (DT_REG_SIZE(DT_NODELABEL(lsbpm)))
+
+#define LPSRAM_REGS(block_idx) ((volatile struct cavs_lpsram_regs *const) \
+ (L2_LSBPM_BASE + L2_LSBPM_SIZE * (block_idx)))
#endif /* ZEPHYR_SOC_INTEL_ADSP_MEMORY_H_ */