drivers: ambiq: Change the way to power on ambiq drivers

This commit changes to use ambiq hal power control APIs
to replace the previous register settings to power on
ambiq drivers.

Signed-off-by: Hao Luo <hluo@ambiq.com>
diff --git a/drivers/adc/adc_ambiq.c b/drivers/adc/adc_ambiq.c
index 66c40ef..0ebdc24 100644
--- a/drivers/adc/adc_ambiq.c
+++ b/drivers/adc/adc_ambiq.c
@@ -21,8 +21,6 @@
 #include <zephyr/logging/log.h>
 LOG_MODULE_REGISTER(adc_ambiq, CONFIG_ADC_LOG_LEVEL);
 
-typedef int (*ambiq_adc_pwr_func_t)(void);
-#define PWRCTRL_MAX_WAIT_US   5
 /* Number of slots available. */
 #define AMBIQ_ADC_SLOT_NUMBER AM_HAL_ADC_MAX_SLOTS
 
@@ -32,7 +30,6 @@
 	uint8_t num_channels;
 	void (*irq_config_func)(void);
 	const struct pinctrl_dev_config *pin_cfg;
-	ambiq_adc_pwr_func_t pwr_func;
 };
 
 struct adc_ambiq_data {
@@ -290,7 +287,7 @@
 	}
 
 	/* power on ADC*/
-	ret = cfg->pwr_func();
+	ret = am_hal_adc_power_control(data->adcHandle, AM_HAL_SYSCTRL_WAKE, false);
 
 	/* Set up the ADC configuration parameters. These settings are reasonable
 	 *  for accurate measurements at a low sample rate.
@@ -404,14 +401,6 @@
 #define ADC_AMBIQ_INIT(n)                                                                          \
 	PINCTRL_DT_INST_DEFINE(n);                                                                 \
 	ADC_AMBIQ_DRIVER_API(n);                                                                   \
-	static int pwr_on_ambiq_adc_##n(void)                                                      \
-	{                                                                                          \
-		uint32_t addr = DT_REG_ADDR(DT_INST_PHANDLE(n, ambiq_pwrcfg)) +                    \
-				DT_INST_PHA(n, ambiq_pwrcfg, offset);                              \
-		sys_write32((sys_read32(addr) | DT_INST_PHA(n, ambiq_pwrcfg, mask)), addr);        \
-		k_busy_wait(PWRCTRL_MAX_WAIT_US);                                                  \
-		return 0;                                                                          \
-	}                                                                                          \
 	static void adc_irq_config_func_##n(void)                                                  \
 	{                                                                                          \
 		IRQ_CONNECT(DT_INST_IRQN(n), DT_INST_IRQ(n, priority), adc_ambiq_isr,              \
@@ -429,7 +418,6 @@
 		.num_channels = DT_PROP(DT_DRV_INST(n), channel_count),                            \
 		.irq_config_func = adc_irq_config_func_##n,                                        \
 		.pin_cfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n),                                      \
-		.pwr_func = pwr_on_ambiq_adc_##n,                                                  \
 	};                                                                                         \
 	PM_DEVICE_DT_INST_DEFINE(n, adc_ambiq_pm_action);                                          \
 	DEVICE_DT_INST_DEFINE(n, &adc_ambiq_init, PM_DEVICE_DT_INST_GET(n), &adc_ambiq_data_##n,   \
diff --git a/drivers/i2c/i2c_ambiq.c b/drivers/i2c/i2c_ambiq.c
index 993f13d..ae4fd1d 100644
--- a/drivers/i2c/i2c_ambiq.c
+++ b/drivers/i2c/i2c_ambiq.c
@@ -43,9 +43,6 @@
 
 LOG_MODULE_REGISTER(ambiq_i2c, CONFIG_I2C_LOG_LEVEL);
 
-typedef int (*ambiq_i2c_pwr_func_t)(void);
-
-#define PWRCTRL_MAX_WAIT_US       5
 #define I2C_TRANSFER_TIMEOUT_MSEC 500 /* Transfer timeout period */
 
 #include "i2c-priv.h"
@@ -59,7 +56,6 @@
 	int size;
 	uint32_t bitrate;
 	const struct pinctrl_dev_config *pcfg;
-	ambiq_i2c_pwr_func_t pwr_func;
 	void (*irq_config_func)(void);
 };
 
