xref: /freebsd/sys/contrib/device-tree/Bindings/firmware/google,gs101-acpm-ipc.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
18ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28ccc0d23SEmmanuel Vadot# Copyright 2024 Linaro Ltd.
38ccc0d23SEmmanuel Vadot%YAML 1.2
48ccc0d23SEmmanuel Vadot---
58ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/firmware/google,gs101-acpm-ipc.yaml#
68ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
78ccc0d23SEmmanuel Vadot
88ccc0d23SEmmanuel Vadottitle: Samsung Exynos ACPM mailbox protocol
98ccc0d23SEmmanuel Vadot
108ccc0d23SEmmanuel Vadotmaintainers:
118ccc0d23SEmmanuel Vadot  - Tudor Ambarus <tudor.ambarus@linaro.org>
128ccc0d23SEmmanuel Vadot
138ccc0d23SEmmanuel Vadotdescription: |
148ccc0d23SEmmanuel Vadot  ACPM (Alive Clock and Power Manager) is a firmware that operates on the
158ccc0d23SEmmanuel Vadot  APM (Active Power Management) module that handles overall power management
168ccc0d23SEmmanuel Vadot  activities. ACPM and masters regard each other as independent hardware
178ccc0d23SEmmanuel Vadot  component and communicate with each other using mailbox messages and
188ccc0d23SEmmanuel Vadot  shared memory.
198ccc0d23SEmmanuel Vadot
208ccc0d23SEmmanuel Vadot  This binding is intended to define the interface the firmware implementing
218ccc0d23SEmmanuel Vadot  ACPM provides for OSPM in the device tree.
228ccc0d23SEmmanuel Vadot
238ccc0d23SEmmanuel Vadotproperties:
248ccc0d23SEmmanuel Vadot  compatible:
258ccc0d23SEmmanuel Vadot    const: google,gs101-acpm-ipc
268ccc0d23SEmmanuel Vadot
278ccc0d23SEmmanuel Vadot  mboxes:
288ccc0d23SEmmanuel Vadot    maxItems: 1
298ccc0d23SEmmanuel Vadot
30*ae5de77eSEmmanuel Vadot  pmic:
31*ae5de77eSEmmanuel Vadot    description: Child node describing the main PMIC.
32*ae5de77eSEmmanuel Vadot    type: object
33*ae5de77eSEmmanuel Vadot    additionalProperties: true
34*ae5de77eSEmmanuel Vadot
35*ae5de77eSEmmanuel Vadot    properties:
36*ae5de77eSEmmanuel Vadot      compatible:
37*ae5de77eSEmmanuel Vadot        const: samsung,s2mpg10-pmic
38*ae5de77eSEmmanuel Vadot
398ccc0d23SEmmanuel Vadot  shmem:
408ccc0d23SEmmanuel Vadot    description:
418ccc0d23SEmmanuel Vadot      List of phandle pointing to the shared memory (SHM) area. The memory
428ccc0d23SEmmanuel Vadot      contains channels configuration data and the TX/RX ring buffers that
438ccc0d23SEmmanuel Vadot      are used for passing messages to/from the ACPM firmware.
448ccc0d23SEmmanuel Vadot    maxItems: 1
458ccc0d23SEmmanuel Vadot
468ccc0d23SEmmanuel Vadotrequired:
478ccc0d23SEmmanuel Vadot  - compatible
488ccc0d23SEmmanuel Vadot  - mboxes
498ccc0d23SEmmanuel Vadot  - shmem
508ccc0d23SEmmanuel Vadot
518ccc0d23SEmmanuel VadotadditionalProperties: false
528ccc0d23SEmmanuel Vadot
538ccc0d23SEmmanuel Vadotexamples:
548ccc0d23SEmmanuel Vadot  - |
55*ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
56*ae5de77eSEmmanuel Vadot
578ccc0d23SEmmanuel Vadot    power-management {
588ccc0d23SEmmanuel Vadot        compatible = "google,gs101-acpm-ipc";
598ccc0d23SEmmanuel Vadot        mboxes = <&ap2apm_mailbox>;
608ccc0d23SEmmanuel Vadot        shmem = <&apm_sram>;
61*ae5de77eSEmmanuel Vadot
62*ae5de77eSEmmanuel Vadot        pmic {
63*ae5de77eSEmmanuel Vadot            compatible = "samsung,s2mpg10-pmic";
64*ae5de77eSEmmanuel Vadot            interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
65*ae5de77eSEmmanuel Vadot
66*ae5de77eSEmmanuel Vadot            regulators {
67*ae5de77eSEmmanuel Vadot                LDO1 {
68*ae5de77eSEmmanuel Vadot                    regulator-name = "vdd_ldo1";
69*ae5de77eSEmmanuel Vadot                    regulator-min-microvolt = <700000>;
70*ae5de77eSEmmanuel Vadot                    regulator-max-microvolt = <1300000>;
71*ae5de77eSEmmanuel Vadot                    regulator-always-on;
72*ae5de77eSEmmanuel Vadot                };
73*ae5de77eSEmmanuel Vadot
74*ae5de77eSEmmanuel Vadot                // ...
75*ae5de77eSEmmanuel Vadot
76*ae5de77eSEmmanuel Vadot                BUCK1 {
77*ae5de77eSEmmanuel Vadot                    regulator-name = "vdd_mif";
78*ae5de77eSEmmanuel Vadot                    regulator-min-microvolt = <450000>;
79*ae5de77eSEmmanuel Vadot                    regulator-max-microvolt = <1300000>;
80*ae5de77eSEmmanuel Vadot                    regulator-always-on;
81*ae5de77eSEmmanuel Vadot                    regulator-boot-on;
82*ae5de77eSEmmanuel Vadot                };
83*ae5de77eSEmmanuel Vadot            };
84*ae5de77eSEmmanuel Vadot        };
858ccc0d23SEmmanuel Vadot    };
86