dt-bindings: hwmon: Document the LTC4283 Swap Controller

The LTC4283 is a negative voltage hot swap controller that drives an
external N-channel MOSFET to allow a board to be safely inserted and
removed from a live backplane.

Special note for the "adi,vpower-drns-enable" property. It allows to choose
between the attenuated MOSFET drain voltage or the attenuated input
voltage at the RTNS pin (effectively choosing between input or output
power). This is a system level decision not really intended to change at
runtime and hence is being added as a Firmware property.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20260502-ltc4283-support-v13-1-1c206542e652@analog.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Nuno Sá 2026-05-02 10:56:52 +01:00 committed by Guenter Roeck
parent d647ebf5a5
commit 7ab12d5ab4
2 changed files with 278 additions and 0 deletions

View File

@ -0,0 +1,272 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,ltc4283.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: LTC4283 Negative Voltage Hot Swap Controller
maintainers:
- Nuno Sá <nuno.sa@analog.com>
description: |
The LTC4283 negative voltage hot swap controller drives an external N-channel
MOSFET to allow a board to be safely inserted and removed from a live
backplane.
https://www.analog.com/media/en/technical-documentation/data-sheets/ltc4283.pdf
properties:
compatible:
enum:
- adi,ltc4283
reg:
maxItems: 1
adi,rsense-nano-ohms:
description: Value of the sense resistor.
adi,current-limit-sense-microvolt:
description:
The current limit sense voltage of the chip is adjustable between
15mV and 30mV in 1mV steps. This effectively limits the current
on the load.
minimum: 15000
maximum: 30000
default: 15000
adi,current-limit-foldback-factor:
description:
Specifies the foldback factor for the current limit. The current limit
can be reduced (folded back) to one of four preset levels. The value
represents the percentage of the current limit sense voltage to use
during foldback. A value of 100 means no foldback.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [10, 20, 50, 100]
default: 100
adi,cooling-delay-ms:
description:
Cooling time to apply after an overcurrent fault, FET bad or
external fault.
enum: [512, 1002, 2005, 4100, 8190, 16400, 32800, 65600]
default: 512
adi,fet-bad-timer-delay-ms:
description:
FET bad timer delay. After a FET bad status condition is detected,
this timer is started. If the condition persists for the
specified time, the FET is turned off and a fault is logged.
enum: [256, 512, 1002, 2005]
default: 256
adi,power-good-reset-on-fet:
description:
If set, resets the power good status when the MOSFET is turned off.
Otherwise, it resets when a low output voltage is detected.
type: boolean
adi,fet-turn-off-disable:
description:
If set, the MOSFET is not turned off when a FET fault is detected.
type: boolean
adi,tmr-pull-down-disable:
description: Disables 2uA pull-down current on the TMR pin.
type: boolean
adi,dvdt-inrush-control-disable:
description:
Disables dV/dt inrush control during startup. In dV/dt mode, the inrush
current is limited by controlling a constant output voltage ramp rate.
When disabled, the inrush control mechanism is active current limiting.
type: boolean
adi,fault-log-enable:
description:
If set, enables logging fault registers and ADC data into EEPROM upon a
fault.
type: boolean
adi,vpower-drns-enable:
description:
If set, enables the attenuated MOSFET drain voltage to be monitored. This
effectively means that the MOSFET power is monitored. If not set, the
attenuated input voltage (and hence input power) is monitored.
type: boolean
adi,external-fault-fet-off-enable:
description: Turns MOSFET off following an external fault.
type: boolean
adi,undervoltage-retry-disable:
description: Do not retry to turn on the MOSFET after an undervoltage fault.
type: boolean
adi,overvoltage-retry-disable:
description: Do not retry to turn on the MOSFET after an overvoltage fault.
type: boolean
adi,external-fault-retry-enable:
description: Retry to turn on the MOSFET after an external fault.
type: boolean
adi,overcurrent-retries:
description: Configures auto-retry following an Overcurrent fault.
$ref: /schemas/types.yaml#/definitions/string
enum: [latch-off, "1", "7", unlimited]
default: latch-off
adi,fet-bad-retries:
description:
Configures auto-retry following a FET bad fault and a consequent MOSFET
turn off.
$ref: /schemas/types.yaml#/definitions/string
enum: [latch-off, "1", "7", unlimited]
default: latch-off
adi,pgio1-func:
description: Configures the function of the PGIO1 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_power_good, power_good, gpio]
default: inverted_power_good
adi,pgio2-func:
description: Configures the function of the PGIO2 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_power_good, power_good, gpio, active_current_limiting]
default: inverted_power_good
adi,pgio3-func:
description: Configures the function of the PGIO3 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_power_good_input, power_good_input, gpio]
default: inverted_power_good_input
adi,pgio4-func:
description: Configures the function of the PGIO4 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_external_fault, external_fault, gpio]
default: inverted_external_fault
adi,gpio-on-adio1:
description: If set, the ADIO1 pin is used as a GPIO.
type: boolean
adi,gpio-on-adio2:
description: If set, the ADIO2 pin is used as a GPIO.
type: boolean
adi,gpio-on-adio3:
description: If set, the ADIO3 pin is used as a GPIO.
type: boolean
adi,gpio-on-adio4:
description: If set, the ADIO4 pin is used as a GPIO.
type: boolean
gpio-controller: true
'#gpio-cells':
const: 2
dependencies:
adi,gpio-on-adio1:
- gpio-controller
- '#gpio-cells'
adi,gpio-on-adio2:
- gpio-controller
- '#gpio-cells'
adi,gpio-on-adio3:
- gpio-controller
- '#gpio-cells'
adi,gpio-on-adio4:
- gpio-controller
- '#gpio-cells'
adi,external-fault-retry-enable:
- adi,pgio4-func
adi,external-fault-fet-off-enable:
- adi,pgio4-func
required:
- compatible
- reg
- adi,rsense-nano-ohms
allOf:
- if:
properties:
adi,pgio1-func:
const: gpio
required:
- adi,pgio1-func
then:
required:
- gpio-controller
- '#gpio-cells'
- if:
properties:
adi,pgio2-func:
const: gpio
required:
- adi,pgio2-func
then:
required:
- gpio-controller
- '#gpio-cells'
- if:
properties:
adi,pgio3-func:
const: gpio
required:
- adi,pgio3-func
then:
required:
- gpio-controller
- '#gpio-cells'
- if:
properties:
adi,pgio4-func:
const: gpio
required:
- adi,pgio4-func
then:
properties:
adi,external-fault-retry-enable: false
adi,external-fault-fet-off-enable: false
required:
- gpio-controller
- '#gpio-cells'
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
swap-controller@15 {
compatible = "adi,ltc4283";
reg = <0x15>;
adi,rsense-nano-ohms = <500>;
adi,current-limit-sense-microvolt = <25000>;
adi,current-limit-foldback-factor = <10>;
adi,cooling-delay-ms = <8190>;
adi,fet-bad-timer-delay-ms = <512>;
adi,external-fault-fet-off-enable;
adi,pgio4-func = "external_fault";
adi,gpio-on-adio1;
adi,pgio1-func = "gpio";
gpio-controller;
#gpio-cells = <2>;
};
};
...

View File

@ -15252,6 +15252,12 @@ F: Documentation/devicetree/bindings/hwmon/adi,ltc4282.yaml
F: Documentation/hwmon/ltc4282.rst
F: drivers/hwmon/ltc4282.c
LTC4283 HARDWARE MONITOR AND GPIO DRIVER
M: Nuno Sá <nuno.sa@analog.com>
L: linux-hwmon@vger.kernel.org
S: Supported
F: Documentation/devicetree/bindings/hwmon/adi,ltc4283.yaml
LTC4286 HARDWARE MONITOR DRIVER
M: Delphine CC Chiu <Delphine_CC_Chiu@Wiwynn.com>
L: linux-hwmon@vger.kernel.org