lkml.org 
[lkml]   [2021]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 07/11] dt-bindings: arm: apple: Add apple,pmgr binding
    Date
    The PMGR block in Apple Silicon SoCs is responsible for SoC power
    management. There are two PMGRs in T8103, with different register
    layouts but compatible registers. In order to support this as well
    as future SoC generations with backwards-compatible registers, we
    declare these blocks as syscons and bind to individual registers
    in child nodes. Each register controls one SoC device.

    The respective apple compatibles are defined in case device-specific
    quirks are necessary in the future, but currently these nodes are
    expected to be bound by the generic syscon driver.

    Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
    Signed-off-by: Hector Martin <marcan@marcan.st>
    ---
    .../bindings/arm/apple/apple,pmgr.yaml | 134 ++++++++++++++++++
    1 file changed, 134 insertions(+)
    create mode 100644 Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml

    diff --git a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
    new file mode 100644
    index 000000000000..b6b5d3a912b3
    --- /dev/null
    +++ b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
    @@ -0,0 +1,134 @@
    +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
    +%YAML 1.2
    +---
    +$id: http://devicetree.org/schemas/arm/apple/apple,pmgr.yaml#
    +$schema: http://devicetree.org/meta-schemas/core.yaml#
    +
    +title: Apple SoC Power Manager (PMGR)
    +
    +maintainers:
    + - Hector Martin <marcan@marcan.st>
    +
    +description: |
    + Apple SoCs include PMGR blocks responsible for power management,
    + which can control various clocks, resets, power states, and
    + performance features. This node represents the PMGR as a syscon,
    + with sub-nodes representing individual features.
    +
    +properties:
    + $nodename:
    + pattern: "^power-management@[0-9a-f]+$"
    +
    + compatible:
    + items:
    + - enum:
    + - apple,t8103-pmgr
    + - apple,t6000-pmgr
    + - const: apple,pmgr
    + - const: syscon
    + - const: simple-mfd
    +
    + reg:
    + maxItems: 1
    +
    + "#address-cells":
    + const: 1
    +
    + "#size-cells":
    + const: 1
    +
    +patternProperties:
    + "power-controller@[0-9a-f]+$":
    + description:
    + The individual power management domains within this controller
    + type: object
    + $ref: /power/apple,pmgr-pwrstate.yaml#
    +
    +required:
    + - compatible
    + - reg
    +
    +additionalProperties: false
    +
    +examples:
    + - |
    + soc {
    + #address-cells = <2>;
    + #size-cells = <2>;
    +
    + power-management@23b700000 {
    + compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
    + #address-cells = <1>;
    + #size-cells = <1>;
    + reg = <0x2 0x3b700000 0x0 0x14000>;
    +
    + ps_sio: power-controller@1c0 {
    + compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
    + reg = <0x1c0 8>;
    + #power-domain-cells = <0>;
    + #reset-cells = <0>;
    + label = "sio";
    + apple,always-on;
    + };
    +
    + ps_uart_p: power-controller@220 {
    + compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
    + reg = <0x220 8>;
    + #power-domain-cells = <0>;
    + #reset-cells = <0>;
    + label = "uart_p";
    + power-domains = <&ps_sio>;
    + };
    +
    + ps_uart0: power-controller@270 {
    + compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
    + reg = <0x270 8>;
    + #power-domain-cells = <0>;
    + #reset-cells = <0>;
    + label = "uart0";
    + power-domains = <&ps_uart_p>;
    + };
    + };
    +
    + power-management@23d280000 {
    + compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
    + #address-cells = <1>;
    + #size-cells = <1>;
    + reg = <0x2 0x3d280000 0x0 0xc000>;
    +
    + ps_aop_filter: power-controller@4000 {
    + compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
    + reg = <0x4000 8>;
    + #power-domain-cells = <0>;
    + #reset-cells = <0>;
    + label = "aop_filter";
    + };
    +
    + ps_aop_base: power-controller@4010 {
    + compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
    + reg = <0x4010 8>;
    + #power-domain-cells = <0>;
    + #reset-cells = <0>;
    + label = "aop_base";
    + power-domains = <&ps_aop_filter>;
    + };
    +
    + ps_aop_shim: power-controller@4038 {
    + compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
    + reg = <0x4038 8>;
    + #power-domain-cells = <0>;
    + #reset-cells = <0>;
    + label = "aop_shim";
    + power-domains = <&ps_aop_base>;
    + };
    +
    + ps_aop_uart0: power-controller@4048 {
    + compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
    + reg = <0x4048 8>;
    + #power-domain-cells = <0>;
    + #reset-cells = <0>;
    + label = "aop_uart0";
    + power-domains = <&ps_aop_shim>;
    + };
    + };
    + };
    --
    2.33.0
    \
     
     \ /
      Last update: 2021-11-24 08:36    [W:2.722 / U:0.164 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site