diff mbox series

dt-bindings: regulators: Document Tegra regulator coupling in json-schema

Message ID 20211206154032.227938-1-thierry.reding@gmail.com
State New
Headers show
Series dt-bindings: regulators: Document Tegra regulator coupling in json-schema | expand

Commit Message

Thierry Reding Dec. 6, 2021, 3:40 p.m. UTC
From: Thierry Reding <treding@nvidia.com>

Move the NVIDIA Tegra regulator coupling bindings from the free-form
text format into the existing json-schema file for regulators.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 .../nvidia,tegra-regulators-coupling.txt      | 65 -------------------
 .../bindings/regulator/regulator.yaml         | 22 +++++++
 2 files changed, 22 insertions(+), 65 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/regulator/nvidia,tegra-regulators-coupling.txt

Comments

Dmitry Osipenko Dec. 6, 2021, 3:52 p.m. UTC | #1
06.12.2021 18:40, Thierry Reding пишет:
> +  nvidia,tegra-core-regulator:
> +    $ref: "/schemas/types.yaml#/definitions/flag"
> +    description: if present, designates the regulator as the "CORE domain" voltage regulator
> +
> +  nvidia,tegra-rtc-regulator:
> +    $ref: "/schemas/types.yaml#/definitions/flag"
> +    description: if present, designates the regulator as the "RTC domain" voltage regulator
> +
> +  nvidia,tegra-cpu-regulator:
> +    $ref: "/schemas/types.yaml#/definitions/flag"
> +    description: if present, designates the regulator as the "CPU domain" voltage regulator

What is the difference between "boolean" and
"/schemas/types.yaml#/definitions/flag"?
Rob Herring (Arm) Dec. 6, 2021, 8:40 p.m. UTC | #2
On Mon, Dec 06, 2021 at 04:40:32PM +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Move the NVIDIA Tegra regulator coupling bindings from the free-form
> text format into the existing json-schema file for regulators.

Do we need these properties for every single regulator? This should be 
its own schema file and then referenced where it is needed.

> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  .../nvidia,tegra-regulators-coupling.txt      | 65 -------------------
>  .../bindings/regulator/regulator.yaml         | 22 +++++++
>  2 files changed, 22 insertions(+), 65 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/regulator/nvidia,tegra-regulators-coupling.txt
Dmitry Osipenko Dec. 6, 2021, 9:55 p.m. UTC | #3
06.12.2021 23:40, Rob Herring пишет:
> On Mon, Dec 06, 2021 at 04:40:32PM +0100, Thierry Reding wrote:
>> From: Thierry Reding <treding@nvidia.com>
>>
>> Move the NVIDIA Tegra regulator coupling bindings from the free-form
>> text format into the existing json-schema file for regulators.
> 
> Do we need these properties for every single regulator? This should be 
> its own schema file and then referenced where it is needed.

These properties are SoC-specific, they describe how regulators are
integrated into SoC's power subsystem. Regulators themselves are
SoC-independent, i.e. PMIC's vendor and model don't matter for SoC.
Rob Herring (Arm) Dec. 7, 2021, 3:25 p.m. UTC | #4
On Mon, Dec 6, 2021 at 3:55 PM Dmitry Osipenko <digetx@gmail.com> wrote:
>
> 06.12.2021 23:40, Rob Herring пишет:
> > On Mon, Dec 06, 2021 at 04:40:32PM +0100, Thierry Reding wrote:
> >> From: Thierry Reding <treding@nvidia.com>
> >>
> >> Move the NVIDIA Tegra regulator coupling bindings from the free-form
> >> text format into the existing json-schema file for regulators.
> >
> > Do we need these properties for every single regulator? This should be
> > its own schema file and then referenced where it is needed.
>
> These properties are SoC-specific, they describe how regulators are
> integrated into SoC's power subsystem. Regulators themselves are
> SoC-independent, i.e. PMIC's vendor and model don't matter for SoC.

Yes, but in reality the PMIC and SoC are typically somewhat coupled.
How many PMICs do you need these properties for?

Rob
Dmitry Osipenko Dec. 7, 2021, 3:49 p.m. UTC | #5
07.12.2021 18:25, Rob Herring пишет:
> On Mon, Dec 6, 2021 at 3:55 PM Dmitry Osipenko <digetx@gmail.com> wrote:
>>
>> 06.12.2021 23:40, Rob Herring пишет:
>>> On Mon, Dec 06, 2021 at 04:40:32PM +0100, Thierry Reding wrote:
>>>> From: Thierry Reding <treding@nvidia.com>
>>>>
>>>> Move the NVIDIA Tegra regulator coupling bindings from the free-form
>>>> text format into the existing json-schema file for regulators.
>>>
>>> Do we need these properties for every single regulator? This should be
>>> its own schema file and then referenced where it is needed.
>>
>> These properties are SoC-specific, they describe how regulators are
>> integrated into SoC's power subsystem. Regulators themselves are
>> SoC-independent, i.e. PMIC's vendor and model don't matter for SoC.
> 
> Yes, but in reality the PMIC and SoC are typically somewhat coupled.
> How many PMICs do you need these properties for?

