Documentation / devicetree / bindings / regulator / richtek,rtmv20-regulator.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 148 149 150 151 152 153 154 155 156 157 158 159 160
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/richtek,rtmv20-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Richtek RTMV20 laser diode regulator

maintainers:
  - ChiYuan Huang <cy_huang@richtek.com>

description: |
  Richtek RTMV20 is a load switch current regulator that can supply up to 6A.
  It is used to drive laser diode. There're two signals for chip controls
  (Enable/Fail), Enable pin to turn chip on, and Fail pin as fault indication.
  There're still four pins for camera control, two inputs (strobe and vsync),
  the others for outputs (fsin1 and fsin2). Strobe input to start the current
  supply, vsync input from IR camera, and fsin1/fsin2 output for the optional.

properties:
  compatible:
    const: richtek,rtmv20

  reg:
    maxItems: 1

  wakeup-source: true

  interrupts:
    maxItems: 1

  enable-gpios:
    description: A connection of the 'enable' gpio line.
    maxItems: 1

  richtek,ld-pulse-delay-us:
    description: |
      load current pulse delay in microsecond after strobe pin pulse high.
    minimum: 0
    maximum: 100000
    default: 0

  richtek,ld-pulse-width-us:
    description: |
      Load current pulse width in microsecond after strobe pin pulse high.
    minimum: 0
    maximum: 10000
    default: 1200

  richtek,fsin1-delay-us:
    description: |
      Fsin1 pulse high delay in microsecond after vsync signal pulse high.
    minimum: 0
    maximum: 100000
    default: 23000

  richtek,fsin1-width-us:
    description: |
      Fsin1 pulse high width in microsecond after vsync signal pulse high.
    minimum: 40
    maximum: 10000
    default: 160

  richtek,fsin2-delay-us:
    description: |
      Fsin2 pulse high delay in microsecond after vsync signal pulse high.
    minimum: 0
    maximum: 100000
    default: 23000

  richtek,fsin2-width-us:
    description: |
      Fsin2 pulse high width in microsecond after vsync signal pulse high.
    minimum: 40
    maximum: 10000
    default: 160

  richtek,es-pulse-width-us:
    description: Eye safety function pulse width limit in microsecond.
    minimum: 0
    maximum: 10000
    default: 1200

  richtek,es-ld-current-microamp:
    description: Eye safety function load current limit in microamp.
    minimum: 0
    maximum: 6000000
    default: 3000000

  richtek,lbp-level-microvolt:
    description: Low battery protection level in microvolt.
    minimum: 2400000
    maximum: 3700000
    default: 2700000

  richtek,lbp-enable:
    description: Low battery protection function enable control.
    type: boolean

  richtek,strobe-polarity-high:
    description: Strobe pin active polarity control.
    type: boolean

  richtek,vsync-polarity-high:
    description: Vsync pin active polarity control.
    type: boolean

  richtek,fsin-enable:
    description: Fsin function enable control.
    type: boolean

  richtek,fsin-output:
    description: Fsin function output control.
    type: boolean

  richtek,es-enable:
    description: Eye safety function enable control.
    type: boolean

  lsw:
    description: load switch current regulator description.
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false

required:
  - compatible
  - reg
  - wakeup-source
  - interrupts
  - enable-gpios
  - lsw

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
 
      rtmv20@34 {
        compatible = "richtek,rtmv20";
        reg = <0x34>;
        wakeup-source;
        interrupts-extended = <&gpio26 2 IRQ_TYPE_LEVEL_LOW>;
        enable-gpios = <&gpio26 3 0>;
 
        richtek,strobe-polarity-high;
        richtek,vsync-polarity-high;
 
        lsw {
                regulator-name = "rtmv20,lsw";
                regulator-min-microamp = <0>;
                regulator-max-microamp = <6000000>;
        };
      };
    };
...