Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for LT8722 #2637

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2023 Analog Devices, Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/adi,lt8722-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices LT8722 Ultracompact Full Bridge Driver

maintainers:
- Ramon Cristopher Calam <[email protected]>

description: |
The Analog Devices LT8722 is a high performance, high efficiency, 15V input,
4A monolithic full bridge DC/DC converter. This converter has 92.5% efficiency
with high power output of 54W for fine control TEC driving applications.

properties:
compatible:
enum:
- adi,lt8722

reg:
maxItems: 1

enable-gpios:
description:
This pin in used together with the ENABLE_REQ bit in the SPIS_COMMAND
register to set the state of LT8722. When both the ENABLE_REQ bit and
the enable GPIO are low, LT8722 is in shutdown mode. When either the
ENABLE_REQ bit or the enable GPIO is high, LT8722 is active and the
internal VCC LDO regulator is enabled. The enable GPIO is active high.
maxItems: 1

switch-enable-gpios:
description:
This pin is used together with the SWEN_REG bit in the SPIS_COMMAND
register to set the PWM switching behavior of LT8722. When both the
SWEN_REG bit and the switch enable GPIO are low, LT8722 PWM switching
is disabled. When both the SWEN_REG bit and the switch enable GPIO are
high, LT8722 PWM switching is enabled. The switch enable GPIO is active
high.
maxItems: 1

spi-max-frequency:
maximum: 10000000

adi,uv-clamp-microvolt:
description: Maximum negative output voltage clamp in microvolts.
enum: [
-20000000,
-18750000,
-17500000,
-16250000,
-15000000,
-13750000,
-12500000,
-11250000,
-10000000,
-8750000,
-7500000,
-6250000,
-5000000,
-3750000,
-2500000,
-1250000
]
default: -20000000

adi,ov-clamp-microvolt:
description: Maximum positive output voltage clamp in microvolts.
enum: [
1250000,
2500000,
3750000,
5000000,
6250000,
7500000,
8750000,
10000000,
11250000,
12500000,
13750000,
15000000,
16250000,
17500000,
18750000,
20000000
]
default: 20000000

adi,ilimn-microamp:
description: Maximum negative output current limit in microamps.
minimum: -6786000
maximum: -637440
default: -6786000

adi,ilimp-microamp:
description: Maximum positive output current limit in microamps.
minimum: 637440
maximum: 6800000
default: 6800000

adi,switch-frequency-hz:
description: PWM switch frequency.
enum: [500000, 1000000, 1500000, 2000000, 2500000, 3000000]
default: 500000

adi,switch-frequency-adjust:
description: PWM switch frequency adjustment.
enum: [0%, 15%, -15%]
default: 0%

adi,duty-cycle-range:
description: PWM duty cycle.
enum: [20%-80%, 15%-85%, 10%-90%]
default: 20%-80%

adi,vcc-vreg-millivolt:
description: VCC LCO regulation voltage in millivolts.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [3100, 3400]
default: 3400

adi,peak-inductor-current-milliamp:
description: Typical peak inductor current in milliamps.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [252, 594, 936, 1278, 1620, 1962, 2304, 2646]
default: 1620

adi,power-limit-milliwatt:
description: Linear power stage MOSFET power limit in milliwatts.
enum: [0, 2000, 3000, 3500]
default: 0

required:
- compatible
- reg
- enable-gpios
- switch-enable-gpios

allOf:
- $ref: regulator.yaml#
- $ref: /schemas/spi/spi-peripheral-props.yaml#

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/gpio/gpio.h>
spi {
#address-cells = <1>;
#size-cells = <0>;

regulator@0 {
compatible = "adi,lt8722";
reg = <0>;
enable-gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
switch-enable-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
spi-max-frequency = <10000000>;
spi-bits-per-word = <8>;

adi,uv-clamp-microvolt = <(-20000000)>;
adi,ov-clamp-microvolt = <20000000>;
adi,ilimn-microamp = <(-6786000)>;
adi,ilimp-microamp = <6800000>;
adi,switch-frequency-hz = <500000>;
adi,switch-frequency-adjust = "0%";
adi,duty-cycle-range = "20%-80%";
adi,vcc-vreg-millivolt = <3400>;
adi,peak-inductor-current-milliamp = <1620>;
adi,power-limit-milliwatt = <0>;

regulator-min-microvolt = <(-20000000)>;
regulator-max-microvolt = <20000000>;
regulator-soft-start;
};
};
1 change: 1 addition & 0 deletions Kconfig.adi
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ config KERNEL_ALL_ADI_DRIVERS
imply RTC_DRV_MAX31335
imply REGULATOR_MAX77503
imply REGULATOR_MAX77857
imply REGULATOR_LT8722

source "drivers/clk/Kconfig.adi"
source "drivers/hwmon/Kconfig.adi"
Expand Down
10 changes: 10 additions & 0 deletions drivers/regulator/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,16 @@ config REGULATOR_LP8788
help
This driver supports LP8788 voltage regulator chip.

config REGULATOR_LT8722
tristate "LT8722 ultracompact full bridge driver with SPI"
depends on SPI && OF
help
This driver controls an Analog Devices LT8722 ultracompact 4A, 15V,
full bridge driver with SPI interface.

Say M here if you want to include support for the regulator as a
module.

config REGULATOR_LTC3589
tristate "LTC3589 8-output voltage regulator"
depends on I2C
Expand Down
1 change: 1 addition & 0 deletions drivers/regulator/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ obj-$(CONFIG_REGULATOR_LP87565) += lp87565-regulator.o
obj-$(CONFIG_REGULATOR_LP8788) += lp8788-buck.o
obj-$(CONFIG_REGULATOR_LP8788) += lp8788-ldo.o
obj-$(CONFIG_REGULATOR_LP8755) += lp8755.o
obj-$(CONFIG_REGULATOR_LT8722) += lt8722-regulator.o
obj-$(CONFIG_REGULATOR_LTC3589) += ltc3589.o
obj-$(CONFIG_REGULATOR_LTC3676) += ltc3676.o
obj-$(CONFIG_REGULATOR_MAX14577) += max14577-regulator.o
Expand Down
Loading