The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/regulator/maxim,max8997.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # SPDX-License-Identifier: GPL-2.0-only
    2 %YAML 1.2
    3 ---
    4 $id: http://devicetree.org/schemas/regulator/maxim,max8997.yaml#
    5 $schema: http://devicetree.org/meta-schemas/core.yaml#
    6 
    7 title: Maxim MAX8997 Power Management IC
    8 
    9 maintainers:
   10   - Krzysztof Kozlowski <krzk@kernel.org>
   11 
   12 description: |
   13   The Maxim MAX8997 is a Power Management IC which includes voltage and current
   14   regulators, charger controller with fuel gauge, RTC, clock outputs, haptic
   15   motor driver, flash LED driver and Micro-USB Interface Controller.
   16 
   17   The binding here is not complete and describes only regulator and charger
   18   controller parts.
   19 
   20 properties:
   21   compatible:
   22     const: maxim,max8997-pmic
   23 
   24   charger-supply:
   25     description: |
   26       Regulator node for charging current.
   27 
   28   interrupts:
   29     items:
   30       - description: irq1 interrupt
   31       - description: alert interrupt
   32 
   33   max8997,pmic-buck1-dvs-voltage:
   34     $ref: /schemas/types.yaml#/definitions/uint32-array
   35     minItems: 1
   36     maxItems: 8
   37     description: |
   38       A set of 8 voltage values in micro-volt (uV) units for buck1 when
   39       changing voltage using GPIO DVS.
   40       If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
   41       specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
   42       specify at least one voltage level (which would be a safe operating
   43       voltage).
   44 
   45   max8997,pmic-buck2-dvs-voltage:
   46     $ref: /schemas/types.yaml#/definitions/uint32-array
   47     minItems: 1
   48     maxItems: 8
   49     description: |
   50       A set of 8 voltage values in micro-volt (uV) units for buck2 when
   51       changing voltage using GPIO DVS.
   52       If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
   53       specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
   54       specify at least one voltage level (which would be a safe operating
   55       voltage).
   56 
   57   max8997,pmic-buck5-dvs-voltage:
   58     $ref: /schemas/types.yaml#/definitions/uint32-array
   59     minItems: 1
   60     maxItems: 8
   61     description: |
   62       A set of 8 voltage values in micro-volt (uV) units for buck5 when
   63       changing voltage using GPIO DVS.
   64       If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
   65       specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
   66       specify at least one voltage level (which would be a safe operating
   67       voltage).
   68 
   69   max8997,pmic-buck1-uses-gpio-dvs:
   70     type: boolean
   71     description: |
   72       buck1 can be controlled by GPIO DVS.
   73 
   74   max8997,pmic-buck2-uses-gpio-dvs:
   75     type: boolean
   76     description: |
   77       buck2 can be controlled by GPIO DVS.
   78 
   79   max8997,pmic-buck5-uses-gpio-dvs:
   80     type: boolean
   81     description: |
   82       buck5 can be controlled by GPIO DVS.
   83 
   84   max8997,pmic-buck125-default-dvs-idx:
   85     $ref: /schemas/types.yaml#/definitions/uint32
   86     minimum: 0
   87     maximum: 7
   88     default: 0
   89     description: |
   90       Default voltage setting selected from the possible 8 options selectable
   91       by the dvs gpios. The value of this property should be between 0 and 7.
   92       If not specified or if out of range, the default value of this property
   93       is set to 0.
   94 
   95   max8997,pmic-buck125-dvs-gpios:
   96     minItems: 3
   97     maxItems: 3
   98     description: |
   99       GPIO specifiers for three host gpio's used for DVS.
  100 
  101   max8997,pmic-ignore-gpiodvs-side-effect:
  102     type: boolean
  103     description: |
  104       When GPIO-DVS mode is used for multiple bucks, changing the voltage value
  105       of one of the bucks may affect that of another buck, which is the side
  106       effect of the change (set_voltage).  Use this property to ignore such
  107       side effects and change the voltage.
  108 
  109   reg:
  110     maxItems: 1
  111 
  112   regulators:
  113     type: object
  114     description:
  115       List of child nodes that specify the regulators.
  116 
  117     patternProperties:
  118       # 1-18 and 21 LDOs
  119       "^LDO([1-9]|1[0-8]|21)$":
  120         type: object
  121         $ref: regulator.yaml#
  122         description:
  123           Properties for single LDO regulator.
  124 
  125         properties:
  126           regulator-name: true
  127 
  128         required:
  129           - regulator-name
  130 
  131         unevaluatedProperties: false
  132 
  133       # 7 bucks
  134       "^BUCK[1-7]$":
  135         type: object
  136         $ref: regulator.yaml#
  137         description:
  138           Properties for single BUCK regulator.
  139 
  140         properties:
  141           regulator-name: true
  142 
  143         required:
  144           - regulator-name
  145 
  146         unevaluatedProperties: false
  147 
  148       "^EN32KHZ_[AC]P$":
  149         type: object
  150         $ref: regulator.yaml#
  151         description:
  152           32768 Hz clock output (modelled as regulator)
  153 
  154         properties:
  155           regulator-name: true
  156           regulator-always-on: true
  157           regulator-boot-on: true
  158 
  159         required:
  160           - regulator-name
  161 
  162         additionalProperties: false
  163 
  164     properties:
  165       CHARGER:
  166         type: object
  167         $ref: regulator.yaml#
  168         description: main battery charger current control
  169 
  170         properties:
  171           regulator-name: true
  172 
  173         required:
  174           - regulator-name
  175 
  176         unevaluatedProperties: false
  177 
  178       CHARGER_CV:
  179         type: object
  180         $ref: regulator.yaml#
  181         description: main battery charger voltage control
  182 
  183         properties:
  184           regulator-name: true
  185 
  186         required:
  187           - regulator-name
  188 
  189         unevaluatedProperties: false
  190 
  191       CHARGER_TOPOFF:
  192         type: object
  193         $ref: regulator.yaml#
  194         description: end of charge current threshold level
  195 
  196         properties:
  197           regulator-name: true
  198 
  199         required:
  200           - regulator-name
  201 
  202         unevaluatedProperties: false
  203 
  204       ENVICHG:
  205         type: object
  206         $ref: regulator.yaml#
  207         description: |
  208           Battery Charging Current Monitor Output. This is a fixed voltage type
  209           regulator
  210         properties:
  211           regulator-name: true
  212 
  213         required:
  214           - regulator-name
  215 
  216         unevaluatedProperties: false
  217 
  218       ESAFEOUT1:
  219         type: object
  220         $ref: regulator.yaml#
  221         description: LDO19
  222 
  223         properties:
  224           regulator-name: true
  225 
  226         required:
  227           - regulator-name
  228 
  229         unevaluatedProperties: false
  230 
  231       ESAFEOUT2:
  232         type: object
  233         $ref: regulator.yaml#
  234         description: LDO20
  235 
  236         properties:
  237           regulator-name: true
  238 
  239         required:
  240           - regulator-name
  241 
  242         unevaluatedProperties: false
  243 
  244 required:
  245   - compatible
  246   - max8997,pmic-buck1-dvs-voltage
  247   - max8997,pmic-buck2-dvs-voltage
  248   - max8997,pmic-buck5-dvs-voltage
  249   - reg
  250   - regulators
  251 
  252 dependencies:
  253   max8997,pmic-buck1-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
  254   max8997,pmic-buck2-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
  255   max8997,pmic-buck5-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
  256 
  257 additionalProperties: false
  258 
  259 if:
  260   anyOf:
  261     - required:
  262         - max8997,pmic-buck1-uses-gpio-dvs
  263     - required:
  264         - max8997,pmic-buck2-uses-gpio-dvs
  265     - required:
  266         - max8997,pmic-buck5-uses-gpio-dvs
  267 then:
  268   properties:
  269     max8997,pmic-buck1-dvs-voltage:
  270       minItems: 8
  271       maxItems: 8
  272     max8997,pmic-buck2-dvs-voltage:
  273       minItems: 8
  274       maxItems: 8
  275     max8997,pmic-buck5-dvs-voltage:
  276       minItems: 8
  277       maxItems: 8
  278 
  279 examples:
  280   - |
  281     #include <dt-bindings/gpio/gpio.h>
  282     #include <dt-bindings/interrupt-controller/irq.h>
  283 
  284     i2c {
  285         #address-cells = <1>;
  286         #size-cells = <0>;
  287 
  288         pmic@66 {
  289             compatible = "maxim,max8997-pmic";
  290             reg = <0x66>;
  291 
  292             interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>,
  293                                   <&gpx2 3 IRQ_TYPE_EDGE_FALLING>;
  294 
  295             max8997,pmic-buck1-uses-gpio-dvs;
  296             max8997,pmic-buck2-uses-gpio-dvs;
  297             max8997,pmic-buck5-uses-gpio-dvs;
  298 
  299             max8997,pmic-ignore-gpiodvs-side-effect;
  300             max8997,pmic-buck125-default-dvs-idx = <0>;
  301 
  302             max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
  303                                              <&gpx0 6 GPIO_ACTIVE_HIGH>,
  304                                              <&gpl0 0 GPIO_ACTIVE_HIGH>;
  305 
  306             max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
  307                                              <1250000>, <1200000>,
  308                                              <1150000>, <1100000>,
  309                                              <1000000>, <950000>;
  310 
  311             max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
  312                                              <950000>,  <900000>,
  313                                              <1100000>, <1000000>,
  314                                              <950000>,  <900000>;
  315 
  316             max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
  317                                              <1200000>, <1200000>,
  318                                              <1200000>, <1200000>,
  319                                              <1200000>, <1200000>;
  320 
  321             pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
  322             pinctrl-names = "default";
  323 
  324             charger-supply = <&charger_reg>;
  325 
  326             regulators {
  327                 LDO1 {
  328                     regulator-name = "VADC_3.3V_C210";
  329                     regulator-min-microvolt = <3300000>;
  330                     regulator-max-microvolt = <3300000>;
  331                     regulator-always-on;
  332                 };
  333 
  334                 LDO2 {
  335                     regulator-name = "VALIVE_1.1V_C210";
  336                     regulator-min-microvolt = <1100000>;
  337                     regulator-max-microvolt = <1100000>;
  338                     regulator-always-on;
  339                 };
  340 
  341                 BUCK1 {
  342                     regulator-name = "VARM_1.2V_C210";
  343                     regulator-min-microvolt = <65000>;
  344                     regulator-max-microvolt = <2225000>;
  345                     regulator-always-on;
  346                 };
  347 
  348                 // ...
  349 
  350                 BUCK7 {
  351                     regulator-name = "VCC_SUB_2.0V";
  352                     regulator-min-microvolt = <2000000>;
  353                     regulator-max-microvolt = <2000000>;
  354                     regulator-always-on;
  355                 };
  356 
  357                 ESAFEOUT1 {
  358                     regulator-name = "SAFEOUT1";
  359                 };
  360 
  361                 ESAFEOUT2 {
  362                     regulator-name = "SAFEOUT2";
  363                     regulator-boot-on;
  364                 };
  365 
  366                 EN32KHZ_AP {
  367                     regulator-name = "EN32KHZ_AP";
  368                     regulator-always-on;
  369                 };
  370 
  371                 EN32KHZ_CP {
  372                     regulator-name = "EN32KHZ_CP";
  373                     regulator-always-on;
  374                 };
  375 
  376                 CHARGER {
  377                     regulator-name = "CHARGER";
  378                     regulator-min-microamp = <200000>;
  379                     regulator-max-microamp = <950000>;
  380                 };
  381 
  382                 CHARGER_CV {
  383                     regulator-name = "CHARGER_CV";
  384                     regulator-min-microvolt = <4200000>;
  385                     regulator-max-microvolt = <4200000>;
  386                     regulator-always-on;
  387                 };
  388 
  389                 CHARGER_TOPOFF {
  390                     regulator-name = "CHARGER_TOPOFF";
  391                     regulator-min-microamp = <200000>;
  392                     regulator-max-microamp = <200000>;
  393                     regulator-always-on;
  394                 };
  395             };
  396         };
  397     };
  398 
  399   - |
  400     #include <dt-bindings/interrupt-controller/irq.h>
  401 
  402     i2c {
  403         #address-cells = <1>;
  404         #size-cells = <0>;
  405 
  406         pmic@66 {
  407             compatible = "maxim,max8997-pmic";
  408             reg = <0x66>;
  409 
  410             interrupt-parent = <&gpx0>;
  411             interrupts = <4 IRQ_TYPE_LEVEL_LOW>,
  412                          <3 IRQ_TYPE_EDGE_FALLING>;
  413             pinctrl-names = "default";
  414             pinctrl-0 = <&max8997_irq>;
  415 
  416             max8997,pmic-buck1-dvs-voltage = <1350000>;
  417             max8997,pmic-buck2-dvs-voltage = <1100000>;
  418             max8997,pmic-buck5-dvs-voltage = <1200000>;
  419 
  420             regulators {
  421                 LDO1 {
  422                     regulator-name = "VDD_ABB_3.3V";
  423                     regulator-min-microvolt = <3300000>;
  424                     regulator-max-microvolt = <3300000>;
  425                 };
  426 
  427                 // ...
  428 
  429                 BUCK1 {
  430                     regulator-name = "VDD_ARM_1.2V";
  431                     regulator-min-microvolt = <950000>;
  432                     regulator-max-microvolt = <1350000>;
  433                     regulator-always-on;
  434                     regulator-boot-on;
  435                 };
  436 
  437                 // ...
  438 
  439                 EN32KHZ_AP {
  440                     regulator-name = "EN32KHZ_AP";
  441                     regulator-always-on;
  442                 };
  443             };
  444         };
  445     };

Cache object: da6984f3e39dd5793264a119dac7b3f0


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.