mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 22:02:02 +00:00
regulator: dt-bindings: Convert pwm-regulator to DT schema
Convert the pwm-regulator binding to DT schema format. Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20220606184310.1057797-1-robh@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
5f7202d827
commit
a9369fd316
2 changed files with 126 additions and 92 deletions
|
@ -1,92 +0,0 @@
|
|||
Bindings for the Generic PWM Regulator
|
||||
======================================
|
||||
|
||||
Currently supports 2 modes of operation:
|
||||
|
||||
Voltage Table: When in this mode, a voltage table (See below) of
|
||||
predefined voltage <=> duty-cycle values must be
|
||||
provided via DT. Limitations are that the regulator can
|
||||
only operate at the voltages supplied in the table.
|
||||
Intermediary duty-cycle values which would normally
|
||||
allow finer grained voltage selection are ignored and
|
||||
rendered useless. Although more control is given to
|
||||
the user if the assumptions made in continuous-voltage
|
||||
mode do not reign true.
|
||||
|
||||
Continuous Voltage: This mode uses the regulator's maximum and minimum
|
||||
supplied voltages specified in the
|
||||
regulator-{min,max}-microvolt properties to calculate
|
||||
appropriate duty-cycle values. This allows for a much
|
||||
more fine grained solution when compared with
|
||||
voltage-table mode above. This solution does make an
|
||||
assumption that a %50 duty-cycle value will cause the
|
||||
regulator voltage to run at half way between the
|
||||
supplied max_uV and min_uV values.
|
||||
|
||||
Required properties:
|
||||
--------------------
|
||||
- compatible: Should be "pwm-regulator"
|
||||
|
||||
- pwms: PWM specification (See: ../pwm/pwm.txt)
|
||||
|
||||
Only required for Voltage Table Mode:
|
||||
- voltage-table: Voltage and Duty-Cycle table consisting of 2 cells
|
||||
First cell is voltage in microvolts (uV)
|
||||
Second cell is duty-cycle in percent (%)
|
||||
|
||||
Optional properties for Continuous mode:
|
||||
- pwm-dutycycle-unit: Integer value encoding the duty cycle unit. If not
|
||||
defined, <100> is assumed, meaning that
|
||||
pwm-dutycycle-range contains values expressed in
|
||||
percent.
|
||||
|
||||
- pwm-dutycycle-range: Should contain 2 entries. The first entry is encoding
|
||||
the dutycycle for regulator-min-microvolt and the
|
||||
second one the dutycycle for regulator-max-microvolt.
|
||||
Duty cycle values are expressed in pwm-dutycycle-unit.
|
||||
If not defined, <0 100> is assumed.
|
||||
|
||||
NB: To be clear, if voltage-table is provided, then the device will be used
|
||||
in Voltage Table Mode. If no voltage-table is provided, then the device will
|
||||
be used in Continuous Voltage Mode.
|
||||
|
||||
Optional properties:
|
||||
--------------------
|
||||
- enable-gpios: GPIO to use to enable/disable the regulator
|
||||
|
||||
Any property defined as part of the core regulator binding can also be used.
|
||||
(See: ../regulator/regulator.txt)
|
||||
|
||||
Continuous Voltage With Enable GPIO Example:
|
||||
pwm_regulator {
|
||||
compatible = "pwm-regulator";
|
||||
pwms = <&pwm1 0 8448 0>;
|
||||
enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
|
||||
regulator-min-microvolt = <1016000>;
|
||||
regulator-max-microvolt = <1114000>;
|
||||
regulator-name = "vdd_logic";
|
||||
/* unit == per-mille */
|
||||
pwm-dutycycle-unit = <1000>;
|
||||
/*
|
||||
* Inverted PWM logic, and the duty cycle range is limited
|
||||
* to 30%-70%.
|
||||
*/
|
||||
pwm-dutycycle-range = <700 300>; /* */
|
||||
};
|
||||
|
||||
Voltage Table Example:
|
||||
pwm_regulator {
|
||||
compatible = "pwm-regulator";
|
||||
pwms = <&pwm1 0 8448 0>;
|
||||
regulator-min-microvolt = <1016000>;
|
||||
regulator-max-microvolt = <1114000>;
|
||||
regulator-name = "vdd_logic";
|
||||
|
||||
/* Voltage Duty-Cycle */
|
||||
voltage-table = <1114000 0>,
|
||||
<1095000 10>,
|
||||
<1076000 20>,
|
||||
<1056000 30>,
|
||||
<1036000 40>,
|
||||
<1016000 50>;
|
||||
};
|
126
Documentation/devicetree/bindings/regulator/pwm-regulator.yaml
Normal file
126
Documentation/devicetree/bindings/regulator/pwm-regulator.yaml
Normal file
|
@ -0,0 +1,126 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/regulator/pwm-regulator.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Bindings for the Generic PWM Regulator
|
||||
|
||||
maintainers:
|
||||
- Brian Norris <briannorris@chromium.org>
|
||||
- Lee Jones <lee.jones@linaro.org>
|
||||
- Alexandre Courbot <acourbot@nvidia.com>
|
||||
|
||||
description: |
|
||||
Currently supports 2 modes of operation:
|
||||
|
||||
Voltage Table:
|
||||
When in this mode, a voltage table (See below) of predefined voltage <=>
|
||||
duty-cycle values must be provided via DT. Limitations are that the
|
||||
regulator can only operate at the voltages supplied in the table.
|
||||
Intermediary duty-cycle values which would normally allow finer grained
|
||||
voltage selection are ignored and rendered useless. Although more control
|
||||
is given to the user if the assumptions made in continuous-voltage mode do
|
||||
not reign true.
|
||||
|
||||
Continuous Voltage:
|
||||
This mode uses the regulator's maximum and minimum supplied voltages
|
||||
specified in the regulator-{min,max}-microvolt properties to calculate
|
||||
appropriate duty-cycle values. This allows for a much more fine grained
|
||||
solution when compared with voltage-table mode above. This solution does
|
||||
make an assumption that a %50 duty-cycle value will cause the regulator
|
||||
voltage to run at half way between the supplied max_uV and min_uV values.
|
||||
|
||||
If voltage-table is provided, then the device will be used in Voltage Table
|
||||
Mode. If no voltage-table is provided, then the device will be used in
|
||||
Continuous Voltage Mode.
|
||||
|
||||
allOf:
|
||||
- $ref: regulator.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: pwm-regulator
|
||||
|
||||
pwms:
|
||||
maxItems: 1
|
||||
|
||||
voltage-table:
|
||||
description: Voltage and Duty-Cycle table.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
||||
items:
|
||||
items:
|
||||
- description: voltage in microvolts (uV)
|
||||
- description: duty-cycle in percent (%)
|
||||
|
||||
enable-gpios:
|
||||
description: Regulator enable GPIO
|
||||
maxItems: 1
|
||||
|
||||
# Optional properties for Continuous mode:
|
||||
pwm-dutycycle-unit:
|
||||
description:
|
||||
Integer value encoding the duty cycle unit. If not
|
||||
defined, <100> is assumed, meaning that
|
||||
pwm-dutycycle-range contains values expressed in
|
||||
percent.
|
||||
default: 100
|
||||
|
||||
pwm-dutycycle-range:
|
||||
description:
|
||||
Should contain 2 entries. The first entry is encoding
|
||||
the dutycycle for regulator-min-microvolt and the
|
||||
second one the dutycycle for regulator-max-microvolt.
|
||||
Duty cycle values are expressed in pwm-dutycycle-unit.
|
||||
If not defined, <0 100> is assumed.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
items:
|
||||
- description: the dutycycle for regulator-min-microvolt
|
||||
- description: the dutycycle for regulator-max-microvolt
|
||||
default: [ 0 100 ]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- pwms
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
// Continuous Voltage With Enable GPIO Example:
|
||||
regulator {
|
||||
compatible = "pwm-regulator";
|
||||
pwms = <&pwm1 0 8448 0>;
|
||||
enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
|
||||
regulator-min-microvolt = <1016000>;
|
||||
regulator-max-microvolt = <1114000>;
|
||||
regulator-name = "vdd_logic";
|
||||
/* unit == per-mille */
|
||||
pwm-dutycycle-unit = <1000>;
|
||||
/*
|
||||
* Inverted PWM logic, and the duty cycle range is limited
|
||||
* to 30%-70%.
|
||||
*/
|
||||
pwm-dutycycle-range = <700 300>; /* */
|
||||
};
|
||||
|
||||
- |
|
||||
// Voltage Table Example:
|
||||
regulator {
|
||||
compatible = "pwm-regulator";
|
||||
pwms = <&pwm1 0 8448 0>;
|
||||
regulator-min-microvolt = <1016000>;
|
||||
regulator-max-microvolt = <1114000>;
|
||||
regulator-name = "vdd_logic";
|
||||
|
||||
/* Voltage Duty-Cycle */
|
||||
voltage-table = <1114000 0>,
|
||||
<1095000 10>,
|
||||
<1076000 20>,
|
||||
<1056000 30>,
|
||||
<1036000 40>,
|
||||
<1016000 50>;
|
||||
};
|
||||
...
|
Loading…
Reference in a new issue