Add documentation for devicetree bindings for ADP5055. The device consists of 3 buck regulators able to connect to high input voltages of up to 18V with no preregulators. Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@xxxxxxxxxx> --- .../bindings/regulator/adi,adp5055-regulator.yaml | 214 +++++++++++++++++++++ MAINTAINERS | 6 + 2 files changed, 220 insertions(+) diff --git a/Documentation/devicetree/bindings/regulator/adi,adp5055-regulator.yaml b/Documentation/devicetree/bindings/regulator/adi,adp5055-regulator.yaml new file mode 100644 index 0000000000000000000000000000000000000000..52cebfd48b3c4cf4ecf16b660c204c38c94e0eec --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/adi,adp5055-regulator.yaml @@ -0,0 +1,214 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/adi,adp5055-regulator.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices ADP5055 Triple Buck Regulator + +maintainers: + - Alexis Czezar Torreno <alexisczezar.torreno@xxxxxxxxxx> + +description: | + The ADP5055 combines three high performance buck regulators. + The device enables direct connection to high input voltages + up to 18 V with no preregulators. + https://www.analog.com/media/en/technical-documentation/data-sheets/adp5055.pdf + +properties: + compatible: + enum: + - adi,adp5055 + + reg: + enum: + - 0x70 + - 0x71 + + adi,tset-us: + description: + Setting time used by the device. This is changed via soldering + specific resistor values on the CFG2 pin. + enum: [2600, 20800] + default: 2600 + + adi,hw-en-array-gpios: + description: + Asserted during driver probe. Each array entry acts as the + hardware enable for channels 0-2. Should be marked 0 for active + low. Requires all three channels to be initialized. Not adding + the property turns the system to a software only enable mode. + minItems: 3 + maxItems: 3 + + adi,ocp-blanking: + description: + If present, the over current protection + blanking (OCP) for all channels is on. + type: boolean + + adi,delay-power-good: + description: + Configures delay timer of the power good (PWRGD) pin. + Delay is based on Tset which can be 2.6 ms or 20.8 ms. + type: boolean + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +patternProperties: + "^channel@([0-2])$": + type: object + additionalProperties: false + + properties: + reg: + description: The channel number representing each buck converter. + maximum: 2 + + adi,power-saving-mode: + description: + If present, enables power saving mode for + individual channels. + type: boolean + + adi,output-discharge-function: + description: + If present, enable output discharge functionality + for individual channels. + type: boolean + + adi,disable-delay-us: + description: + Configures the disable delay for each channel. Dependent on Tset. + enum: [0, 5200, 10400, 15600, 20800, 26000, 31200, 36400] + default: 0 + + adi,enable-delay-us: + description: + Configures the disable delay for each channel. Dependent on Tset. + enum: [0, 2600, 5200, 7800, 10400, 13000, 15600, 18200] + default: 0 + + adi,dvs-limit-upper-microvolt: + description: + Configure the allowable upper side limit of the + voltage output of each channel in microvolt. + Voltages are in 12mV steps, value is autoadjusted. + Vout_high = Vout + DVS_upper_limit. + minimum: 12000 + maximum: 192000 + default: 192000 + + adi,dvs-limit-lower-microvolt: + description: + Configure the allowable lower side limit of the + voltage output of each channel in microvolt. + Voltages are in 12mV steps, value is autoadjusted. + Vout_low = Vout + DVS_lower_limit. + minimum: -190500 + maximum: -10500 + default: -190500 + + adi,fast-transient: + description: + Configures the fast transient sensitivity for each channel. + "none" - No fast transient. + "3G_1.5%" - 1.5% window with 3*350uA/V + "5G_1.5%" - 1.5% window with 5*350uA/V + "5G_2.5%" - 2.5% window with 5*350uA/V + enum: [none, 3G_1.5%, 5G_1.5%, 5G_2.5%] + default: 5G_2.5% + + adi,mask-power-good: + description: + If present, masks individual channels to the external + PWRGD hardware pin. + type: boolean + + required: + - reg + +allOf: + - $ref: regulator.yaml# + + - if: + properties: + adi,tset-us: + contains: + enum: + - 20800 + then: + properties: + adi,disable-delay-us: + enum: [0, 41600, 83200, 124800, 166400, 208000, 249600, 291200] + + adi,enable-delay-us: + enum: [0, 20800, 41600, 62400, 83200, 104000, 124800, 145600] + +required: + - compatible + - reg + +unevaluatedProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + regulator@70 { + compatible = "adi,adp5055"; + reg = <0x70>; + #address-cells = <1>; + #size-cells = <0>; + + adi,tset-us = <2600>; + adi,hw-en-array-gpios = <&gpio 17 0>, + <&gpio 18 0>, + <&gpio 19 0>; + + adi,ocp-blanking; + adi,delay-power-good; + + channel@0 { + reg = <0>; + adi,power-saving-mode; + adi,output-discharge-function; + adi,disable-delay-us = <0>; + adi,enable-delay-us = <0>; + adi,dvs-limit-upper-microvolt = <192000>; + adi,dvs-limit-lower-microvolt = <(-190500)>; + adi,fast-transient = "5G_2.5%"; + adi,mask-power-good; + }; + + channel@1 { + reg = <1>; + adi,power-saving-mode; + adi,output-discharge-function; + adi,disable-delay-us = <0>; + adi,enable-delay-us = <0>; + adi,dvs-limit-upper-microvolt = <192000>; + adi,dvs-limit-lower-microvolt = <(-190500)>; + adi,fast-transient = "5G_2.5%"; + adi,mask-power-good; + }; + + channel@2 { + reg = <2>; + adi,power-saving-mode; + adi,output-discharge-function; + adi,disable-delay-us = <0>; + adi,enable-delay-us = <0>; + adi,dvs-limit-upper-microvolt = <192000>; + adi,dvs-limit-lower-microvolt = <(-190500)>; + adi,fast-transient = "5G_2.5%"; + adi,mask-power-good; + }; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 896a307fa06545e2861abe46ea7029f9b4d3628e..b2ec43f84d84765c319d8403fb5650afa273db83 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1525,6 +1525,12 @@ W: https://ez.analog.com/linux-software-drivers F: Documentation/devicetree/bindings/iio/filter/adi,admv8818.yaml F: drivers/iio/filter/admv8818.c +ANALOG DEVICES INC ADP5055 DRIVER +M: Alexis Czezar Torreno <alexisczezar.torreno@xxxxxxxxxx> +S: Supported +W: https://ez.analog.com/linux-software-drivers +F: Documentation/devicetree/bindings/regulator/adi,adp5055-regulator.yaml + ANALOG DEVICES INC ADP5061 DRIVER M: Michael Hennerich <Michael.Hennerich@xxxxxxxxxx> L: linux-pm@xxxxxxxxxxxxxxx -- 2.34.1