mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
Merge tag 'mfd-next-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull MFD updates from Lee Jones:
"Core Frameworks:
- Allow all MFD Cell properties to be filled in dynamically at
runtime
- Skip disabled device nodes and continue to look for subsequent
devices
New Device Support:
- Add support for Lunar Lake-M PCI to Intel LPSS PCI
- Add support for Denverton to Intel ICH LPC
New Functionality:
- Add support for Clocks to Texas Instruments TWL* Core
- Add support for Interrupts to STMicroelectronics STM32 Timers
Fix-ups:
- Convert to new devm-* (managed) power-off API
- Remove superfluous code
- Bunch of Device Tree additions, conversions and adaptions
- Simplify obtaining resources (memory, device data) using unified
API helpers
- Trivial coding-style / spelling type clean-ups
- Constify / staticify changes
- Expand or edit on existing documentation
- Convert some Regmap configurations to use the Maple Tree cache
- Apply new __counted_by() annotation to several data structures
containing flexible arrays
- Replace strncpy() with strscpy()
Bug Fixes:
- Remove double put creating reference imbalances
- Ensure headphone/lineout detection gets set when booting with ACPI"
* tag 'mfd-next-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (73 commits)
mfd: lpc_ich: Mark *_gpio_offsets data with const
spmi: rename spmi device lookup helper
spmi: document spmi_device_from_of() refcounting
dt-bindings: mfd: armltd: Move Arm board syscon's to separate schema
mfd: rk8xx: Add support for RK806 power off
mfd: rk8xx: Add support for standard system-power-controller property
dt-bindings: mfd: rk806: Allow system-power-controller property
dt-bindings: mfd: rk8xx: Deprecate rockchip,system-power-controller
dt-bindings: mfd: max8925: Convert to DT schema format
mfd: Use i2c_get_match_data() in a selection of drivers
mfd: Use device_get_match_data() in a bunch of drivers
mfd: mc13xxx-spi/wm831x-spi: Use spi_get_device_match_data()
mfd: motorola-cpcap: Drop unnecessary of_match_device() call
mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs
mfd: qcom-spmi-pmic: Switch to EXPORT_SYMBOL_GPL()
mfd: qcom-spmi-pmic: Fix revid implementation
mfd: qcom-spmi-pmic: Fix reference leaks in revid helper
mfd: intel-m10-bmc: Change contact for ABI docs
mfd: max8907: Convert to use maple tree register cache
mfd: max77686: Convert to use maple tree register cache
...
This commit is contained in:
@@ -17,7 +17,7 @@ Description: Read only. Returns the firmware version of Intel MAX10
|
||||
What: /sys/bus/.../drivers/intel-m10-bmc/.../mac_address
|
||||
Date: January 2021
|
||||
KernelVersion: 5.12
|
||||
Contact: Russ Weight <russell.h.weight@intel.com>
|
||||
Contact: Peter Colberg <peter.colberg@intel.com>
|
||||
Description: Read only. Returns the first MAC address in a block
|
||||
of sequential MAC addresses assigned to the board
|
||||
that is managed by the Intel MAX10 BMC. It is stored in
|
||||
@@ -28,7 +28,7 @@ Description: Read only. Returns the first MAC address in a block
|
||||
What: /sys/bus/.../drivers/intel-m10-bmc/.../mac_count
|
||||
Date: January 2021
|
||||
KernelVersion: 5.12
|
||||
Contact: Russ Weight <russell.h.weight@intel.com>
|
||||
Contact: Peter Colberg <peter.colberg@intel.com>
|
||||
Description: Read only. Returns the number of sequential MAC
|
||||
addresses assigned to the board managed by the Intel
|
||||
MAX10 BMC. This value is stored in FLASH and is mirrored
|
||||
|
||||
@@ -40,45 +40,6 @@ properties:
|
||||
items:
|
||||
- const: arm,integrator-sp
|
||||
|
||||
core-module@10000000:
|
||||
type: object
|
||||
description: the root node in the Integrator platforms must contain
|
||||
a core module child node. They are always at physical address
|
||||
0x10000000 in all the Integrator variants.
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: arm,core-module-integrator
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
patternProperties:
|
||||
"^syscon@[0-9a-f]+$":
|
||||
description: All Integrator boards must provide a system controller as a
|
||||
node in the root of the device tree.
|
||||
type: object
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- arm,integrator-ap-syscon
|
||||
- arm,integrator-cp-syscon
|
||||
- arm,integrator-sp-syscon
|
||||
- const: syscon
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- core-module@10000000
|
||||
|
||||
@@ -75,43 +75,6 @@ properties:
|
||||
type: object
|
||||
description: All RealView boards must provide a syscon system controller
|
||||
node inside the soc node.
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- const: arm,realview-eb11mp-revb-syscon
|
||||
- const: arm,realview-eb-syscon
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
- items:
|
||||
- const: arm,realview-eb11mp-revc-syscon
|
||||
- const: arm,realview-eb-syscon
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
- items:
|
||||
- const: arm,realview-eb-syscon
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
- items:
|
||||
- const: arm,realview-pb1176-syscon
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
- items:
|
||||
- const: arm,realview-pb11mp-syscon
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
- items:
|
||||
- const: arm,realview-pba8-syscon
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
- items:
|
||||
- const: arm,realview-pbx-syscon
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
@@ -14,6 +14,14 @@ description: |+
|
||||
with various pluggable interface boards, in essence the Versatile PB version
|
||||
is a superset of the Versatile AB version.
|
||||
|
||||
The root node in the Versatile platforms must contain a core module child
|
||||
node. They are always at physical address 0x10000000 in all the Versatile
|
||||
variants.
|
||||
|
||||
When fitted with the IB2 Interface Board, the Versatile AB will present an
|
||||
optional system controller node which controls the extra peripherals on the
|
||||
interface board.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
const: '/'
|
||||
@@ -32,38 +40,6 @@ properties:
|
||||
items:
|
||||
- const: arm,versatile-pb
|
||||
|
||||
core-module@10000000:
|
||||
type: object
|
||||
description: the root node in the Versatile platforms must contain
|
||||
a core module child node. They are always at physical address
|
||||
0x10000000 in all the Versatile variants.
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: arm,core-module-versatile
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
patternProperties:
|
||||
"^syscon@[0-9a-f]+$":
|
||||
type: object
|
||||
description: When fitted with the IB2 Interface Board, the Versatile
|
||||
AB will present an optional system controller node which controls the
|
||||
extra peripherals on the interface board.
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: arm,versatile-ib2-syscon
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- core-module@10000000
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Texas Instruments TWL family (twl4030) pwrbutton module
|
||||
|
||||
This module is part of the TWL4030. For more details about the whole
|
||||
chip see Documentation/devicetree/bindings/mfd/twl-family.txt.
|
||||
chip see Documentation/devicetree/bindings/mfd/ti,twl.yaml.
|
||||
|
||||
This module provides a simple power button event via an Interrupt.
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
88pm860x-backlight bindings
|
||||
|
||||
Optional properties:
|
||||
- maxim,max8925-dual-string: whether support dual string
|
||||
|
||||
Example:
|
||||
|
||||
backlights {
|
||||
maxim,max8925-dual-string = <0>;
|
||||
};
|
||||
@@ -60,7 +60,7 @@ examples:
|
||||
- |
|
||||
|
||||
syscon@10000000 {
|
||||
compatible = "arm,realview-pb1176-syscon", "syscon";
|
||||
compatible = "arm,realview-pb1176-syscon", "syscon", "simple-mfd";
|
||||
reg = <0x10000000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/arm,dev-platforms-syscon.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Arm Ltd Developer Platforms System Controllers
|
||||
|
||||
maintainers:
|
||||
- Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
description:
|
||||
The Arm Ltd Integrator, Realview, and Versatile families of developer
|
||||
platforms are contain various system controller blocks. Often these blocks
|
||||
are part of a daughterboard or motherboard module.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- arm,integrator-ap-syscon
|
||||
- arm,integrator-cp-syscon
|
||||
- arm,integrator-sp-syscon
|
||||
- arm,im-pd1-syscon
|
||||
- const: syscon
|
||||
- items:
|
||||
- enum:
|
||||
- arm,core-module-integrator
|
||||
- arm,integrator-ap-syscon
|
||||
- arm,integrator-cp-syscon
|
||||
- arm,integrator-sp-syscon
|
||||
- arm,realview-eb-syscon
|
||||
- arm,realview-pb1176-syscon
|
||||
- arm,realview-pb11mp-syscon
|
||||
- arm,realview-pba8-syscon
|
||||
- arm,realview-pbx-syscon
|
||||
- arm,versatile-ib2-syscon
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
- items:
|
||||
- enum:
|
||||
- arm,realview-eb11mp-revb-syscon
|
||||
- arm,realview-eb11mp-revc-syscon
|
||||
- const: arm,realview-eb-syscon
|
||||
- const: syscon
|
||||
- const: simple-mfd
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
ranges: true
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties:
|
||||
type: object
|
||||
|
||||
...
|
||||
@@ -1,64 +0,0 @@
|
||||
* Maxim max8925 Power Management IC
|
||||
|
||||
Required parent device properties:
|
||||
- compatible : "maxim,max8925"
|
||||
- reg : the I2C slave address for the max8925 chip
|
||||
- interrupts : IRQ line for the max8925 chip
|
||||
- interrupt-controller: describes the max8925 as an interrupt
|
||||
controller (has its own domain)
|
||||
- #interrupt-cells : should be 1.
|
||||
- The cell is the max8925 local IRQ number
|
||||
|
||||
Optional parent device properties:
|
||||
- maxim,tsc-irq: there are 2 IRQ lines for max8925, one is indicated in
|
||||
interrupts property, the other is indicated here.
|
||||
|
||||
max8925 consists of a large and varied group of sub-devices:
|
||||
|
||||
Device Supply Names Description
|
||||
------ ------------ -----------
|
||||
max8925-onkey : : On key
|
||||
max8925-rtc : : RTC
|
||||
max8925-regulator : : Regulators
|
||||
max8925-backlight : : Backlight
|
||||
max8925-touch : : Touchscreen
|
||||
max8925-power : : Charger
|
||||
|
||||
Example:
|
||||
|
||||
pmic: max8925@3c {
|
||||
compatible = "maxim,max8925";
|
||||
reg = <0x3c>;
|
||||
interrupts = <1>;
|
||||
interrupt-parent = <&intcmux4>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
maxim,tsc-irq = <0>;
|
||||
|
||||
regulators {
|
||||
SDV1 {
|
||||
regulator-min-microvolt = <637500>;
|
||||
regulator-max-microvolt = <1425000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
LDO1 {
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <3900000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
};
|
||||
backlight {
|
||||
maxim,max8925-dual-string = <0>;
|
||||
};
|
||||
charger {
|
||||
batt-detect = <0>;
|
||||
topoff-threshold = <1>;
|
||||
fast-charge = <7>;
|
||||
no-temp-support = <0>;
|
||||
no-insert-detect = <0>;
|
||||
};
|
||||
};
|
||||
@@ -1,125 +0,0 @@
|
||||
* Maxim MAX8998, National/TI LP3974 multi-function device
|
||||
|
||||
The Maxim MAX8998 is a multi-function device which includes voltage/current
|
||||
regulators, real time clock, battery charging controller and several
|
||||
other sub-blocks. It is interfaced using an I2C interface. Each sub-block
|
||||
is addressed by the host system using different i2c slave address.
|
||||
|
||||
PMIC sub-block
|
||||
--------------
|
||||
|
||||
The PMIC sub-block contains a number of voltage and current regulators,
|
||||
with controllable parameters and dynamic voltage scaling capability.
|
||||
In addition, it includes a real time clock and battery charging controller
|
||||
as well. It is accessible at I2C address 0x66.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following:
|
||||
- "maxim,max8998" for Maxim MAX8998
|
||||
- "national,lp3974" or "ti,lp3974" for National/TI LP3974.
|
||||
- reg: Specifies the i2c slave address of the pmic block. It should be 0x66.
|
||||
|
||||
Optional properties:
|
||||
- interrupts: Interrupt specifiers for two interrupt sources.
|
||||
- First interrupt specifier is for main interrupt.
|
||||
- Second interrupt specifier is for power-on/-off interrupt.
|
||||
- max8998,pmic-buck1-dvs-gpios: GPIO specifiers for two host gpios used
|
||||
for buck 1 dvs. The format of the gpio specifier depends on the gpio
|
||||
controller.
|
||||
- max8998,pmic-buck2-dvs-gpio: GPIO specifier for host gpio used
|
||||
for buck 2 dvs. The format of the gpio specifier depends on the gpio
|
||||
controller.
|
||||
- max8998,pmic-buck1-default-dvs-idx: Default voltage setting selected from
|
||||
the possible 4 options selectable by the dvs gpios. The value of this
|
||||
property should be 0, 1, 2 or 3. If not specified or out of range,
|
||||
a default value of 0 is taken.
|
||||
- max8998,pmic-buck2-default-dvs-idx: Default voltage setting selected from
|
||||
the possible 2 options selectable by the dvs gpios. The value of this
|
||||
property should be 0 or 1. If not specified or out of range, a default
|
||||
value of 0 is taken.
|
||||
- max8998,pmic-buck-voltage-lock: If present, disallows changing of
|
||||
preprogrammed buck dvfs voltages.
|
||||
|
||||
Additional properties required if max8998,pmic-buck1-dvs-gpios is defined:
|
||||
- max8998,pmic-buck1-dvs-voltage: An array of 4 voltage values in microvolts
|
||||
for buck1 regulator that can be selected using dvs gpio.
|
||||
|
||||
Additional properties required if max8998,pmic-buck2-dvs-gpio is defined:
|
||||
- max8998,pmic-buck2-dvs-voltage: An array of 2 voltage values in microvolts
|
||||
for buck2 regulator that can be selected using dvs gpio.
|
||||
|
||||
Regulators: All the regulators of MAX8998 to be instantiated shall be
|
||||
listed in a child node named 'regulators'. Each regulator is represented
|
||||
by a child node of the 'regulators' node.
|
||||
|
||||
regulator-name {
|
||||
/* standard regulator bindings here */
|
||||
};
|
||||
|
||||
Following regulators of the MAX8998 PMIC block are supported. Note that
|
||||
the 'n' in regulator name, as in LDOn or BUCKn, represents the LDO or BUCK
|
||||
number as described in MAX8998 datasheet.
|
||||
|
||||
- LDOn
|
||||
- valid values for n are 2 to 17
|
||||
- Example: LDO2, LDO10, LDO17
|
||||
- BUCKn
|
||||
- valid values for n are 1 to 4.
|
||||
- Example: BUCK1, BUCK2, BUCK3, BUCK4
|
||||
|
||||
- ENVICHG: Battery Charging Current Monitor Output. This is a fixed
|
||||
voltage type regulator
|
||||
|
||||
- ESAFEOUT1: (ldo19)
|
||||
- ESAFEOUT2: (ld020)
|
||||
|
||||
- CHARGER: main battery charger current control
|
||||
|
||||
Standard regulator bindings are used inside regulator subnodes. Check
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
for more details.
|
||||
|
||||
Example:
|
||||
|
||||
pmic@66 {
|
||||
compatible = "maxim,max8998-pmic";
|
||||
reg = <0x66>;
|
||||
interrupt-parent = <&wakeup_eint>;
|
||||
interrupts = <4 0>, <3 0>;
|
||||
|
||||
/* Buck 1 DVS settings */
|
||||
max8998,pmic-buck1-default-dvs-idx = <0>;
|
||||
max8998,pmic-buck1-dvs-gpios = <&gpx0 0 1 0 0>, /* SET1 */
|
||||
<&gpx0 1 1 0 0>; /* SET2 */
|
||||
max8998,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
|
||||
<1000000>, <950000>;
|
||||
|
||||
/* Buck 2 DVS settings */
|
||||
max8998,pmic-buck2-default-dvs-idx = <0>;
|
||||
max8998,pmic-buck2-dvs-gpio = <&gpx0 0 3 0 0>; /* SET3 */
|
||||
max8998,pmic-buck2-dvs-voltage = <1350000>, <1300000>;
|
||||
|
||||
/* Regulators to instantiate */
|
||||
regulators {
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDD_ALIVE_1.1V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "VDD_ARM_1.2V";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
charger_reg: CHARGER {
|
||||
regulator-name = "CHARGER";
|
||||
regulator-min-microamp = <90000>;
|
||||
regulator-max-microamp = <800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -45,8 +45,13 @@ properties:
|
||||
patternProperties:
|
||||
"^led@[0-3]$":
|
||||
$ref: /schemas/leds/common.yaml#
|
||||
unevaluatedProperties: false
|
||||
type: object
|
||||
|
||||
properties:
|
||||
reg:
|
||||
maximum: 3
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
vss1-supply:
|
||||
|
||||
145
Documentation/devicetree/bindings/mfd/maxim,max8925.yaml
Normal file
145
Documentation/devicetree/bindings/mfd/maxim,max8925.yaml
Normal file
@@ -0,0 +1,145 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/maxim,max8925.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MAX8925 PMIC from Maxim Integrated.
|
||||
|
||||
maintainers:
|
||||
- Lee Jones <lee@kernel.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max8925
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
"#interrupt-cells":
|
||||
const: 1
|
||||
description:
|
||||
The cell is the IRQ number
|
||||
|
||||
maxim,tsc-irq:
|
||||
description: second interrupt from max8925
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
|
||||
patternProperties:
|
||||
"^SDV[1-3]$|^LDO[1-9]$|^LDO1[0-9]$|^LDO20$":
|
||||
description: regulator configuration for SDV1-3 and LDO1-20
|
||||
$ref: /schemas/regulator/regulator.yaml
|
||||
unevaluatedProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
backlight:
|
||||
type: object
|
||||
properties:
|
||||
maxim,max8925-dual-string:
|
||||
description: set to 1 to support dual string
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1]
|
||||
default: 0
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
charger:
|
||||
type: object
|
||||
properties:
|
||||
batt-detect:
|
||||
description: set to 1 if battery detection via ID pin is supported
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1]
|
||||
default: 0
|
||||
|
||||
topoff-threshold:
|
||||
description: charging current in topoff mode, configures bits 5-6 in CHG_CNTL1
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 0
|
||||
|
||||
fast-charge:
|
||||
description: set charging current in fast mode, configures bits 0-3 in CHG_CNTL1
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
default: 0
|
||||
|
||||
no-temp-support:
|
||||
description: set to 1 if temperature sensing is not supported
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1]
|
||||
default: 0
|
||||
|
||||
no-insert-detect:
|
||||
description: set to 1 if AC detection is not supported
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1]
|
||||
default: 0
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- "#interrupt-cells"
|
||||
- regulators
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@3c {
|
||||
compatible = "maxim,max8925";
|
||||
reg = <0x3c>;
|
||||
interrupts = <1>;
|
||||
interrupt-parent = <&intcmux4>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
maxim,tsc-irq = <0>;
|
||||
|
||||
regulators {
|
||||
SDV1 {
|
||||
regulator-min-microvolt = <637500>;
|
||||
regulator-max-microvolt = <1425000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
LDO1 {
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <3900000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
backlight {
|
||||
maxim,max8925-dual-string = <0>;
|
||||
};
|
||||
|
||||
charger {
|
||||
batt-detect = <0>;
|
||||
topoff-threshold = <1>;
|
||||
fast-charge = <7>;
|
||||
no-temp-support = <0>;
|
||||
no-insert-detect = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
324
Documentation/devicetree/bindings/mfd/maxim,max8998.yaml
Normal file
324
Documentation/devicetree/bindings/mfd/maxim,max8998.yaml
Normal file
@@ -0,0 +1,324 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/maxim,max8998.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX8998, National/TI LP3974 Power Management IC
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
|
||||
description:
|
||||
The Maxim MAX8998 is a Power Management IC which includes voltage/current
|
||||
regulators, real time clock, battery charging controller and several other
|
||||
sub-blocks. It is interfaced using an I2C interface. Each sub-block is
|
||||
addressed by the host system using different i2c slave address.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- maxim,max8998
|
||||
- national,lp3974
|
||||
- ti,lp3974
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: Main interrupt
|
||||
- description: Power-on/-off interrupt
|
||||
|
||||
max8998,pmic-buck1-dvs-gpios:
|
||||
maxItems: 2
|
||||
description:
|
||||
Two host gpios used for buck1 DVS.
|
||||
|
||||
max8998,pmic-buck2-dvs-gpio:
|
||||
maxItems: 1
|
||||
description:
|
||||
Host gpio used for buck2 DVS.
|
||||
|
||||
max8998,pmic-buck1-default-dvs-idx:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2, 3]
|
||||
default: 0
|
||||
description:
|
||||
Default voltage setting selected from the possible 4 options selectable
|
||||
by the DVS gpios.
|
||||
|
||||
max8998,pmic-buck2-default-dvs-idx:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1]
|
||||
default: 0
|
||||
description:
|
||||
Default voltage setting selected from the possible 2 options selectable
|
||||
by the DVS GPIOs.
|
||||
|
||||
max8998,pmic-buck-voltage-lock:
|
||||
type: boolean
|
||||
description:
|
||||
If present, disallows changing of preprogrammed buck DVS voltages.
|
||||
|
||||
max8998,pmic-buck1-dvs-voltage:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
maxItems: 4
|
||||
description:
|
||||
Four voltage values in microvolts for buck1 regulator that can be
|
||||
selected using DVS GPIO.
|
||||
|
||||
max8998,pmic-buck2-dvs-voltage:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
maxItems: 2
|
||||
description:
|
||||
Two voltage values in microvolts for buck2 regulator that can be
|
||||
selected using DVS GPIO.
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
CHARGER:
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
description:
|
||||
CHARGER is main battery charger current control, wrongly represented
|
||||
as regulator.
|
||||
|
||||
properties:
|
||||
regulator-min-microamp:
|
||||
minimum: 90000
|
||||
maximum: 800000
|
||||
|
||||
regulator-max-microamp:
|
||||
minimum: 90000
|
||||
maximum: 800000
|
||||
|
||||
regulator-min-microvolt: false
|
||||
regulator-max-microvolt: false
|
||||
|
||||
required:
|
||||
- regulator-name
|
||||
|
||||
patternProperties:
|
||||
"^(LDO([2-9]|1[0-7])|BUCK[1-4])$":
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- regulator-name
|
||||
|
||||
"^(EN32KHz-AP|EN32KHz-CP|ENVICHG|ESAFEOUT[12])$":
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
description: |
|
||||
EN32KHz-AP and EN32KHz-CP are 32768 Hz clocks, wrongly represented as
|
||||
regulators.
|
||||
ENVICHG is a Battery Charging Current Monitor Output.
|
||||
|
||||
properties:
|
||||
regulator-min-microvolt: false
|
||||
regulator-max-microvolt: false
|
||||
|
||||
required:
|
||||
- regulator-name
|
||||
|
||||
dependencies:
|
||||
max8998,pmic-buck1-dvs-gpios: [ "max8998,pmic-buck1-dvs-voltage" ]
|
||||
max8998,pmic-buck2-dvs-gpio: [ "max8998,pmic-buck2-dvs-voltage" ]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- regulators
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic@66 {
|
||||
compatible = "national,lp3974";
|
||||
reg = <0x66>;
|
||||
interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>,
|
||||
<&gpx2 7 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&lp3974_irq>;
|
||||
|
||||
max8998,pmic-buck1-default-dvs-idx = <0>;
|
||||
max8998,pmic-buck1-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
|
||||
<&gpx0 6 GPIO_ACTIVE_HIGH>;
|
||||
max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
|
||||
<1100000>, <1000000>;
|
||||
max8998,pmic-buck2-default-dvs-idx = <0>;
|
||||
max8998,pmic-buck2-dvs-gpio = <&gpe2 0 GPIO_ACTIVE_HIGH>;
|
||||
max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
|
||||
|
||||
regulators {
|
||||
LDO2 {
|
||||
regulator-name = "VALIVE_1.2V";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
LDO3 {
|
||||
regulator-name = "VUSB+MIPI_1.1V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
LDO4 {
|
||||
regulator-name = "VADC_3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
LDO5 {
|
||||
regulator-name = "VTF_2.8V";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
};
|
||||
|
||||
LDO6 {
|
||||
regulator-name = "LDO6";
|
||||
regulator-min-microvolt = <2000000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
};
|
||||
|
||||
LDO7 {
|
||||
regulator-name = "VLCD+VMIPI_1.8V";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
LDO8 {
|
||||
regulator-name = "VUSB+VDAC_3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
LDO9 {
|
||||
regulator-name = "VCC_2.8V";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
LDO10 {
|
||||
regulator-name = "VPLL_1.1V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
LDO11 {
|
||||
regulator-name = "CAM_AF_3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
LDO12 {
|
||||
regulator-name = "PS_2.8V";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
};
|
||||
|
||||
LDO13 {
|
||||
regulator-name = "VHIC_1.2V";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
};
|
||||
|
||||
LDO14 {
|
||||
regulator-name = "CAM_I_HOST_1.8V";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
LDO15 {
|
||||
regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
};
|
||||
|
||||
LDO16 {
|
||||
regulator-name = "CAM_S_ANA_2.8V";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
};
|
||||
|
||||
LDO17 {
|
||||
regulator-name = "VCC_3.0V_LCD";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
};
|
||||
|
||||
BUCK1 {
|
||||
regulator-name = "VINT_1.1V";
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
BUCK2 {
|
||||
regulator-name = "VG3D_1.1V";
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
BUCK3 {
|
||||
regulator-name = "VCC_1.8V";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
BUCK4 {
|
||||
regulator-name = "VMEM_1.2V";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
EN32KHz-AP {
|
||||
regulator-name = "32KHz AP";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
EN32KHz-CP {
|
||||
regulator-name = "32KHz CP";
|
||||
};
|
||||
|
||||
ENVICHG {
|
||||
regulator-name = "VICHG";
|
||||
};
|
||||
|
||||
ESAFEOUT1 {
|
||||
regulator-name = "SAFEOUT1";
|
||||
};
|
||||
|
||||
ESAFEOUT2 {
|
||||
regulator-name = "SAFEOUT2";
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -40,6 +40,7 @@ properties:
|
||||
regulators:
|
||||
type: object
|
||||
$ref: /schemas/regulator/mediatek,mt6357-regulator.yaml
|
||||
unevaluatedProperties: false
|
||||
description:
|
||||
List of MT6357 BUCKs and LDOs regulators.
|
||||
|
||||
@@ -59,6 +60,7 @@ properties:
|
||||
keys:
|
||||
type: object
|
||||
$ref: /schemas/input/mediatek,pmic-keys.yaml
|
||||
unevaluatedProperties: false
|
||||
description:
|
||||
MT6357 power and home keys.
|
||||
|
||||
|
||||
@@ -22,8 +22,9 @@ compatible:
|
||||
"mediatek,mt6323" for PMIC MT6323
|
||||
"mediatek,mt6331" for PMIC MT6331 and MT6332
|
||||
"mediatek,mt6357" for PMIC MT6357
|
||||
"mediatek,mt6358" for PMIC MT6358 and MT6366
|
||||
"mediatek,mt6358" for PMIC MT6358
|
||||
"mediatek,mt6359" for PMIC MT6359
|
||||
"mediatek,mt6366", "mediatek,mt6358" for PMIC MT6366
|
||||
"mediatek,mt6397" for PMIC MT6397
|
||||
|
||||
Optional subnodes:
|
||||
@@ -40,6 +41,7 @@ Optional subnodes:
|
||||
- compatible: "mediatek,mt6323-regulator"
|
||||
see ../regulator/mt6323-regulator.txt
|
||||
- compatible: "mediatek,mt6358-regulator"
|
||||
- compatible: "mediatek,mt6366-regulator", "mediatek-mt6358-regulator"
|
||||
see ../regulator/mt6358-regulator.txt
|
||||
- compatible: "mediatek,mt6397-regulator"
|
||||
see ../regulator/mt6397-regulator.txt
|
||||
|
||||
@@ -58,6 +58,7 @@ properties:
|
||||
- qcom,pm8350
|
||||
- qcom,pm8350b
|
||||
- qcom,pm8350c
|
||||
- qcom,pm8450
|
||||
- qcom,pm8550
|
||||
- qcom,pm8550b
|
||||
- qcom,pm8550ve
|
||||
@@ -168,6 +169,10 @@ patternProperties:
|
||||
type: object
|
||||
$ref: /schemas/thermal/qcom,spmi-temp-alarm.yaml#
|
||||
|
||||
"^typec@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/usb/qcom,pmic-typec.yaml#
|
||||
|
||||
"^usb-detect@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/extcon/qcom,pm8941-misc.yaml#
|
||||
@@ -234,13 +239,13 @@ examples:
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <4>;
|
||||
|
||||
pmi8998_lsid0: pmic@2 {
|
||||
pmic@2 {
|
||||
compatible = "qcom,pmi8998", "qcom,spmi-pmic";
|
||||
reg = <0x2 SPMI_USID>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmi8998_gpio: gpio@c000 {
|
||||
gpio@c000 {
|
||||
compatible = "qcom,pmi8998-gpio", "qcom,spmi-gpio";
|
||||
reg = <0xc000>;
|
||||
gpio-controller;
|
||||
@@ -325,7 +330,7 @@ examples:
|
||||
};
|
||||
};
|
||||
|
||||
pm6150_gpio: gpio@c000 {
|
||||
gpio@c000 {
|
||||
compatible = "qcom,pm6150-gpio", "qcom,spmi-gpio";
|
||||
reg = <0xc000>;
|
||||
gpio-controller;
|
||||
|
||||
@@ -27,6 +27,7 @@ properties:
|
||||
- qcom,sdm845-tcsr
|
||||
- qcom,sdx55-tcsr
|
||||
- qcom,sdx65-tcsr
|
||||
- qcom,sm4450-tcsr
|
||||
- qcom,sm8150-tcsr
|
||||
- qcom,sm8450-tcsr
|
||||
- qcom,tcsr-apq8064
|
||||
|
||||
@@ -43,13 +43,37 @@ properties:
|
||||
interrupt-controller: true
|
||||
|
||||
patternProperties:
|
||||
"gpio@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/pinctrl/qcom,pmic-gpio.yaml#
|
||||
|
||||
"keypad@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/input/qcom,pm8921-keypad.yaml#
|
||||
|
||||
"led@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/leds/qcom,pm8058-led.yaml#
|
||||
|
||||
"mpps@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/pinctrl/qcom,pmic-mpp.yaml#
|
||||
|
||||
"pwrkey@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/input/qcom,pm8921-pwrkey.yaml#
|
||||
|
||||
"rtc@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: ../rtc/qcom-pm8xxx-rtc.yaml
|
||||
$ref: /schemas/rtc/qcom-pm8xxx-rtc.yaml#
|
||||
|
||||
"vibrator@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/input/qcom,pm8xxx-vib.yaml#
|
||||
|
||||
"xoadc@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: /schemas/iio/adc/qcom,pm8018-adc.yaml#
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
@@ -42,9 +42,12 @@ properties:
|
||||
|
||||
rockchip,system-power-controller:
|
||||
type: boolean
|
||||
deprecated: true
|
||||
description:
|
||||
Telling whether or not this PMIC is controlling the system power.
|
||||
|
||||
system-power-controller: true
|
||||
|
||||
wakeup-source:
|
||||
type: boolean
|
||||
description:
|
||||
@@ -80,6 +83,7 @@ properties:
|
||||
"^(DCDC_REG[1-4]|LDO_REG[1-3])$":
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
unevaluatedProperties: false
|
||||
|
||||
allOf:
|
||||
|
||||
@@ -29,6 +29,8 @@ properties:
|
||||
'#gpio-cells':
|
||||
const: 2
|
||||
|
||||
system-power-controller: true
|
||||
|
||||
vcc1-supply:
|
||||
description:
|
||||
The input supply for dcdc-reg1.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user