Commit f43d1b38 authored by Matti Vaittinen's avatar Matti Vaittinen Committed by Mark Brown

devicetree: bindings: bd718x7: document HW state related ROHM specific properties

Add ROHM BD71837 / BD71847 specific device tree bindings for
controlling the PMIC shutdown/reset states and voltages for
different HW states. The PMIC was designed to be used with NXP
i.MX8 SoC and it supports SNVS low power state which seems to
be typical for NXP i.MX SoCs. However, when SNVS is used we must
not allow SW to control enabling/disabling those regulators which
are crucial for system to boot as there is a HW limitation which
causes SW controlled regulators to be kept shut down after SNVS
reset.

Allow setting the SNVS to be used as reset target state and allow
marking those regulators which are critical for boot.
Signed-off-by: default avatarMatti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Tested-by: default avatarAngus Ainslie <angus@akkea.ca>
Reviewed-by: default avatarAngus Ainslie <angus@akkea.ca>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent e3233d7f
...@@ -23,6 +23,20 @@ Required properties: ...@@ -23,6 +23,20 @@ Required properties:
Optional properties: Optional properties:
- clock-output-names : Should contain name for output clock. - clock-output-names : Should contain name for output clock.
- rohm,reset-snvs-powered : Transfer BD718x7 to SNVS state at reset.
The BD718x7 supports two different HW states as reset target states. States
are called as SNVS and READY. At READY state all the PMIC power outputs go
down and OTP is reload. At the SNVS state all other logic and external
devices apart from the SNVS power domain are shut off. Please refer to NXP
i.MX8 documentation for further information regarding SNVS state. When a
reset is done via SNVS state the PMIC OTP data is not reload. This causes
power outputs that have been under SW control to stay down when reset has
switched power state to SNVS. If reset is done via READY state the power
outputs will be returned to HW control by OTP loading. Thus the reset
target state is set to READY by default. If SNVS state is used the boot
crucial regulators must have the regulator-always-on and regulator-boot-on
properties set in regulator node.
Example: Example:
...@@ -43,6 +57,7 @@ Example: ...@@ -43,6 +57,7 @@ Example:
#clock-cells = <0>; #clock-cells = <0>;
clocks = <&osc 0>; clocks = <&osc 0>;
clock-output-names = "bd71837-32k-out"; clock-output-names = "bd71837-32k-out";
rohm,reset-snvs-powered;
regulators { regulators {
buck1: BUCK1 { buck1: BUCK1 {
...@@ -50,8 +65,10 @@ Example: ...@@ -50,8 +65,10 @@ Example:
regulator-min-microvolt = <700000>; regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>; regulator-max-microvolt = <1300000>;
regulator-boot-on; regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <1250>; regulator-ramp-delay = <1250>;
}; };
// [...]
}; };
}; };
......
...@@ -27,8 +27,38 @@ BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6 ...@@ -27,8 +27,38 @@ BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6
LDO1, LDO2, LDO3, LDO4, LDO5, LDO6 LDO1, LDO2, LDO3, LDO4, LDO5, LDO6
Optional properties: Optional properties:
- rohm,dvs-run-voltage : PMIC default "RUN" state voltage in uV.
See below table for bucks which support this.
- rohm,dvs-idle-voltage : PMIC default "IDLE" state voltage in uV.
See below table for bucks which support this.
- rohm,dvs-suspend-voltage : PMIC default "SUSPEND" state voltage in uV.
See below table for bucks which support this.
- Any optional property defined in bindings/regulator/regulator.txt - Any optional property defined in bindings/regulator/regulator.txt
Supported default DVS states:
BD71837:
buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-voltage
-----------------------------------------------------------------------------
1 | supported | supported | supported
----------------------------------------------------------------------------
2 | supported | supported | not supported
----------------------------------------------------------------------------
3 | supported | not supported | not supported
----------------------------------------------------------------------------
4 | supported | not supported | not supported
----------------------------------------------------------------------------
rest | not supported | not supported | not supported
BD71847:
buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-voltage
-----------------------------------------------------------------------------
1 | supported | supported | supported
----------------------------------------------------------------------------
2 | supported | supported | not supported
----------------------------------------------------------------------------
rest | not supported | not supported | not supported
Example: Example:
regulators { regulators {
buck1: BUCK1 { buck1: BUCK1 {
...@@ -36,7 +66,11 @@ regulators { ...@@ -36,7 +66,11 @@ regulators {
regulator-min-microvolt = <700000>; regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>; regulator-max-microvolt = <1300000>;
regulator-boot-on; regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <1250>; regulator-ramp-delay = <1250>;
rohm,dvs-run-voltage = <900000>;
rohm,dvs-idle-voltage = <850000>;
rohm,dvs-suspend-voltage = <800000>;
}; };
buck2: BUCK2 { buck2: BUCK2 {
regulator-name = "buck2"; regulator-name = "buck2";
...@@ -45,18 +79,22 @@ regulators { ...@@ -45,18 +79,22 @@ regulators {
regulator-boot-on; regulator-boot-on;
regulator-always-on; regulator-always-on;
regulator-ramp-delay = <1250>; regulator-ramp-delay = <1250>;
rohm,dvs-run-voltage = <1000000>;
rohm,dvs-idle-voltage = <900000>;
}; };
buck3: BUCK3 { buck3: BUCK3 {
regulator-name = "buck3"; regulator-name = "buck3";
regulator-min-microvolt = <700000>; regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>; regulator-max-microvolt = <1300000>;
regulator-boot-on; regulator-boot-on;
rohm,dvs-run-voltage = <1000000>;
}; };
buck4: BUCK4 { buck4: BUCK4 {
regulator-name = "buck4"; regulator-name = "buck4";
regulator-min-microvolt = <700000>; regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>; regulator-max-microvolt = <1300000>;
regulator-boot-on; regulator-boot-on;
rohm,dvs-run-voltage = <1000000>;
}; };
buck5: BUCK5 { buck5: BUCK5 {
regulator-name = "buck5"; regulator-name = "buck5";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment