Re: [PATCH 1/1] regulator: fixed: add system pm routines for pinctrl

From: Peter Chen
Date: Thu Mar 12 2020 - 09:00:43 EST


On 20-03-12 11:47:12, Mark Brown wrote:
> On Thu, Mar 12, 2020 at 06:38:04PM +0800, Peter Chen wrote:
> > At some systems, the pinctrl setting will be lost and needs to
> > set as "sleep" state to save power consumption after system
> > enters suspend. So, we need to configure pinctrl as "sleep" state
> > when system enters suspend, and set it as "default" state after
> > system resume. In this way, the pinctrl value can be recovered
> > as "default" state after resuming.
>
> Which pins exactly is this controlling? I would not expect a fixed
> voltage regulator to have pinctrl support, this feels like it's papering
> over some other issue.

Sorry, I forget sending dts patch. We use fixed gpio regulator to control
USB VBus.

grep -rn reg_usb_otg_vbus arch/arm/boot/dts/*

arch/arm/boot/dts/imx53-m53evk.dts:82: reg_usb_otg_vbus: regulator@4 {
arch/arm/boot/dts/imx53-m53evk.dts:367: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx53-ppd.dts:95: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx53-ppd.dts:650: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6dl-riotboard.dts:69: reg_usb_otg_vbus: regulator-usbotgvbus {
arch/arm/boot/dts/imx6dl-riotboard.dts:339: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6dl-yapp4-common.dtsi:83: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6dl-yapp4-common.dtsi:571: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6-logicpd-baseboard.dtsi:72: reg_usb_otg_vbus: regulator-otg-vbus {
arch/arm/boot/dts/imx6-logicpd-baseboard.dtsi:351: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-apalis-eval.dts:237:&reg_usb_otg_vbus {
arch/arm/boot/dts/imx6q-apalis-eval.dts:279: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-apalis-ixora.dts:240:&reg_usb_otg_vbus {
arch/arm/boot/dts/imx6q-apalis-ixora.dts:282: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts:236:&reg_usb_otg_vbus {
arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts:278: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-arm2.dts:34: reg_usb_otg_vbus: regulator@1 {
arch/arm/boot/dts/imx6q-arm2.dts:188: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-ba16.dtsi:122: reg_usb_otg_vbus: regulator-usbotgvbus {
arch/arm/boot/dts/imx6q-ba16.dtsi:378: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-cm-fx6.dts:93: reg_usb_otg_vbus: usb_otg_vbus {
arch/arm/boot/dts/imx6q-cm-fx6.dts:471: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-dhcom-som.dtsi:26: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6q-dhcom-som.dtsi:442: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-apalis.dtsi:81: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-apf6dev.dtsi:102: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-apf6dev.dtsi:250: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi:16: reg_usb_otg_vbus: regulator@1 {
arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi:175: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw51xx.dtsi:70: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-gw51xx.dtsi:312: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi:93: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi:392: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw53xx.dtsi:93: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-gw53xx.dtsi:383: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi:102: reg_usb_otg_vbus: regulator@3 {
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi:451: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw551x.dtsi:98: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-gw551x.dtsi:402: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw553x.dtsi:104: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-gw553x.dtsi:352: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw560x.dtsi:177: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-gw560x.dtsi:485: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw5903.dtsi:124: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-gw5903.dtsi:390: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw5904.dtsi:132: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-gw5904.dtsi:423: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-gw5907.dtsi:70: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-gw5907.dtsi:238: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-icore.dtsi:64: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-icore.dtsi:271: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi:71: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi:246: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi:41: reg_usb_otg_vbus: regulator@2 {
arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi:545: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi:50: reg_usb_otg_vbus: regulator@3 {
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi:790: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi:193: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi:688: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi:43: reg_usb_otg_vbus: regulator@2 {
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi:638: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi:22: reg_usb_otg_vbus: regulator@0 {
arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi:423: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-rex.dtsi:41: reg_usb_otg_vbus: regulator@2 {
arch/arm/boot/dts/imx6qdl-rex.dtsi:345: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi:96: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi:830: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi:80: reg_usb_otg_vbus: regulator@2 {
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi:729: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-sabresd.dtsi:20: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-sabresd.dtsi:780: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-ts4900.dtsi:75: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-ts4900.dtsi:454: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-ts7970.dtsi:116: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6qdl-ts7970.dtsi:549: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-var-dart.dtsi:457: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6qdl-wandboard.dtsi:76: reg_usb_otg_vbus: regulator-usbotgvbus {
arch/arm/boot/dts/imx6qdl-wandboard.dtsi:338: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-dms-ba16.dts:12: reg_usb_otg_vbus: regulator-usbotgvbus {
arch/arm/boot/dts/imx6q-dms-ba16.dts:122: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-evi.dts:70: reg_usb_otg_vbus: regulator-usbotgvbus {
arch/arm/boot/dts/imx6q-evi.dts:226: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-gw5400-a.dts:102: reg_usb_otg_vbus: regulator@3 {
arch/arm/boot/dts/imx6q-gw5400-a.dts:369: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-marsboard.dts:62: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6q-marsboard.dts:205: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-novena.dts:180: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6q-novena.dts:492: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-pistachio.dts:88: reg_usb_otg_vbus: regulator-usb_vbus {
arch/arm/boot/dts/imx6q-pistachio.dts:623: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6q-var-dt6customboard.dts:109: reg_usb_otg_vbus: regulator-usbotgvbus {
arch/arm/boot/dts/imx6q-var-dt6customboard.dts:223: vbus-supply = <&reg_usb_otg_vbus>;
arch/arm/boot/dts/imx6ul-pico.dtsi:54: reg_usb_otg_vbus: regulator-usb-otg-vbus {
arch/arm/boot/dts/imx6ul-pico.dtsi:224: vbus-supply = <&reg_usb_otg_vbus>;

--

Thanks,
Peter Chen