From: Max Krummenacher <max.oss.09@gmail.com> To: max.krummenacher@toradex.com Cc: Ulf Hansson <ulf.hansson@linaro.org>, linux-pm@vger.kernel.org, Francesco Dolcini <francesco.dolcini@toradex.com>, Mark Brown <broonie@kernel.org>, "Rafael J . Wysocki" <rafael@kernel.org>, Kevin Hilman <khilman@kernel.org>, Andrejs Cainikovs <andrejs.cainikovs@toradex.com>, Fabio Estevam <festevam@gmail.com>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Marcel Ziswiler <marcel.ziswiler@toradex.com>, NXP Linux Team <linux-imx@nxp.com>, Pengutronix Kernel Team <kernel@pengutronix.de>, Rob Herring <robh+dt@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de>, Shawn Guo <shawnguo@kernel.org>, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH v1 5/5] ARM64: verdin-imx8mm: use regulator power domain to model sleep-moci Date: Thu, 9 Jun 2022 17:08:51 +0200 [thread overview] Message-ID: <20220609150851.23084-6-max.oss.09@gmail.com> (raw) In-Reply-To: <20220609150851.23084-1-max.oss.09@gmail.com> From: Max Krummenacher <max.krummenacher@toradex.com> The Verdin CTRL_SLEEP_MOCI# pin signals the carrier board that the module is in sleep and it may switch off unneeded power. Control this pin with a regulator power domain controller which uses a fixed regulator with a gpio enable. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> --- .../dts/freescale/imx8mm-verdin-dahlia.dtsi | 1 + .../boot/dts/freescale/imx8mm-verdin-dev.dtsi | 2 ++ .../boot/dts/freescale/imx8mm-verdin.dtsi | 35 +++++++++++++------ 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi index c2a5c2f7b204..03416dc593d8 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi @@ -92,6 +92,7 @@ /* Verdin PCIE_1 */ &pcie0 { + power-domains = <&pd_sleep_moci>; status = "okay"; }; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi index 73cc3fafa018..f887b907fdde 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi @@ -50,6 +50,7 @@ /* Audio Codec */ nau8822_1a: audio-codec@1a { compatible = "nuvoton,nau8822"; + power-domains = <&pd_sleep_moci>; reg = <0x1a>; }; }; @@ -59,6 +60,7 @@ linux,rs485-enabled-at-boot-time; rs485-rts-active-low; rs485-rx-during-tx; + power-domains = <&pd_sleep_moci>; }; /* Limit frequency on dev board due to long traces and bad signal integrity */ diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi index eafa88d980b3..b5daa8f83bef 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi @@ -53,6 +53,14 @@ }; }; + pd_sleep_moci: power-domain-sleep-moci { + compatible = "regulator-pm-pd"; + label = "pd_sleep_moci"; + power-domains = <&pgc_pcie>; + power-supply = <®_sleep_moci>; + #power-domain-cells = <0>; + }; + /* Carrier Board Supplies */ reg_1p8v: regulator-1p8v { compatible = "regulator-fixed"; @@ -90,6 +98,19 @@ startup-delay-us = <200000>; }; + reg_sleep_moci: regulator-sleep-moci { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>; + off-on-delay = <2000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; + regulator-max-microvolt = <1800000>; + regulator-min-microvolt = <1800000>; + regulator-name = "CTRL_SLEEP_MOCI#"; + startup-delay-us = <2000>; + }; + reg_usb_otg1_vbus: regulator-usb-otg1 { compatible = "regulator-fixed"; enable-active-high; @@ -109,6 +130,7 @@ gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_reg_usb2_en>; + power-domains = <&pd_sleep_moci>; regulator-max-microvolt = <5000000>; regulator-min-microvolt = <5000000>; regulator-name = "USB_2_EN"; @@ -198,6 +220,7 @@ interrupts-extended = <&gpio1 6 IRQ_TYPE_EDGE_FALLING>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_can1_int>; + power-domains = <&pd_sleep_moci>; reg = <0>; spi-max-frequency = <8500000>; }; @@ -305,16 +328,6 @@ "SODIMM_212", "SODIMM_151", "SODIMM_153"; - - ctrl-sleep-moci-hog { - gpio-hog; - /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ - gpios = <1 GPIO_ACTIVE_HIGH>; - line-name = "CTRL_SLEEP_MOCI#"; - output-high; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; - }; }; /* On-module I2C */ @@ -560,6 +573,7 @@ enable-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_10_dsi>; + power-domains = <&pd_sleep_moci>; reg = <0x2c>; status = "disabled"; }; @@ -576,6 +590,7 @@ compatible = "lontium,lt8912b"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_10_dsi>, <&pinctrl_pwm_3_dsi_hpd_gpio>; + power-domains = <&pd_sleep_moci>; reg = <0x48>; /* Verdin GPIO_9_DSI (LT8912 INT, SODIMM 17, unused) */ /* Verdin GPIO_10_DSI (SODIMM 21) */ -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: Max Krummenacher <max.oss.09@gmail.com> To: max.krummenacher@toradex.com Cc: Ulf Hansson <ulf.hansson@linaro.org>, linux-pm@vger.kernel.org, Francesco Dolcini <francesco.dolcini@toradex.com>, Mark Brown <broonie@kernel.org>, "Rafael J . Wysocki" <rafael@kernel.org>, Kevin Hilman <khilman@kernel.org>, Andrejs Cainikovs <andrejs.cainikovs@toradex.com>, Fabio Estevam <festevam@gmail.com>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Marcel Ziswiler <marcel.ziswiler@toradex.com>, NXP Linux Team <linux-imx@nxp.com>, Pengutronix Kernel Team <kernel@pengutronix.de>, Rob Herring <robh+dt@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de>, Shawn Guo <shawnguo@kernel.org>, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH v1 5/5] ARM64: verdin-imx8mm: use regulator power domain to model sleep-moci Date: Thu, 9 Jun 2022 17:08:51 +0200 [thread overview] Message-ID: <20220609150851.23084-6-max.oss.09@gmail.com> (raw) In-Reply-To: <20220609150851.23084-1-max.oss.09@gmail.com> From: Max Krummenacher <max.krummenacher@toradex.com> The Verdin CTRL_SLEEP_MOCI# pin signals the carrier board that the module is in sleep and it may switch off unneeded power. Control this pin with a regulator power domain controller which uses a fixed regulator with a gpio enable. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> --- .../dts/freescale/imx8mm-verdin-dahlia.dtsi | 1 + .../boot/dts/freescale/imx8mm-verdin-dev.dtsi | 2 ++ .../boot/dts/freescale/imx8mm-verdin.dtsi | 35 +++++++++++++------ 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi index c2a5c2f7b204..03416dc593d8 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi @@ -92,6 +92,7 @@ /* Verdin PCIE_1 */ &pcie0 { + power-domains = <&pd_sleep_moci>; status = "okay"; }; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi index 73cc3fafa018..f887b907fdde 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi @@ -50,6 +50,7 @@ /* Audio Codec */ nau8822_1a: audio-codec@1a { compatible = "nuvoton,nau8822"; + power-domains = <&pd_sleep_moci>; reg = <0x1a>; }; }; @@ -59,6 +60,7 @@ linux,rs485-enabled-at-boot-time; rs485-rts-active-low; rs485-rx-during-tx; + power-domains = <&pd_sleep_moci>; }; /* Limit frequency on dev board due to long traces and bad signal integrity */ diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi index eafa88d980b3..b5daa8f83bef 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi @@ -53,6 +53,14 @@ }; }; + pd_sleep_moci: power-domain-sleep-moci { + compatible = "regulator-pm-pd"; + label = "pd_sleep_moci"; + power-domains = <&pgc_pcie>; + power-supply = <®_sleep_moci>; + #power-domain-cells = <0>; + }; + /* Carrier Board Supplies */ reg_1p8v: regulator-1p8v { compatible = "regulator-fixed"; @@ -90,6 +98,19 @@ startup-delay-us = <200000>; }; + reg_sleep_moci: regulator-sleep-moci { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>; + off-on-delay = <2000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; + regulator-max-microvolt = <1800000>; + regulator-min-microvolt = <1800000>; + regulator-name = "CTRL_SLEEP_MOCI#"; + startup-delay-us = <2000>; + }; + reg_usb_otg1_vbus: regulator-usb-otg1 { compatible = "regulator-fixed"; enable-active-high; @@ -109,6 +130,7 @@ gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_reg_usb2_en>; + power-domains = <&pd_sleep_moci>; regulator-max-microvolt = <5000000>; regulator-min-microvolt = <5000000>; regulator-name = "USB_2_EN"; @@ -198,6 +220,7 @@ interrupts-extended = <&gpio1 6 IRQ_TYPE_EDGE_FALLING>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_can1_int>; + power-domains = <&pd_sleep_moci>; reg = <0>; spi-max-frequency = <8500000>; }; @@ -305,16 +328,6 @@ "SODIMM_212", "SODIMM_151", "SODIMM_153"; - - ctrl-sleep-moci-hog { - gpio-hog; - /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ - gpios = <1 GPIO_ACTIVE_HIGH>; - line-name = "CTRL_SLEEP_MOCI#"; - output-high; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; - }; }; /* On-module I2C */ @@ -560,6 +573,7 @@ enable-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_10_dsi>; + power-domains = <&pd_sleep_moci>; reg = <0x2c>; status = "disabled"; }; @@ -576,6 +590,7 @@ compatible = "lontium,lt8912b"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_10_dsi>, <&pinctrl_pwm_3_dsi_hpd_gpio>; + power-domains = <&pd_sleep_moci>; reg = <0x48>; /* Verdin GPIO_9_DSI (LT8912 INT, SODIMM 17, unused) */ /* Verdin GPIO_10_DSI (SODIMM 21) */ -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-06-09 15:10 UTC|newest] Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-06-09 15:08 [PATCH v1 0/5] power: domain: Add driver for a PM domain provider which controls Max Krummenacher 2022-06-09 15:08 ` Max Krummenacher 2022-06-09 15:08 ` [PATCH v1 1/5] dt-bindings: power: Add bindings for a power domain controlled by a regulator Max Krummenacher 2022-06-10 2:57 ` Rob Herring 2022-06-15 15:19 ` Max Krummenacher 2022-06-15 17:16 ` Krzysztof Kozlowski 2022-06-14 7:23 ` Geert Uytterhoeven 2022-06-15 15:18 ` Max Krummenacher 2022-06-09 15:08 ` [PATCH v1 2/5] pm: add regulator power domain controller Max Krummenacher 2022-06-09 15:08 ` [PATCH v1 3/5] MAINTAINERS: add REGULATOR POWER DOMAIN Max Krummenacher 2022-06-09 15:08 ` [RFC PATCH v1 4/5] arm64: defconfig: Enable generic power domain controller controlling a regulator Max Krummenacher 2022-06-09 15:08 ` Max Krummenacher 2022-06-09 15:08 ` Max Krummenacher [this message] 2022-06-09 15:08 ` [RFC PATCH v1 5/5] ARM64: verdin-imx8mm: use regulator power domain to model sleep-moci Max Krummenacher 2022-06-14 7:29 ` Geert Uytterhoeven 2022-06-14 7:29 ` Geert Uytterhoeven 2022-06-15 15:32 ` Max Krummenacher 2022-06-15 15:32 ` Max Krummenacher 2022-06-13 19:15 ` [PATCH v1 0/5] power: domain: Add driver for a PM domain provider which controls Rob Herring 2022-06-13 19:15 ` Rob Herring 2022-06-14 7:22 ` Geert Uytterhoeven 2022-06-14 7:22 ` Geert Uytterhoeven 2022-06-15 16:10 ` Max Krummenacher 2022-06-15 16:10 ` Max Krummenacher 2022-06-15 17:15 ` Krzysztof Kozlowski 2022-06-15 17:15 ` Krzysztof Kozlowski 2022-06-15 17:31 ` Marcel Ziswiler 2022-06-15 17:31 ` Marcel Ziswiler 2022-06-15 17:37 ` Krzysztof Kozlowski 2022-06-15 17:37 ` Krzysztof Kozlowski 2022-06-15 18:13 ` Marcel Ziswiler 2022-06-15 18:13 ` Marcel Ziswiler 2022-06-15 18:48 ` Dmitry Baryshkov 2022-06-15 18:48 ` Dmitry Baryshkov 2022-06-15 20:48 ` Krzysztof Kozlowski 2022-06-15 20:48 ` Krzysztof Kozlowski 2022-06-15 18:24 ` Robin Murphy 2022-06-15 18:24 ` Robin Murphy 2022-06-15 19:12 ` Mark Brown 2022-06-15 19:12 ` Mark Brown 2022-06-15 21:14 ` Ulf Hansson 2022-06-15 21:14 ` Ulf Hansson 2022-06-16 12:50 ` Linus Walleij 2022-06-16 12:50 ` Linus Walleij 2022-06-23 16:14 ` Max Krummenacher 2022-06-23 16:14 ` Max Krummenacher 2022-07-13 11:43 ` Ulf Hansson 2022-07-13 11:43 ` Ulf Hansson 2022-07-18 9:49 ` Linus Walleij 2022-07-18 9:49 ` Linus Walleij 2022-07-26 16:03 ` Francesco Dolcini 2022-07-26 16:03 ` Francesco Dolcini 2022-07-28 9:37 ` Ulf Hansson 2022-07-28 9:37 ` Ulf Hansson 2022-07-28 11:21 ` Francesco Dolcini 2022-07-28 11:21 ` Francesco Dolcini 2022-08-26 13:50 ` Ulf Hansson 2022-08-26 13:50 ` Ulf Hansson 2022-09-09 14:22 ` Francesco Dolcini 2022-09-09 14:22 ` Francesco Dolcini 2022-09-22 13:49 ` Ulf Hansson 2022-09-22 13:49 ` Ulf Hansson 2022-09-23 18:00 ` Krzysztof Kozlowski 2022-09-23 18:00 ` Krzysztof Kozlowski 2022-09-26 10:12 ` Ulf Hansson 2022-09-26 10:12 ` Ulf Hansson 2022-09-26 15:11 ` Krzysztof Kozlowski 2022-09-26 15:11 ` Krzysztof Kozlowski 2022-09-27 9:48 ` Ulf Hansson 2022-09-27 9:48 ` Ulf Hansson 2022-09-27 12:49 ` Geert Uytterhoeven 2022-09-27 12:49 ` Geert Uytterhoeven 2022-09-27 14:26 ` Krzysztof Kozlowski 2022-09-27 14:26 ` Krzysztof Kozlowski 2022-09-28 7:59 ` Ulf Hansson 2022-09-28 7:59 ` Ulf Hansson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220609150851.23084-6-max.oss.09@gmail.com \ --to=max.oss.09@gmail.com \ --cc=andrejs.cainikovs@toradex.com \ --cc=broonie@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=festevam@gmail.com \ --cc=francesco.dolcini@toradex.com \ --cc=kernel@pengutronix.de \ --cc=khilman@kernel.org \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-imx@nxp.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=marcel.ziswiler@toradex.com \ --cc=max.krummenacher@toradex.com \ --cc=rafael@kernel.org \ --cc=robh+dt@kernel.org \ --cc=s.hauer@pengutronix.de \ --cc=shawnguo@kernel.org \ --cc=ulf.hansson@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.