mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
In a typical system using the Samsung S2MPG10 PMIC, an S2MPG11 is used as a sub-PMIC. The interface for both is the ACPM firmware protocol, so update the binding to allow the relevant node and update the example here to describe the connection for both PMICs. Since we have two PMICs here, but can not use the 'reg' property (as the addressing is based on software, i.e. the ACPM firmware), the node names reflect that with their respective suffix. The existing 'pmic' therefore becomes deprecated in favour of 'pmic-1'. While at it, update the example. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: André Draszik <andre.draszik@linaro.org> Link: https://patch.msgid.link/20260210-s2mpg1x-regulators-v8-1-c429d709c0e0@linaro.org Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
143 lines
4.0 KiB
YAML
143 lines
4.0 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
# Copyright 2024 Linaro Ltd.
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/firmware/google,gs101-acpm-ipc.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Samsung Exynos ACPM mailbox protocol
|
|
|
|
maintainers:
|
|
- Tudor Ambarus <tudor.ambarus@linaro.org>
|
|
|
|
description: |
|
|
ACPM (Alive Clock and Power Manager) is a firmware that operates on the
|
|
APM (Active Power Management) module that handles overall power management
|
|
activities. ACPM and masters regard each other as independent hardware
|
|
component and communicate with each other using mailbox messages and
|
|
shared memory.
|
|
|
|
This binding is intended to define the interface the firmware implementing
|
|
ACPM provides for OSPM in the device tree.
|
|
|
|
properties:
|
|
compatible:
|
|
const: google,gs101-acpm-ipc
|
|
|
|
"#clock-cells":
|
|
const: 1
|
|
description:
|
|
Clocks that are variable and index based. These clocks don't provide
|
|
an entire range of values between the limits but only discrete points
|
|
within the range. The firmware also manages the voltage scaling
|
|
appropriately with the clock scaling. The argument is the ID of the
|
|
clock contained by the firmware messages.
|
|
|
|
mboxes:
|
|
maxItems: 1
|
|
|
|
pmic:
|
|
deprecated: true
|
|
description: Child node describing the main PMIC.
|
|
type: object
|
|
additionalProperties: true
|
|
|
|
properties:
|
|
compatible:
|
|
const: samsung,s2mpg10-pmic
|
|
|
|
pmic-1:
|
|
description: Child node describing the main PMIC.
|
|
type: object
|
|
additionalProperties: true
|
|
|
|
properties:
|
|
compatible:
|
|
const: samsung,s2mpg10-pmic
|
|
|
|
pmic-2:
|
|
description: Child node describing the sub PMIC.
|
|
type: object
|
|
additionalProperties: true
|
|
|
|
properties:
|
|
compatible:
|
|
const: samsung,s2mpg11-pmic
|
|
|
|
shmem:
|
|
description:
|
|
List of phandle pointing to the shared memory (SHM) area. The memory
|
|
contains channels configuration data and the TX/RX ring buffers that
|
|
are used for passing messages to/from the ACPM firmware.
|
|
maxItems: 1
|
|
|
|
required:
|
|
- compatible
|
|
- "#clock-cells"
|
|
- mboxes
|
|
- shmem
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/regulator/samsung,s2mpg10-regulator.h>
|
|
|
|
power-management {
|
|
compatible = "google,gs101-acpm-ipc";
|
|
#clock-cells = <1>;
|
|
mboxes = <&ap2apm_mailbox>;
|
|
shmem = <&apm_sram>;
|
|
|
|
pmic-1 {
|
|
compatible = "samsung,s2mpg10-pmic";
|
|
interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
|
|
|
|
vinl3m-supply = <&buck8m>;
|
|
|
|
regulators {
|
|
ldo1m {
|
|
regulator-name = "vdd_ldo1";
|
|
regulator-min-microvolt = <700000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo20m {
|
|
regulator-name = "vdd_dmics";
|
|
regulator-min-microvolt = <700000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_LDO20M_EN2>;
|
|
};
|
|
|
|
buck8m {
|
|
regulator-name = "vdd_mif";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
};
|
|
};
|
|
|
|
pmic-2 {
|
|
compatible = "samsung,s2mpg11-pmic";
|
|
interrupts-extended = <&gpa0 7 IRQ_TYPE_LEVEL_LOW>;
|
|
|
|
vinl1s-supply = <&buck8m>;
|
|
vinl2s-supply = <&buck6s>;
|
|
|
|
regulators {
|
|
buckd {
|
|
regulator-name = "vcc_ufs";
|
|
regulator-ramp-delay = <6250>;
|
|
enable-gpios = <&gpp0 1 GPIO_ACTIVE_HIGH>;
|
|
samsung,ext-control = <S2MPG11_EXTCTRL_UFS_EN>;
|
|
};
|
|
};
|
|
};
|
|
};
|