drivers: spi: Add power management Smartbond SPI

Code adds pm action function that stores SPI configuration
before PD_COM is allowed to be turned off.

PM_DEVICE_RUNTIME scheme is also supported

Signed-off-by: Jerzy Kasenberg <jerzy.kasenberg@codecoup.pl>
This commit is contained in:
Jerzy Kasenberg 2024-05-20 10:49:00 +02:00 committed by Henrik Brix Andersen
commit 71ed2e4b02
5 changed files with 151 additions and 7 deletions

View file

@ -52,6 +52,14 @@
};
};
/omit-if-no-ref/ spi_sleep: spi_sleep {
group1 {
pinmux = <SMARTBOND_PINMUX(GPIO, 0, 21)>,
<SMARTBOND_PINMUX(GPIO, 0, 24)>,
<SMARTBOND_PINMUX(GPIO, 0, 26)>;
};
};
spi_controller: spi_controller {
group1 {
pinmux = < SMARTBOND_PINMUX(SPI_CLK, 0, 21) >,
@ -64,6 +72,14 @@
};
};
/omit-if-no-ref/ spi2_sleep: spi2_sleep {
group1 {
pinmux = <SMARTBOND_PINMUX(GPIO, 1, 3)>,
<SMARTBOND_PINMUX(GPIO, 1, 4)>,
<SMARTBOND_PINMUX(GPIO, 1, 5)>;
};
};
spi2_controller: spi2_controller {
group1 {
pinmux = < SMARTBOND_PINMUX(SPI2_CLK, 1, 3) >,

View file

@ -201,13 +201,15 @@ zephyr_udc0: &usbd {
&spi {
status = "okay";
pinctrl-0 = <&spi_controller>;
pinctrl-names = "default";
pinctrl-1 = <&spi_sleep>;
pinctrl-names = "default", "sleep";
};
&spi2 {
status = "okay";
pinctrl-0 = <&spi2_controller>;
pinctrl-names = "default";
pinctrl-1 = <&spi2_sleep>;
pinctrl-names = "default", "sleep";
};
mikrobus_1_i2c: &i2c {};

View file

@ -79,6 +79,14 @@
};
};
/omit-if-no-ref/ spi_sleep: spi_sleep {
group1 {
pinmux = <SMARTBOND_PINMUX(GPIO, 0, 21)>,
<SMARTBOND_PINMUX(GPIO, 0, 24)>,
<SMARTBOND_PINMUX(GPIO, 0, 26)>;
};
};
spi_controller: spi_controller {
group1 {
pinmux = <SMARTBOND_PINMUX(SPI_CLK, 0, 21)>,
@ -91,6 +99,14 @@
};
};
/omit-if-no-ref/ spi2_sleep: spi2_sleep {
group1 {
pinmux = <SMARTBOND_PINMUX(GPIO, 1, 3)>,
<SMARTBOND_PINMUX(GPIO, 1, 4)>,
<SMARTBOND_PINMUX(GPIO, 1, 5)>;
};
};
spi2_controller: spi2_controller {
group1 {
pinmux = < SMARTBOND_PINMUX(SPI2_CLK, 1, 3) >,

View file

@ -167,11 +167,13 @@ zephyr_udc0: &usbd {
&spi {
status = "okay";
pinctrl-0 = <&spi_controller>;
pinctrl-names = "default";
pinctrl-1 = <&spi_sleep>;
pinctrl-names = "default", "sleep";
};
&spi2 {
status = "okay";
pinctrl-0 = <&spi2_controller>;
pinctrl-names = "default";
pinctrl-1 = <&spi2_sleep>;
pinctrl-names = "default", "sleep";
};