@@ -420,7 +416,7 @@
 		return -ENXIO;
 	}
 
-	ret = config->pwr_func();
+	ret = am_hal_iom_power_ctrl(data->iom_handler, AM_HAL_SYSCTRL_WAKE, false);
 
 	ret |= i2c_ambiq_configure(dev, I2C_MODE_CONTROLLER | bitrate_cfg);
 	if (ret < 0) {
@@ -492,14 +488,6 @@
 
 #define AMBIQ_I2C_DEFINE(n)                                                                        \
 	PINCTRL_DT_INST_DEFINE(n);                                                                 \
-	static int pwr_on_ambiq_i2c_##n(void)                                                      \
-	{                                                                                          \
-		uint32_t addr = DT_REG_ADDR(DT_INST_PHANDLE(n, ambiq_pwrcfg)) +                    \
-				DT_INST_PHA(n, ambiq_pwrcfg, offset);                              \
-		sys_write32((sys_read32(addr) | DT_INST_PHA(n, ambiq_pwrcfg, mask)), addr);        \
-		k_busy_wait(PWRCTRL_MAX_WAIT_US);                                                  \
-		return 0;                                                                          \
-	}                                                                                          \
 	static void i2c_irq_config_func_##n(void)                                                  \
 	{                                                                                          \
 		IRQ_CONNECT(DT_INST_IRQN(n), DT_INST_IRQ(n, priority), i2c_ambiq_isr,              \
@@ -517,7 +505,6 @@
 		.bitrate = DT_INST_PROP(n, clock_frequency),                                       \
 		.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n),                                         \
 		.irq_config_func = i2c_irq_config_func_##n,                                        \
-		.pwr_func = pwr_on_ambiq_i2c_##n,                                                  \
 		IF_ENABLED(CONFIG_I2C_AMBIQ_BUS_RECOVERY,			\
 		(.scl = GPIO_DT_SPEC_INST_GET_OR(n, scl_gpios, {0}),\
 		 .sda = GPIO_DT_SPEC_INST_GET_OR(n, sda_gpios, {0}),)) };       \
diff --git a/drivers/serial/uart_pl011_ambiq.h b/drivers/serial/uart_pl011_ambiq.h
index 5efb0e5..704a469 100644
--- a/drivers/serial/uart_pl011_ambiq.h
+++ b/drivers/serial/uart_pl011_ambiq.h
@@ -15,8 +15,6 @@
 #include "uart_pl011_registers.h"
 #include <am_mcu_apollo.h>
 
-#define PWRCTRL_MAX_WAIT_US 5
-
 static inline void pl011_ambiq_enable_clk(const struct device *dev)
 {
 	get_uart(dev)->cr |= PL011_CR_AMBIQ_CLKEN;
diff --git a/drivers/spi/spi_ambiq_bleif.c b/drivers/spi/spi_ambiq_bleif.c
index 2999208..92b94a1 100644
--- a/drivers/spi/spi_ambiq_bleif.c
+++ b/drivers/spi/spi_ambiq_bleif.c
@@ -23,15 +23,10 @@
 #include "spi_context.h"
 #include <am_mcu_apollo.h>
 
-#define PWRCTRL_MAX_WAIT_US 5
-
-typedef int (*ambiq_spi_pwr_func_t)(void);
-
 struct spi_ambiq_config {
 	uint32_t base;
 	int size;
 	const struct pinctrl_dev_config *pcfg;
-	ambiq_spi_pwr_func_t pwr_func;
 };
 
 struct spi_ambiq_data {
@@ -190,29 +185,18 @@
 		return ret;
 	}
 
-	ret = cfg->pwr_func();
-
 	return ret;
 }
 
 #define AMBIQ_SPI_BLEIF_INIT(n)                                                                    \
 	PINCTRL_DT_INST_DEFINE(n);                                                                 \
-	static int pwr_on_ambiq_spi_##n(void)                                                      \
-	{                                                                                          \
-		uint32_t addr = DT_REG_ADDR(DT_INST_PHANDLE(n, ambiq_pwrcfg)) +                    \
-				DT_INST_PHA(n, ambiq_pwrcfg, offset);                              \
-		sys_write32((sys_read32(addr) | DT_INST_PHA(n, ambiq_pwrcfg, mask)), addr);        \
-		k_busy_wait(PWRCTRL_MAX_WAIT_US);                                                  \
-		return 0;                                                                          \
-	}                                                                                          \
 	static struct spi_ambiq_data spi_ambiq_data##n = {                                         \
 		SPI_CONTEXT_INIT_LOCK(spi_ambiq_data##n, ctx),                                     \
 		SPI_CONTEXT_INIT_SYNC(spi_ambiq_data##n, ctx)};                                    \
 	static const struct spi_ambiq_config spi_ambiq_config##n = {                               \
 		.base = DT_INST_REG_ADDR(n),                                                       \
 		.size = DT_INST_REG_SIZE(n),                                                       \
-		.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n),                                         \
-		.pwr_func = pwr_on_ambiq_spi_##n};                                                 \
+		.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n)};                                        \
 	SPI_DEVICE_DT_INST_DEFINE(n, spi_ambiq_init, NULL, &spi_ambiq_data##n,                     \
 				  &spi_ambiq_config##n, POST_KERNEL, CONFIG_SPI_INIT_PRIORITY,     \
 				  &spi_ambiq_driver_api);
