dt-bindings: mfd: Add MAX5970 and MAX5978
Subsystems (2)
PATCH v12 1/2 dt-bindings: mfd: Add MAX5970 and MAX5978
From: Marcello Sylvester Bauer <[email protected]>
The MAX597x is a hot swap controller with configurable fault protection. It also has 10bit ADC for current & voltage measurements.
...
Changes in V12:
- Update title
--- .../bindings/mfd/maxim,max5970.yaml | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/maxim,max5970.yaml
Documentation/devicetree/bindings/mfd/maxim,max5970.yaml new file +151 -0
@@ -0,0 +1,151 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/maxim,max5970.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Regulator for MAX5970 Smart Switch from Maxim Integrated + +maintainers: + - Patrick Rudolph <[email protected]> + +description: | + The smart switch provides no output regulation, but independent fault protection + and voltage and current sensing. + Programming is done through I2C bus. + + Datasheets: + https://datasheets.maximintegrated.com/en/ds/MAX5970.pdf + https://datasheets.maximintegrated.com/en/ds/MAX5978.pdf + +properties: + compatible: + enum: + - maxim,max5970 + - maxim,max5978 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + leds: + type: object + description: + Properties for four LEDS. + + properties: + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + patternProperties: + "^led@[0-3]$": + $ref: /schemas/leds/common.yaml# + type: object + + additionalProperties: false + + vss1-supply: + description: Supply of the first channel. + + vss2-supply: + description: Supply of the second channel. + + regulators: + type: object + description: + Properties for both hot swap control/switch. + + patternProperties: + "^sw[0-1]$": + $ref: /schemas/regulator/regulator.yaml# + type: object + properties: + shunt-resistor-micro-ohms: + description: | + The value of current sense resistor in microohms. + + required: + - shunt-resistor-micro-ohms + + unevaluatedProperties: false + + additionalProperties: false + +required: + - compatible + - reg + - regulators + - vss1-supply + +allOf: + - if: + properties: + compatible: + enum: + - maxim,max5970 + then: + required: + - vss2-supply + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + regulator@3a { + compatible = "maxim,max5978"; + reg = <0x3a>; + vss1-supply = <&p3v3>; + + regulators { + sw0_ref_0: sw0 { + shunt-resistor-micro-ohms = <12000>; + }; + }; + + leds { + #address-cells = <1>; + #size-cells = <0>; + led@0 { + reg = <0>; + label = "led0"; + default-state = "on"; + }; + led@1 { + reg = <1>; + label = "led1"; + default-state = "on"; + }; + }; + }; + }; + + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + regulator@3a { + compatible = "maxim,max5970"; + reg = <0x3a>; + vss1-supply = <&p3v3>; + vss2-supply = <&p5v>; + + regulators { + sw0_ref_1: sw0 { + shunt-resistor-micro-ohms = <12000>; + }; + sw1_ref_1: sw1 { + shunt-resistor-micro-ohms = <10000>; + }; + }; + }; + }; +...
base-commit: e3ba37699d8ffef2aae8b672c3b87fc1c045eaca
Signature · 1 line
2.39.1
PATCH v12 2/2 mfd: max597x: Add support for MAX5970 and MAX5978
From: Patrick Rudolph <[email protected]>
Implement a regulator driver with IRQ support for fault management. Written against documentation [1] and [2] and tested on real hardware.
Every channel has it's own regulator supply nammed 'vss1-supply' and 'vss2-supply'. The regulator supply is used to determine the output voltage, as the smart switch provides no output regulation. The driver requires the 'shunt-resistor-micro-ohms' to be present in the devicetree to properly calculate current related values.
You must specify compatible devictree layout:
regulator@3a {
reg = <0x3a>;
vss1-supply = <&p3v3>;
compatible = "maxim,max5978";
...
regulators {
sw0_ref: SW0 {
regulator-compatible = "SW0";
shunt-resistor-micro-ohms = <12000>;
...
}
}
}1: https://datasheets.maximintegrated.com/en/ds/MAX5970.pdf
2: https://datasheets.maximintegrated.com/en/ds/MAX5978.pdf
...
Changes in V12:
- Use simple_mfd_i2c driver and remove previous implementation.
- Remove newline
- Use _MFD_MAX597X_H in header file
- Successfull build need following patch from regulator:
https://lore.kernel.org/r/[email protected]
https://lore.kernel.org/r/[email protected]
--- drivers/mfd/Kconfig | 10 ++++ drivers/mfd/simple-mfd-i2c.c | 13 +++++ include/linux/mfd/max597x.h | 96 ++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 include/linux/mfd/max597x.h
drivers/mfd/Kconfig +10 -0
@@ -266,6 +266,16 @@ config MFD_MADERA_SPI Support for the Cirrus Logic Madera platform audio SoC core functionality controlled via SPI. +config MFD_MAX597X + tristate "Maxim 597x power switch and monitor" + depends on (I2C && OF) + select MFD_SIMPLE_MFD_I2C + help + This driver controls a Maxim 5970/5978 switch via I2C bus. + The MAX5970/5978 is a smart switch with no output regulation, but + fault protection and voltage and current monitoring capabilities. + Also it supports upto 4 indication leds. + config MFD_CS47L15 bool "Cirrus Logic CS47L15" select PINCTRL_CS47L15
drivers/mfd/simple-mfd-i2c.c +13 -0
@@ -72,9 +72,22 @@ static const struct simple_mfd_data silergy_sy7636a = { .mfd_cell_size = ARRAY_SIZE(sy7636a_cells), }; +static const struct mfd_cell max597x_cells[] = { + { .name ="max597x-regulator" , }, + { .name ="max597x-iio" , }, + { .name ="max597x-led" , }, +}; + +static const struct simple_mfd_data maxim_max597x = { + .mfd_cell = max597x_cells, + .mfd_cell_size =ARRAY_SIZE (max597x_cells), +}; +static const struct of_device_id simple_mfd_i2c_of_match[] = { { .compatible ="kontron,sl28cpld" }, { .compatible ="silergy,sy7636a" , .data = &silergy_sy7636a}, + { .compatible ="maxim,max5970" , .data = &maxim_max597x}, + { .compatible ="maxim,max5978" , .data = &maxim_max597x}, {} };MODULE_DEVICE_TABLE (of, simple_mfd_i2c_of_match);
include/linux/mfd/max597x.h new file +96 -0
96 lines not on this page · raw message
Signature · 1 line
2.39.1
Re: [PATCH v12 2/2] mfd: max597x: Add support for MAX5970 and MAX5978
Quoted 43 lines · Naresh Solanki
From: Patrick Rudolph <[email protected]>
Implement a regulator driver with IRQ support for fault management. Written against documentation [1] and [2] and tested on real hardware.
Every channel has it's own regulator supply nammed 'vss1-supply' and 'vss2-supply'. The regulator supply is used to determine the output voltage, as the smart switch provides no output regulation. The driver requires the 'shunt-resistor-micro-ohms' to be present in the devicetree to properly calculate current related values.
You must specify compatible devictree layout:
regulator@3a { reg = <0x3a>; vss1-supply = <&p3v3>; compatible = "maxim,max5978"; ... regulators { sw0_ref: SW0 { regulator-compatible = "SW0"; shunt-resistor-micro-ohms = <12000>; ... } } }1: https://datasheets.maximintegrated.com/en/ds/MAX5970.pdf
2: https://datasheets.maximintegrated.com/en/ds/MAX5978.pdfSigned-off-by Patrick Rudolph <[email protected]>Signed-off-by Marcello Sylvester Bauer <[email protected]>Signed-off-by Naresh Solanki <[email protected]>...
Changes in V12:
- Usesimple_mfd_i2cdriver and remove previous implementation.
- Remove newline
- Use_MFD_MAX597X_Hin header file
- Successfull build need following patch from regulator:
https://lore.kernel.org/r/[email protected]
https://lore.kernel.org/r/[email protected]
Quoted 6 lines
--- drivers/mfd/Kconfig | 10 ++++ drivers/mfd/simple-mfd-i2c.c | 13 +++++ include/linux/mfd/max597x.h | 96 ++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 include/linux/mfd/max597x.h
Applied, thanks
--
Lee Jones [李琼斯]
Quoted 11 lines · Naresh Solanki
From: Marcello Sylvester Bauer <[email protected]>
The MAX597x is a hot swap controller with configurable fault protection. It also has 10bit ADC for current & voltage measurements.
Signed-off-by Marcello Sylvester Bauer <[email protected]>Co-developed-by Patrick Rudolph <[email protected]>Signed-off-by Patrick Rudolph <[email protected]>Co-developed-by Naresh Solanki <[email protected]>Signed-off-by Naresh Solanki <[email protected]>Reviewed-by Krzysztof Kozlowski <[email protected]>
Quoted 7 lines
...
Changes in V12:
- Update title--- .../bindings/mfd/maxim,max5970.yaml | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/maxim,max5970.yaml
Applied, thanks
--
Lee Jones [李琼斯]