Documentation / devicetree / bindings / power / reset / qcom,pon.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/reset/qcom,pon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm PON Device

maintainers:
  - Vinod Koul <vkoul@kernel.org>

description: |
  The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey
  and resin along with the Android reboot-mode.
 
  This DT node has pwrkey and resin as sub nodes.

properties:
  compatible:
    enum:
      - qcom,pm8916-pon
      - qcom,pm8941-pon
      - qcom,pms405-pon
      - qcom,pm8998-pon
      - qcom,pmk8350-pon

  reg:
    description: |
      Specifies the SPMI base address for the PON (power-on) peripheral.  For
      PMICs that have the PON peripheral (GEN3) split into PON_HLOS and PON_PBS
      (e.g. PMK8350), this can hold addresses of both PON_HLOS and PON_PBS
      peripherals.  In that case, the PON_PBS address needs to be specified to
      facilitate software debouncing on some PMIC.
    minItems: 1
    maxItems: 2

  reg-names:
    minItems: 1
    maxItems: 2

  pwrkey:
    type: object
    $ref: /schemas/input/qcom,pm8941-pwrkey.yaml#

  resin:
    type: object
    $ref: /schemas/input/qcom,pm8941-pwrkey.yaml#

  watchdog:
    type: object
    $ref: /schemas/watchdog/qcom,pm8916-wdt.yaml

required:
  - compatible
  - reg

unevaluatedProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,pm8916-pon
              - qcom,pms405-pon
              - qcom,pm8998-pon
    then:
      allOf:
        - $ref: reboot-mode.yaml#

      properties:
        reg:
          maxItems: 1
        reg-names:
          items:
            - const: pon
 
    # Special case for pm8941, which doesn't store reset mode
  - if:
      properties:
        compatible:
          contains:
            const: qcom,pm8941-pon
    then:
      properties:
        reg:
          maxItems: 1
        reg-names:
          items:
            - const: pon

  - if:
      properties:
        compatible:
          contains:
            const: qcom,pmk8350-pon
    then:
      properties:
        reg:
          minItems: 1
          maxItems: 2
        reg-names:
          minItems: 1
          items:
            - const: hlos
            - const: pbs

examples:
  - |
   #include <dt-bindings/interrupt-controller/irq.h>
   #include <dt-bindings/input/linux-event-codes.h>
   #include <dt-bindings/spmi/spmi.h>
 
   spmi@c440000 {
     reg = <0x0c440000 0x1100>;
     #address-cells = <2>;
     #size-cells = <0>;
 
     pmic@0 {
       reg = <0x0 SPMI_USID>;
       #address-cells = <1>;
       #size-cells = <0>;
 
       pon@800 {
         compatible = "qcom,pm8998-pon";
         reg = <0x800>;
 
         pwrkey {
            compatible = "qcom,pm8941-pwrkey";
            interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
            debounce = <15625>;
            bias-pull-up;
            linux,code = <KEY_POWER>;
         };
 
         resin {
            compatible = "qcom,pm8941-resin";
            interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
            debounce = <15625>;
            bias-pull-up;
            linux,code = <KEY_VOLUMEDOWN>;
         };
       };
     };
   };
...