Files
linux/Documentation/devicetree/bindings/mfd/x-powers,axp152.yaml
Linus Torvalds 3af49062b0 Merge tag 'mfd-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull MFD updates from Lee Jones:
 "New Drivers:
   - Add support for  Renesas RZ/G2L MTU3

  New Device Support:
   - Add support for Lenovo Yoga Book X90F to Intel CHT WC
   - Add support for MAX5970 and MAX5978 to Simple MFD (I2C)
   - Add support for Meteor Lake PCH-S LPSS PCI to Intel LPSS PCI
   - Add support for AXP15060 PMIC to X-Powers PMIC collection

  Remove Device Support:
   - Remove support for Samsung 5M8751 and S5M8763 PMIC devices

  New Functionality:
   - Convert deprecated QCOM IRQ Chip to config registers
   - Add support for 32-bit address spaces to Renesas SMUs

  Fix-ups:
   - Make use of APIs / MACROs designed to simplify and demystify
   - Add / improve Device Tree bindings
   - Memory saving struct layout optimisations
   - Remove old / deprecated functionality
   - Factor out unassigned register addresses from ranges
   - Trivial: Spelling fixes, renames and coding style fixes
   - Rid 'defined but not used' warnings
   - Remove ineffective casts and pointer stubs

  Bug Fixes:
   - Fix incorrectly non-inverted mask/unmask IRQs on QCOM platforms
   - Remove MODULE_*() helpers from non-tristate drivers
   - Do not attempt to use out-of-range memory addresses associated with io_base
   - Provide missing export helpers
   - Fix remap bulk read optimisation fallout
   - Fix memory leak issues in error paths"

* tag 'mfd-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (88 commits)
  dt-bindings: mfd: ti,j721e-system-controller: Add SoC chip ID
  leds: bd2606mvv: Driver for the Rohm 6 Channel i2c LED driver
  dt-bindings: mfd: qcom,spmi-pmic: Document flash LED controller
  dt-bindings: mfd: x-powers,axp152: Document the AXP15060 variant
  mfd: axp20x: Add support for AXP15060 PMIC
  dt-bindings: mfd: x-powers,axp152: Document the AXP313a variant
  counter: rz-mtu3-cnt: Unlock on error in rz_mtu3_count_ceiling_write()
  dt-bindings: mfd: dlg,da9063: Document voltage monitoring
  dt-bindings: mfd: stm32: Remove unnecessary blank lines
  dt-bindings: mfd: qcom,spmi-pmic: Use generic ADC node name in examples
  dt-bindings: mfd: syscon: Add nuvoton,ma35d1-sys compatible
  MAINTAINERS: Add entries for Renesas RZ/G2L MTU3a counter driver
  counter: Add Renesas RZ/G2L MTU3a counter driver
  Documentation: ABI: sysfs-bus-counter: add cascade_counts_enable and external_input_phase_clock_select
  mfd: Add Renesas RZ/G2L MTU3a core driver
  dt-bindings: timer: Document RZ/G2L MTU3a bindings
  mfd: rsmu_i2c: Convert to i2c's .probe_new() again
  mfd: intel-lpss: Add Intel Meteor Lake PCH-S LPSS PCI IDs
  mfd: dln2: Fix memory leak in dln2_probe()
  mfd: axp20x: Fix axp288 writable-ranges
  ...
2023-05-02 10:41:31 -07:00

413 lines
9.9 KiB
YAML

# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/x-powers,axp152.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: X-Powers AXP PMIC
maintainers:
- Chen-Yu Tsai <wens@csie.org>
allOf:
- if:
properties:
compatible:
contains:
enum:
- x-powers,axp152
- x-powers,axp202
- x-powers,axp209
then:
properties:
regulators:
properties:
x-powers,dcdc-freq:
minimum: 750
maximum: 1875
default: 1500
else:
properties:
regulators:
properties:
x-powers,dcdc-freq:
minimum: 1800
maximum: 4050
default: 3000
- if:
properties:
compatible:
contains:
enum:
- x-powers,axp152
- x-powers,axp202
- x-powers,axp209
then:
properties:
x-powers,drive-vbus-en: false
- if:
not:
properties:
compatible:
contains:
const: x-powers,axp806
then:
properties:
x-powers,self-working-mode: false
x-powers,master-mode: false
- if:
not:
properties:
compatible:
contains:
const: x-powers,axp305
then:
required:
- interrupts
- if:
properties:
compatible:
contains:
enum:
- x-powers,axp313a
- x-powers,axp15060
then:
properties:
x-powers,dcdc-freq: false
properties:
compatible:
oneOf:
- enum:
- x-powers,axp152
- x-powers,axp202
- x-powers,axp209
- x-powers,axp221
- x-powers,axp223
- x-powers,axp313a
- x-powers,axp803
- x-powers,axp806
- x-powers,axp809
- x-powers,axp813
- x-powers,axp15060
- items:
- const: x-powers,axp228
- const: x-powers,axp221
- items:
- const: x-powers,axp805
- const: x-powers,axp806
- items:
- const: x-powers,axp305
- const: x-powers,axp805
- const: x-powers,axp806
- items:
- const: x-powers,axp818
- const: x-powers,axp813
reg:
maxItems: 1
interrupts:
maxItems: 1
interrupt-controller: true
"#interrupt-cells":
const: 1
x-powers,drive-vbus-en:
type: boolean
description: >
Set this when the N_VBUSEN pin is used as an output pin to control an
external regulator to drive the OTG VBus, rather then as an input pin
which signals whether the board is driving OTG VBus or not.
x-powers,self-working-mode:
type: boolean
description: >
Set this when the PMIC is wired for self-working mode through the MODESET
pin.
x-powers,master-mode:
type: boolean
description: >
Set this when the PMIC is wired for master mode through the MODESET pin.
vin1-supply:
description: >
DCDC1 power supply node, if present.
vin2-supply:
description: >
DCDC2 power supply node, if present.
vin3-supply:
description: >
DCDC3 power supply node, if present.
vin4-supply:
description: >
DCDC4 power supply node, if present.
vin5-supply:
description: >
DCDC5 power supply node, if present.
vin6-supply:
description: >
DCDC6 power supply node, if present.
vin7-supply:
description: >
DCDC7 power supply node, if present.
vina-supply:
description: >
DCDCA power supply node, if present.
vinb-supply:
description: >
DCDCB power supply node, if present.
vinc-supply:
description: >
DCDCC power supply node, if present.
vind-supply:
description: >
DCDCD power supply node, if present.
vine-supply:
description: >
DCDCE power supply node, if present.
acin-supply:
description: >
LDO1 power supply node, if present.
ldo24in-supply:
description: >
LDO2 and LDO4 power supply node, if present.
ldo3in-supply:
description: >
LDO3 power supply node, if present.
ldo5in-supply:
description: >
LDO5 power supply node, if present.
aldoin-supply:
description: >
ALDO* power supply node, if present.
bldoin-supply:
description: >
BLDO* power supply node, if present.
cldoin-supply:
description: >
CLDO* power supply node, if present.
dldoin-supply:
description: >
DLDO* power supply node, if present.
eldoin-supply:
description: >
ELDO* power supply node, if present.
fldoin-supply:
description: >
FLDO* power supply node, if present.
ips-supply:
description: >
LDO_IO0, LDO_IO1 and RTC_LDO power supply node, if present.
drivevbus-supply:
description: >
DRIVEVBUS power supply node, if present.
swin-supply:
description: >
SW power supply node, if present.
adc:
$ref: /schemas/iio/adc/x-powers,axp209-adc.yaml#
gpio:
$ref: /schemas/gpio/x-powers,axp209-gpio.yaml#
ac-power:
$ref: /schemas/power/supply/x-powers,axp20x-ac-power-supply.yaml#
battery-power:
$ref: /schemas/power/supply/x-powers,axp20x-battery-power-supply.yaml#
usb-power:
$ref: /schemas/power/supply/x-powers,axp20x-usb-power-supply.yaml#
regulators:
type: object
properties:
x-powers,dcdc-freq:
$ref: /schemas/types.yaml#/definitions/uint32
description: >
Defines the work frequency of DC-DC in kHz.
patternProperties:
"^(([a-f])?ldo[0-9]|dcdc[0-7a-e]|ldo(_|-)io(0|1)|(dc1)?sw|rtc(_|-)ldo|cpusldo|drivevbus|dc5ldo)$":
$ref: /schemas/regulator/regulator.yaml#
type: object
unevaluatedProperties: false
properties:
regulator-ramp-delay:
description: >
Only 800 and 1600 are valid for the DCDC2 and LDO3 regulators on
the AXP209.
regulator-soft-start:
description: >
Only valid for the LDO3 regulator.
x-powers,dcdc-workmode:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
description: >
Only valid for DCDC regulators. Setup 1 for PWM mode, 0
for AUTO (PWM/PFM) mode. The DCDC regulators work in a
mixed PWM/PFM mode, using PFM under light loads and
switching to PWM for heavier loads. Forcing PWM mode
trades efficiency under light loads for lower output
noise. This probably makes sense for HiFi audio related
applications that aren't battery constrained.
additionalProperties: false
required:
- compatible
- reg
- "#interrupt-cells"
- interrupt-controller
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@30 {
compatible = "x-powers,axp152";
reg = <0x30>;
interrupts = <0>;
interrupt-controller;
#interrupt-cells = <1>;
};
};
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@34 {
compatible = "x-powers,axp209";
reg = <0x34>;
interrupt-parent = <&nmi_intc>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
interrupt-controller;
#interrupt-cells = <1>;
ac_power_supply: ac-power {
compatible = "x-powers,axp202-ac-power-supply";
};
axp_adc: adc {
compatible = "x-powers,axp209-adc";
#io-channel-cells = <1>;
};
axp_gpio: gpio {
compatible = "x-powers,axp209-gpio";
gpio-controller;
#gpio-cells = <2>;
gpio0-adc-pin {
pins = "GPIO0";
function = "adc";
};
};
battery_power_supply: battery-power {
compatible = "x-powers,axp209-battery-power-supply";
};
regulators {
/* Default work frequency for buck regulators */
x-powers,dcdc-freq = <1500>;
reg_dcdc2: dcdc2 {
regulator-always-on;
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1450000>;
regulator-name = "vdd-cpu";
};
reg_dcdc3: dcdc3 {
regulator-always-on;
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1400000>;
regulator-name = "vdd-int-dll";
};
reg_ldo1: ldo1 {
/* LDO1 is a fixed output regulator */
regulator-always-on;
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
regulator-name = "vdd-rtc";
};
reg_ldo2: ldo2 {
regulator-always-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-name = "avcc";
};
reg_ldo3: ldo3 {
regulator-name = "ldo3";
};
reg_ldo4: ldo4 {
regulator-name = "ldo4";
};
reg_ldo5: ldo5 {
regulator-name = "ldo5";
};
};
usb_power_supply: usb-power {
compatible = "x-powers,axp202-usb-power-supply";
};
};
};