File Index
Files and directories
Sign in
FILE

pmc.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/powerpc/fsl/pmc.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/powerpc/fsl/pmc.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Power Management Controller
  8
  9maintainers:
 10  - J. Neuschäfer <j.ne@posteo.net>
 11
 12description: |
 13  The Power Management Controller in several MPC8xxx SoCs helps save power by
 14  controlling chip-wide low-power states as well as peripheral clock gating.
 15
 16  Sleep of peripheral devices is configured by the `sleep` property, for
 17  example `sleep = <&pmc 0x00000030>`. Any cells after the &pmc phandle are
 18  called a sleep specifier.
 19
 20  For "fsl,mpc8349-pmc", sleep specifiers consist of one cell.  For each bit that
 21  is set in the cell, the corresponding bit in SCCR will be saved and cleared
 22  on suspend, and restored on resume.  This sleep controller supports disabling
 23  and resuming devices at any time.
 24
 25  For "fsl,mpc8536-pmc", sleep specifiers consist of three cells, the third of
 26  which will be ORed into PMCDR upon suspend, and cleared from PMCDR upon
 27  resume.  The first two cells are as described for fsl,mpc8548-pmc.  This
 28  sleep controller only supports disabling devices during system sleep, or
 29  permanently.
 30
 31  For "fsl,mpc8548-pmc" or "fsl,mpc8641d-pmc", Sleep specifiers consist of one
 32  or two cells, the first of which will be ORed into DEVDISR (and the second
 33  into DEVDISR2, if present -- this cell should be zero or absent if the
 34  hardware does not have DEVDISR2) upon a request for permanent device
 35  disabling.  This sleep controller does not support configuring devices to
 36  disable during system sleep (unless supported by another compatible match),
 37  or dynamically.
 38
 39properties:
 40  compatible:
 41    oneOf:
 42      - items:
 43          - const: fsl,mpc8315-pmc
 44          - const: fsl,mpc8313-pmc
 45          - const: fsl,mpc8349-pmc
 46
 47      - items:
 48          - enum:
 49              - fsl,mpc8313-pmc
 50              - fsl,mpc8323-pmc
 51              - fsl,mpc8360-pmc
 52              - fsl,mpc8377-pmc
 53              - fsl,mpc8378-pmc
 54              - fsl,mpc8379-pmc
 55          - const: fsl,mpc8349-pmc
 56
 57      - items:
 58          - const: fsl,p1022-pmc
 59          - const: fsl,mpc8536-pmc
 60          - const: fsl,mpc8548-pmc
 61
 62      - items:
 63          - enum:
 64              - fsl,mpc8536-pmc
 65              - fsl,mpc8568-pmc
 66              - fsl,mpc8569-pmc
 67          - const: fsl,mpc8548-pmc
 68
 69      - enum:
 70          - fsl,mpc8548-pmc
 71          - fsl,mpc8641d-pmc
 72
 73    description: |
 74      "fsl,mpc8349-pmc" should be listed for any chip whose PMC is
 75      compatible.  "fsl,mpc8313-pmc" should also be listed for any chip
 76      whose PMC is compatible, and implies deep-sleep capability.
 77
 78      "fsl,mpc8548-pmc" should be listed for any chip whose PMC is
 79      compatible.  "fsl,mpc8536-pmc" should also be listed for any chip
 80      whose PMC is compatible, and implies deep-sleep capability.
 81
 82      "fsl,mpc8641d-pmc" should be listed for any chip whose PMC is
 83      compatible; all statements below that apply to "fsl,mpc8548-pmc" also
 84      apply to "fsl,mpc8641d-pmc".
 85
 86      Compatibility does not include bit assignments in SCCR/PMCDR/DEVDISR; these
 87      bit assignments are indicated via the sleep specifier in each device's
 88      sleep property.
 89
 90  reg:
 91    minItems: 1
 92    maxItems: 2
 93
 94  interrupts:
 95    maxItems: 1
 96
 97  fsl,mpc8313-wakeup-timer:
 98    $ref: /schemas/types.yaml#/definitions/phandle
 99    description:
100      For "fsl,mpc8313-pmc"-compatible devices, this is a phandle to an
101      "fsl,gtm" node on which timer 4 can be used as a wakeup source from deep
102      sleep.
103
104allOf:
105  - if:
106      properties:
107        compatible:
108          contains:
109            const: fsl,mpc8349-pmc
110    then:
111      properties:
112        reg:
113          items:
114            - description: PMC block
115            - description: Clock Configuration block
116
117  - if:
118      properties:
119        compatible:
120          contains:
121            enum:
122              - fsl,mpc8548-pmc
123              - fsl,mpc8641d-pmc
124    then:
125      properties:
126        reg:
127          items:
128            - description: 32-byte block beginning with DEVDISR
129
130required:
131  - compatible
132  - reg
133
134additionalProperties: false
135
136examples:
137  - |
138    #include <dt-bindings/interrupt-controller/irq.h>
139
140    pmc: power@b00 {
141        compatible = "fsl,mpc8377-pmc", "fsl,mpc8349-pmc";
142        reg = <0xb00 0x100>, <0xa00 0x100>;
143        interrupts = <80 IRQ_TYPE_LEVEL_LOW>;
144    };
145
146  - |
147    power@e0070 {
148        compatible = "fsl,mpc8548-pmc";
149        reg = <0xe0070 0x20>;
150    };
151
152...
~/ Read-only file preview.