Three PMICs. Realistically we shouldn't have more such PMICs in upstream
in foreseeable future.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/regulator/nvidia,tegra-regulators-coupling.txt b/Documentation/devicetree/bindings/regulator/nvidia,tegra-regulators-coupling.txt
deleted file mode 100644
index 4bf2dbf7c6cc..000000000000
--- a/Documentation/devicetree/bindings/regulator/nvidia,tegra-regulators-coupling.txt
+++ /dev/null
@@ -1,65 +0,0 @@ 
-NVIDIA Tegra Regulators Coupling
-================================
-
-NVIDIA Tegra SoC's have a mandatory voltage-coupling between regulators.
-Thus on Tegra20 there are 3 coupled regulators and on NVIDIA Tegra30
-there are 2.
-
-Tegra20 voltage coupling
-------------------------
-
-On Tegra20 SoC's there are 3 coupled regulators: CORE, RTC and CPU.
-The CORE and RTC voltages shall be in a range of 170mV from each other
-and they both shall be higher than the CPU voltage by at least 120mV.
-
-Tegra30 voltage coupling
-------------------------
-
-On Tegra30 SoC's there are 2 coupled regulators: CORE and CPU. The CORE
-and CPU voltages shall be in a range of 300mV from each other and CORE
-voltage shall be higher than the CPU by N mV, where N depends on the CPU
-voltage.
-
-Required properties:
-- nvidia,tegra-core-regulator: Boolean property that designates regulator
-  as the "Core domain" voltage regulator.
-- nvidia,tegra-rtc-regulator: Boolean property that designates regulator
-  as the "RTC domain" voltage regulator.
-- nvidia,tegra-cpu-regulator: Boolean property that designates regulator
-  as the "CPU domain" voltage regulator.
-
-Example:
-
-	pmic {
-		regulators {
-			core_vdd_reg: core {
-				regulator-name = "vdd_core";
-				regulator-min-microvolt = <950000>;
-				regulator-max-microvolt = <1300000>;
-				regulator-coupled-with = <&rtc_vdd_reg &cpu_vdd_reg>;
-				regulator-coupled-max-spread = <170000 550000>;
-
-				nvidia,tegra-core-regulator;
-			};
-
-			rtc_vdd_reg: rtc {
-				regulator-name = "vdd_rtc";
-				regulator-min-microvolt = <950000>;
-				regulator-max-microvolt = <1300000>;
-				regulator-coupled-with = <&core_vdd_reg &cpu_vdd_reg>;
-				regulator-coupled-max-spread = <170000 550000>;
-
-				nvidia,tegra-rtc-regulator;
-			};
-
-			cpu_vdd_reg: cpu {
-				regulator-name = "vdd_cpu";
-				regulator-min-microvolt = <750000>;
-				regulator-max-microvolt = <1125000>;
-				regulator-coupled-with = <&core_vdd_reg &rtc_vdd_reg>;
-				regulator-coupled-max-spread = <550000 550000>;
-
-				nvidia,tegra-cpu-regulator;
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/regulator/regulator.yaml b/Documentation/devicetree/bindings/regulator/regulator.yaml
index ed560ee8714e..14f269f1e877 100644
--- a/Documentation/devicetree/bindings/regulator/regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/regulator.yaml
@@ -224,6 +224,28 @@  properties:
     description: Maximum difference between current and target voltages
       that can be changed safely in a single step.
 
+  # NVIDIA Tegra SoC's have a mandatory voltage-coupling between regulators. Thus on Tegra20 there
+  # are 3 coupled regulators and on NVIDIA Tegra30 there are 2.
+  #
+  # The 3 coupled regulators on Tegra20 are: CORE, RTC and CPU. The CORE and RTC voltages shall be
+  # in a range of 170 mV of each other and they both shall be higher than the CPU voltage by at
+  # least 120 mV.
+  #
+  # The 2 coupled regulators on Tegra30 are: CORE and CPU. The CORE and CPU voltages shall be in
+  # a range of 300 mV of each other and CORE voltage shall be higher than the CPU by N mV, where
+  # N depends on the CPU voltage.
+  nvidia,tegra-core-regulator:
+    $ref: "/schemas/types.yaml#/definitions/flag"
+    description: if present, designates the regulator as the "CORE domain" voltage regulator
+
+  nvidia,tegra-rtc-regulator:
+    $ref: "/schemas/types.yaml#/definitions/flag"
+    description: if present, designates the regulator as the "RTC domain" voltage regulator
+
+  nvidia,tegra-cpu-regulator:
+    $ref: "/schemas/types.yaml#/definitions/flag"
+    description: if present, designates the regulator as the "CPU domain" voltage regulator
+
 patternProperties:
   ".*-supply$":
     description: Input supply phandle(s) for this node