diff --git a/drivers/spi/spi_ambiq_spic.c b/drivers/spi/spi_ambiq_spic.c
index 5dac263..2a1dae1 100644
--- a/drivers/spi/spi_ambiq_spic.c
+++ b/drivers/spi/spi_ambiq_spic.c
@@ -41,16 +41,11 @@
 #define SPI_AMBIQ_MANUAL_CACHE_COHERENCY_REQUIRED 0
 #endif /* defined(CONFIG_DCACHE) && !defined(CONFIG_NOCACHE_MEMORY) */
 
-#define PWRCTRL_MAX_WAIT_US 5
-
-typedef int (*ambiq_spi_pwr_func_t)(void);
-
 struct spi_ambiq_config {
 	uint32_t base;
 	int size;
 	uint32_t clock_freq;
 	const struct pinctrl_dev_config *pcfg;
-	ambiq_spi_pwr_func_t pwr_func;
 	void (*irq_config_func)(void);
 };
 
@@ -517,7 +512,7 @@
 		return -ENXIO;
 	}
 
-	ret = cfg->pwr_func();
+	ret = am_hal_iom_power_ctrl(data->iom_handler, AM_HAL_SYSCTRL_WAKE, false);
 
 	ret |= pinctrl_apply_state(cfg->pcfg, PINCTRL_STATE_DEFAULT);
 	ret |= spi_context_cs_configure_all(&data->ctx);
@@ -571,14 +566,6 @@
 
 #define AMBIQ_SPI_INIT(n)                                                                          \
 	PINCTRL_DT_INST_DEFINE(n);                                                                 \
