268 lines
7.1 KiB
YAML
268 lines
7.1 KiB
YAML
# SPDX-License-Identifier: GPL-2.0-only
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/mfd/samsung,s2mps11.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Samsung S2MPS11/13/14/15 and S2MPU02 Power Management IC
|
|
|
|
maintainers:
|
|
- Krzysztof Kozlowski <krzk@kernel.org>
|
|
|
|
description: |
|
|
This is a part of device tree bindings for S2M and S5M family of Power
|
|
Management IC (PMIC).
|
|
|
|
The Samsung S2MPS11/13/14/15 and S2MPU02 is a family of Power Management IC
|
|
which include voltage and current regulators, RTC, clock outputs and other
|
|
sub-blocks.
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- samsung,s2mps11-pmic
|
|
- samsung,s2mps13-pmic
|
|
- samsung,s2mps14-pmic
|
|
- samsung,s2mps15-pmic
|
|
- samsung,s2mpu02-pmic
|
|
|
|
clocks:
|
|
$ref: ../clock/samsung,s2mps11.yaml
|
|
description:
|
|
Child node describing clock provider.
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
regulators:
|
|
type: object
|
|
description:
|
|
List of child nodes that specify the regulators.
|
|
|
|
samsung,s2mps11-acokb-ground:
|
|
description: |
|
|
Indicates that ACOKB pin of S2MPS11 PMIC is connected to the ground so
|
|
the PMIC must manually set PWRHOLD bit in CTRL1 register to turn off the
|
|
power. Usually the ACOKB is pulled up to VBATT so when PWRHOLD pin goes
|
|
low, the rising ACOKB will trigger power off.
|
|
type: boolean
|
|
|
|
samsung,s2mps11-wrstbi-ground:
|
|
description: |
|
|
Indicates that WRSTBI pin of PMIC is pulled down. When the system is
|
|
suspended it will always go down thus triggerring unwanted buck warm
|
|
reset (setting buck voltages to default values).
|
|
type: boolean
|
|
|
|
wakeup-source: true
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- regulators
|
|
|
|
additionalProperties: false
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: samsung,s2mps11-pmic
|
|
then:
|
|
properties:
|
|
regulators:
|
|
$ref: ../regulator/samsung,s2mps11.yaml
|
|
samsung,s2mps11-wrstbi-ground: false
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: samsung,s2mps13-pmic
|
|
then:
|
|
properties:
|
|
regulators:
|
|
$ref: ../regulator/samsung,s2mps13.yaml
|
|
samsung,s2mps11-acokb-ground: false
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: samsung,s2mps14-pmic
|
|
then:
|
|
properties:
|
|
regulators:
|
|
$ref: ../regulator/samsung,s2mps14.yaml
|
|
samsung,s2mps11-acokb-ground: false
|
|
samsung,s2mps11-wrstbi-ground: false
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: samsung,s2mps15-pmic
|
|
then:
|
|
properties:
|
|
regulators:
|
|
$ref: ../regulator/samsung,s2mps15.yaml
|
|
samsung,s2mps11-acokb-ground: false
|
|
samsung,s2mps11-wrstbi-ground: false
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: samsung,s2mpu02-pmic
|
|
then:
|
|
properties:
|
|
regulators:
|
|
$ref: ../regulator/samsung,s2mpu02.yaml
|
|
samsung,s2mps11-acokb-ground: false
|
|
samsung,s2mps11-wrstbi-ground: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
pmic@66 {
|
|
compatible = "samsung,s2mps11-pmic";
|
|
reg = <0x66>;
|
|
|
|
interrupt-parent = <&gpx0>;
|
|
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&s2mps11_irq>;
|
|
samsung,s2mps11-acokb-ground;
|
|
wakeup-source;
|
|
|
|
clocks {
|
|
compatible = "samsung,s2mps11-clk";
|
|
#clock-cells = <1>;
|
|
clock-output-names = "s2mps11_ap", "s2mps11_cp", "s2mps11_bt";
|
|
};
|
|
|
|
regulators {
|
|
LDO1 {
|
|
regulator-name = "vdd_ldo1";
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <1000000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
LDO4 {
|
|
regulator-name = "vdd_adc";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
// ....
|
|
|
|
BUCK1 {
|
|
regulator-name = "vdd_mif";
|
|
regulator-min-microvolt = <800000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
BUCK2 {
|
|
regulator-name = "vdd_arm";
|
|
regulator-min-microvolt = <800000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-coupled-with = <&buck3_reg>;
|
|
regulator-coupled-max-spread = <300000>;
|
|
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
BUCK3 {
|
|
regulator-name = "vdd_int";
|
|
regulator-min-microvolt = <800000>;
|
|
regulator-max-microvolt = <1400000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-coupled-with = <&buck2_reg>;
|
|
regulator-coupled-max-spread = <300000>;
|
|
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
// ...
|
|
};
|
|
};
|
|
};
|
|
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
pmic@66 {
|
|
compatible = "samsung,s2mps14-pmic";
|
|
reg = <0x66>;
|
|
|
|
interrupt-parent = <&gpx0>;
|
|
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
|
|
wakeup-source;
|
|
|
|
clocks {
|
|
compatible = "samsung,s2mps14-clk";
|
|
#clock-cells = <1>;
|
|
clock-output-names = "s2mps14_ap", "unused", "s2mps14_bt";
|
|
};
|
|
|
|
regulators {
|
|
LDO1 {
|
|
regulator-name = "VLDO1_1.0V";
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <1000000>;
|
|
regulator-always-on;
|
|
|
|
regulator-state-mem {
|
|
regulator-on-in-suspend;
|
|
};
|
|
};
|
|
|
|
// ...
|
|
|
|
BUCK1 {
|
|
regulator-name = "VBUCK1_1.0V";
|
|
regulator-min-microvolt = <800000>;
|
|
regulator-max-microvolt = <1000000>;
|
|
regulator-always-on;
|
|
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
// ...
|
|
};
|
|
};
|
|
};
|