-	static int pwr_on_ambiq_spi_##n(void)                                                      \
-	{                                                                                          \
-		uint32_t addr = DT_REG_ADDR(DT_INST_PHANDLE(n, ambiq_pwrcfg)) +                    \
-				DT_INST_PHA(n, ambiq_pwrcfg, offset);                              \
-		sys_write32((sys_read32(addr) | DT_INST_PHA(n, ambiq_pwrcfg, mask)), addr);        \
-		k_busy_wait(PWRCTRL_MAX_WAIT_US);                                                  \
-		return 0;                                                                          \
-	}                                                                                          \
 	static void spi_irq_config_func_##n(void)                                                  \
 	{                                                                                          \
 		IRQ_CONNECT(DT_INST_IRQN(n), DT_INST_IRQ(n, priority), spi_ambiq_isr,              \
@@ -594,8 +581,7 @@
 		.size = DT_INST_REG_SIZE(n),                                                       \
 		.clock_freq = DT_INST_PROP(n, clock_frequency),                                    \
 		.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n),                                         \
-		.irq_config_func = spi_irq_config_func_##n,                                        \
-		.pwr_func = pwr_on_ambiq_spi_##n};                                                 \
+		.irq_config_func = spi_irq_config_func_##n};                                       \
 	PM_DEVICE_DT_INST_DEFINE(n, spi_ambiq_pm_action);                                          \
 	SPI_DEVICE_DT_INST_DEFINE(n, spi_ambiq_init, PM_DEVICE_DT_INST_GET(n), &spi_ambiq_data##n, \
 				  &spi_ambiq_config##n, POST_KERNEL, CONFIG_SPI_INIT_PRIORITY,     \
diff --git a/drivers/spi/spi_ambiq_spid.c b/drivers/spi/spi_ambiq_spid.c
index 822332a..be19fcf 100644
--- a/drivers/spi/spi_ambiq_spid.c
+++ b/drivers/spi/spi_ambiq_spid.c
@@ -22,16 +22,11 @@
 #include "spi_context.h"
 #include <am_mcu_apollo.h>
 
-#define AMBIQ_SPID_PWRCTRL_MAX_WAIT_US 5
-
-typedef int (*ambiq_spi_pwr_func_t)(void);
-
 struct spi_ambiq_config {
 	const struct gpio_dt_spec int_gpios;
 	uint32_t base;
 	int size;
 	const struct pinctrl_dev_config *pcfg;
-	ambiq_spi_pwr_func_t pwr_func;
 	void (*irq_config_func)(void);
 };
 
@@ -342,7 +337,7 @@
 		return -ENXIO;
 	}
 
-	ret = cfg->pwr_func();
+	ret = am_hal_ios_power_ctrl(data->ios_handler, AM_HAL_SYSCTRL_WAKE, false);
 
 	ret |= pinctrl_apply_state(cfg->pcfg, PINCTRL_STATE_DEFAULT);
 	if (ret < 0) {
@@ -396,14 +391,6 @@
 
 #define AMBIQ_SPID_INIT(n)                                                                         \
 	PINCTRL_DT_INST_DEFINE(n);                                                                 \
-	static int pwr_on_ambiq_spi_##n(void)                                                      \
-	{                                                                                          \
-		uint32_t addr = DT_REG_ADDR(DT_INST_PHANDLE(n, ambiq_pwrcfg)) +                    \
-				DT_INST_PHA(n, ambiq_pwrcfg, offset);                              \
-		sys_write32((sys_read32(addr) | DT_INST_PHA(n, ambiq_pwrcfg, mask)), addr);        \
-		k_busy_wait(AMBIQ_SPID_PWRCTRL_MAX_WAIT_US);                                       \
-		return 0;                                                                          \
-	}                                                                                          \
 	static void spi_irq_config_func_##n(void)                                                  \
 	{                                                                                          \
 		IRQ_CONNECT(DT_INST_IRQN(n), DT_INST_IRQ(n, priority), spi_ambiq_isr,              \
@@ -420,8 +407,7 @@
 		.base = DT_INST_REG_ADDR(n),                                                       \
 		.size = DT_INST_REG_SIZE(n),                                                       \
 		.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n),                                         \
-		.irq_config_func = spi_irq_config_func_##n,                                        \
-		.pwr_func = pwr_on_ambiq_spi_##n};                                                 \
+		.irq_config_func = spi_irq_config_func_##n};                                       \
 	PM_DEVICE_DT_INST_DEFINE(n, spi_ambiq_pm_action);                                          \
 	SPI_DEVICE_DT_INST_DEFINE(n, spi_ambiq_init, PM_DEVICE_DT_INST_GET(n), &spi_ambiq_data##n, \
 				  &spi_ambiq_config##n, POST_KERNEL, CONFIG_SPI_INIT_PRIORITY,     \
diff --git a/dts/arm/ambiq/ambiq_apollo3_blue.dtsi b/dts/arm/ambiq/ambiq_apollo3_blue.dtsi
index cf764f1..76ffc6e 100644
--- a/dts/arm/ambiq/ambiq_apollo3_blue.dtsi
+++ b/dts/arm/ambiq/ambiq_apollo3_blue.dtsi
@@ -204,7 +204,6 @@
 			#size-cells = <0>;
 			interrupts = <4 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -215,7 +214,6 @@
 			#size-cells = <0>;
 			interrupts = <6 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x2>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -226,7 +224,6 @@
 			#size-cells = <0>;
 			interrupts = <7 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x4>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -237,7 +234,6 @@
 			#size-cells = <0>;
 			interrupts = <8 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x8>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -248,7 +244,6 @@
 			#size-cells = <0>;
 			interrupts = <9 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x10>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -259,7 +254,6 @@
 			#size-cells = <0>;
 			interrupts = <10 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x20>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -270,7 +264,6 @@
 			#size-cells = <0>;
 			interrupts = <11 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x40>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -281,7 +274,6 @@
 			#size-cells = <0>;
 			interrupts = <6 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x2>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -292,7 +284,6 @@
 			#size-cells = <0>;
 			interrupts = <7 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x4>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -303,7 +294,6 @@
 			#size-cells = <0>;
 			interrupts = <8 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x8>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -314,7 +304,6 @@
 			#size-cells = <0>;
 			interrupts = <9 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x10>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -325,7 +314,6 @@
 			#size-cells = <0>;
 			interrupts = <10 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x20>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -336,7 +324,6 @@
 			#size-cells = <0>;
 			interrupts = <11 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x40>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -349,7 +336,6 @@
 			internal-vref-mv = <1500>;
 			status = "disabled";
 			#io-channel-cells = <1>;
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x200>;
 		};
 
 		mspi0: spi@40020000 {
@@ -359,7 +345,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x800>;
 		};
 
 		rtc0: rtc@40004240 {
@@ -377,7 +362,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x8000>;
 
 			bt_hci_apollo: bt-hci@0 {
 				compatible = "ambiq,bt-hci-spi";
diff --git a/dts/arm/ambiq/ambiq_apollo3p_blue.dtsi b/dts/arm/ambiq/ambiq_apollo3p_blue.dtsi
index 10ae318..f185cb9 100644
--- a/dts/arm/ambiq/ambiq_apollo3p_blue.dtsi
+++ b/dts/arm/ambiq/ambiq_apollo3p_blue.dtsi
@@ -222,7 +222,6 @@
 			#size-cells = <0>;
 			interrupts = <4 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -233,7 +232,6 @@
 			#size-cells = <0>;
 			interrupts = <6 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x2>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -244,7 +242,6 @@
 			#size-cells = <0>;
 			interrupts = <7 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x4>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -255,7 +252,6 @@
 			#size-cells = <0>;
 			interrupts = <8 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x8>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -266,7 +262,6 @@
 			#size-cells = <0>;
 			interrupts = <9 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x10>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -277,7 +272,6 @@
 			#size-cells = <0>;
 			interrupts = <10 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x20>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -288,7 +282,6 @@
 			#size-cells = <0>;
 			interrupts = <11 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x40>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -299,7 +292,6 @@
 			#size-cells = <0>;
 			interrupts = <6 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x2>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -310,7 +302,6 @@
 			#size-cells = <0>;
 			interrupts = <7 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x4>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -321,7 +312,6 @@
 			#size-cells = <0>;
 			interrupts = <8 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x8>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -332,7 +322,6 @@
 			#size-cells = <0>;
 			interrupts = <9 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x10>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -343,7 +332,6 @@
 			#size-cells = <0>;
 			interrupts = <10 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x20>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -354,7 +342,6 @@
 			#size-cells = <0>;
 			interrupts = <11 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x40>;
 			zephyr,pm-device-runtime-auto;
 		};
 
@@ -367,7 +354,6 @@
 			internal-vref-mv = <1500>;
 			status = "disabled";
 			#io-channel-cells = <1>;
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x200>;
 		};
 
 		mspi0: mspi@50014000 {
@@ -378,7 +364,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x800>;
 		};
 
 		mspi1: mspi@50015000 {
@@ -389,7 +374,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x1000>;
 		};
 
 		mspi2: mspi@50016000 {
@@ -400,7 +384,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x2000>;
 		};
 
 		rtc0: rtc@40004240 {
@@ -418,7 +401,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x8 0x8000>;
 
 			bt_hci_apollo: bt-hci@0 {
 				compatible = "ambiq,bt-hci-spi";
diff --git a/dts/arm/ambiq/ambiq_apollo4p.dtsi b/dts/arm/ambiq/ambiq_apollo4p.dtsi
index b40744a..56c7e74 100644
--- a/dts/arm/ambiq/ambiq_apollo4p.dtsi
+++ b/dts/arm/ambiq/ambiq_apollo4p.dtsi
@@ -160,7 +160,6 @@
 			#size-cells = <0>;
 			interrupts = <6 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x2>;
 		};
 
 		iom0_i2c: i2c@40050000 {
@@ -170,7 +169,6 @@
 			#size-cells = <0>;
 			interrupts = <6 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x2>;
 		};
 
 		iom1_spi: spi@40051000 {
@@ -180,7 +178,6 @@
 			#size-cells = <0>;
 			interrupts = <7 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x4>;
 		};
 
 		iom1_i2c: i2c@40051000 {
@@ -190,7 +187,6 @@
 			#size-cells = <0>;
 			interrupts = <7 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x4>;
 		};
 
 		iom2_spi: spi@40052000 {
@@ -200,7 +196,6 @@
 			#size-cells = <0>;
 			interrupts = <8 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x8>;
 		};
 
 		iom2_i2c: i2c@40052000 {
@@ -210,7 +205,6 @@
 			#size-cells = <0>;
 			interrupts = <8 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x8>;
 		};
 
 		iom3_spi: spi@40053000 {
@@ -220,7 +214,6 @@
 			#size-cells = <0>;
 			interrupts = <9 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x10>;
 		};
 
 		iom3_i2c: i2c@40053000 {
@@ -230,7 +223,6 @@
 			#size-cells = <0>;
 			interrupts = <9 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x10>;
 		};
 
 		iom4_spi: spi@40054000 {
@@ -240,7 +232,6 @@
 			#size-cells = <0>;
 			interrupts = <10 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x20>;
 		};
 
 		iom4_i2c: i2c@40054000 {
@@ -250,7 +241,6 @@
 			#size-cells = <0>;
 			interrupts = <10 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x20>;
 		};
 
 		iom5_spi: spi@40055000 {
@@ -260,7 +250,6 @@
 			#size-cells = <0>;
 			interrupts = <11 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x40>;
 		};
 
 		iom5_i2c: i2c@40055000 {
@@ -270,7 +259,6 @@
 			#size-cells = <0>;
 			interrupts = <11 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x40>;
 		};
 
 		iom6_spi: spi@40056000 {
@@ -280,7 +268,6 @@
 			#size-cells = <0>;
 			interrupts = <12 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x80>;
 		};
 
 		iom6_i2c: i2c@40056000 {
@@ -290,7 +277,6 @@
 			#size-cells = <0>;
 			interrupts = <12 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x80>;
 		};
 
 		iom7_spi: spi@40057000 {
@@ -300,7 +286,6 @@
 			#size-cells = <0>;
 			interrupts = <13 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x100>;
 		};
 
 		iom7_i2c: i2c@40057000 {
@@ -310,7 +295,6 @@
 			#size-cells = <0>;
 			interrupts = <13 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x100>;
 		};
 
 		adc0: adc@40038000 {
@@ -322,7 +306,6 @@
 			internal-vref-mv = <1190>;
 			status = "disabled";
 			#io-channel-cells = <1>;
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x2000>;
 		};
 
 		mspi0: spi@40060000 {
@@ -332,7 +315,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x4000>;
 		};
 
 		mspi1: spi@40061000 {
@@ -342,7 +324,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x8000>;
 		};
 
 		mspi2: spi@40062000 {
@@ -352,7 +333,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x10000>;
 		};
 
 		rtc0: rtc@40004800 {
@@ -370,7 +350,6 @@
 			num-bidir-endpoints = <6>;
 			maximum-speed = "full-speed";
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x400000>;
 		};
 
 		pinctrl: pin-controller@40010000 {
diff --git a/dts/arm/ambiq/ambiq_apollo4p_blue.dtsi b/dts/arm/ambiq/ambiq_apollo4p_blue.dtsi
index cf9c2bf..5833a64 100644
--- a/dts/arm/ambiq/ambiq_apollo4p_blue.dtsi
+++ b/dts/arm/ambiq/ambiq_apollo4p_blue.dtsi
@@ -141,7 +141,6 @@
 			#size-cells = <0>;
 			interrupts = <6 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x2>;
 		};
 
 		spi1: spi@40051000 {
@@ -151,7 +150,6 @@
 			#size-cells = <0>;
 			interrupts = <7 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x4>;
 		};
 
 		spi2: spi@40052000 {
@@ -161,7 +159,6 @@
 			#size-cells = <0>;
 			interrupts = <8 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x8>;
 		};
 
 		spi3: spi@40053000 {
@@ -171,7 +168,6 @@
 			#size-cells = <0>;
 			interrupts = <9 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x10>;
 		};
 
 		spi4: spi@40054000 {
@@ -184,7 +180,6 @@
 			cs-gpios = <&gpio32_63 22 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
 			clock-frequency = <DT_FREQ_M(24)>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x20>;
 
 			bt_hci_apollo: bt-hci@0 {
 				compatible = "ambiq,bt-hci-spi";
@@ -203,7 +198,6 @@
 			#size-cells = <0>;
 			interrupts = <11 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x40>;
 		};
 
 		spi6: spi@40056000 {
@@ -213,7 +207,6 @@
 			#size-cells = <0>;
 			interrupts = <12 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x80>;
 		};
 
 		spi7: spi@40057000 {
@@ -223,7 +216,6 @@
 			#size-cells = <0>;
 			interrupts = <13 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x100>;
 		};
 
 		i2c0: i2c@40050000 {
@@ -233,7 +225,6 @@
 			#size-cells = <0>;
 			interrupts = <6 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x2>;
 		};
 
 		i2c1: i2c@40051000 {
@@ -243,7 +234,6 @@
 			#size-cells = <0>;
 			interrupts = <7 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x4>;
 		};
 
 		i2c2: i2c@40052000 {
@@ -253,7 +243,6 @@
 			#size-cells = <0>;
 			interrupts = <8 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x8>;
 		};
 
 		i2c3: i2c@40053000 {
@@ -263,7 +252,6 @@
 			#size-cells = <0>;
 			interrupts = <9 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x10>;
 		};
 
 		i2c4: i2c@40054000 {
@@ -273,7 +261,6 @@
 			#size-cells = <0>;
 			interrupts = <10 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x20>;
 		};
 
 		i2c5: i2c@40055000 {
@@ -283,7 +270,6 @@
 			#size-cells = <0>;
 			interrupts = <11 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x40>;
 		};
 
 		i2c6: i2c@40056000 {
@@ -293,7 +279,6 @@
 			#size-cells = <0>;
 			interrupts = <12 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x80>;
 		};
 
 		i2c7: i2c@40057000 {
@@ -303,7 +288,6 @@
 			#size-cells = <0>;
 			interrupts = <13 0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x100>;
 		};
 
 		mspi0: spi@40060000 {
@@ -313,7 +297,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x4000>;
 		};
 
 		mspi1: spi@40061000 {
@@ -323,7 +306,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x8000>;
 		};
 
 		mspi2: spi@40062000 {
@@ -333,7 +315,6 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x10000>;
 		};
 
 		usb: usb@400b0000 {
@@ -343,7 +324,6 @@
 			num-bidir-endpoints = <6>;
 			maximum-speed = "full-speed";
 			status = "disabled";
-			ambiq,pwrcfg = <&pwrcfg 0x4 0x400000>;
 		};
 
 		rtc0: rtc@40004800 {
diff --git a/dts/bindings/adc/ambiq,adc.yaml b/dts/bindings/adc/ambiq,adc.yaml
index 034eadf..73f1381 100644
--- a/dts/bindings/adc/ambiq,adc.yaml
+++ b/dts/bindings/adc/ambiq,adc.yaml
@@ -5,7 +5,7 @@
 
 compatible: "ambiq,adc"
 
-include: [adc-controller.yaml, pinctrl-device.yaml, ambiq-pwrcfg.yaml]
+include: [adc-controller.yaml, pinctrl-device.yaml]
 properties:
   reg:
     required: true
diff --git a/dts/bindings/i2c/ambiq,i2c.yaml b/dts/bindings/i2c/ambiq,i2c.yaml
index 7d7a876..a181cbe 100644
--- a/dts/bindings/i2c/ambiq,i2c.yaml
+++ b/dts/bindings/i2c/ambiq,i2c.yaml
@@ -5,7 +5,7 @@
 
 compatible: "ambiq,i2c"
 
-include: [i2c-controller.yaml, pinctrl-device.yaml, ambiq-pwrcfg.yaml]
+include: [i2c-controller.yaml, pinctrl-device.yaml]
 
 properties:
   reg:
@@ -14,9 +14,6 @@
   interrupts:
     required: true
 
-  ambiq,pwrcfg:
-    required: true
-
   scl-gpios:
     type: phandle-array
     description: |
diff --git a/dts/bindings/mspi/ambiq,mspi-controller.yaml b/dts/bindings/mspi/ambiq,mspi-controller.yaml
index 44b5cad..380bcf4 100644
--- a/dts/bindings/mspi/ambiq,mspi-controller.yaml
+++ b/dts/bindings/mspi/ambiq,mspi-controller.yaml
@@ -5,7 +5,7 @@
 
 compatible: "ambiq,mspi-controller"
 
-include: [mspi-controller.yaml, pinctrl-device.yaml, ambiq-pwrcfg.yaml]
+include: [mspi-controller.yaml, pinctrl-device.yaml]
 
 properties:
   reg:
@@ -14,9 +14,6 @@
   interrupts:
     required: true
 
-  ambiq,pwrcfg:
-    required: true
-
   ce-gpios:
     required: true
 
diff --git a/dts/bindings/spi/ambiq,mspi.yaml b/dts/bindings/spi/ambiq,mspi.yaml
index 0c48f66..0e8caa7 100644
--- a/dts/bindings/spi/ambiq,mspi.yaml
+++ b/dts/bindings/spi/ambiq,mspi.yaml
@@ -5,7 +5,7 @@
 
 compatible: "ambiq,mspi"
 
-include: [spi-controller.yaml, pinctrl-device.yaml, ambiq-pwrcfg.yaml]
+include: [spi-controller.yaml, pinctrl-device.yaml]
 
 properties:
   reg:
@@ -13,6 +13,3 @@
 
   interrupts:
     required: true
-
-  ambiq,pwrcfg:
-    required: true
diff --git a/dts/bindings/spi/ambiq,spi-bleif.yaml b/dts/bindings/spi/ambiq,spi-bleif.yaml
index 2be2ee1..3983c87 100644
--- a/dts/bindings/spi/ambiq,spi-bleif.yaml
+++ b/dts/bindings/spi/ambiq,spi-bleif.yaml
@@ -8,11 +8,8 @@
 
 compatible: "ambiq,spi-bleif"
 
-include: [spi-controller.yaml, pinctrl-device.yaml, ambiq-pwrcfg.yaml]
+include: [spi-controller.yaml, pinctrl-device.yaml]
 
 properties:
   reg:
     required: true
-
-  ambiq,pwrcfg:
-    required: true
diff --git a/dts/bindings/spi/ambiq,spi.yaml b/dts/bindings/spi/ambiq,spi.yaml
index 425c7fc..5c9af55 100644
--- a/dts/bindings/spi/ambiq,spi.yaml
+++ b/dts/bindings/spi/ambiq,spi.yaml
@@ -5,7 +5,7 @@
 
 compatible: "ambiq,spi"
 
-include: [spi-controller.yaml, pinctrl-device.yaml, ambiq-pwrcfg.yaml]
+include: [spi-controller.yaml, pinctrl-device.yaml]
 
 properties:
   reg:
@@ -16,6 +16,3 @@
 
   clock-frequency:
     required: true
-
-  ambiq,pwrcfg:
-    required: true
diff --git a/dts/bindings/spi/ambiq,spid.yaml b/dts/bindings/spi/ambiq,spid.yaml
index d6d4be5..c04db4a 100644
--- a/dts/bindings/spi/ambiq,spid.yaml
+++ b/dts/bindings/spi/ambiq,spid.yaml
@@ -5,7 +5,7 @@
 
 compatible: "ambiq,spid"
 
-include: [spi-controller.yaml, pinctrl-device.yaml, ambiq-pwrcfg.yaml]
+include: [spi-controller.yaml, pinctrl-device.yaml]
 
 properties:
   int-gpios:
diff --git a/dts/bindings/usb/ambiq,usb.yaml b/dts/bindings/usb/ambiq,usb.yaml
index f460e72..ecff0bf 100644
--- a/dts/bindings/usb/ambiq,usb.yaml
+++ b/dts/bindings/usb/ambiq,usb.yaml
@@ -5,7 +5,7 @@
 
 compatible: "ambiq,usb"
 
-include: [usb-ep.yaml, pinctrl-device.yaml, ambiq-pwrcfg.yaml]
+include: [usb-ep.yaml, pinctrl-device.yaml]
 
 properties:
   reg:
@@ -14,9 +14,6 @@
   interrupts:
     required: true
 
-  ambiq,pwrcfg:
-    required: true
-
   vddusb33-gpios:
     type: phandle-array
     description: |