1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/regulator/richtek,rtmv20-regulator.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Richtek RTMV20 laser diode regulator
8
9maintainers:
10  - ChiYuan Huang <cy_huang@richtek.com>
11
12description: |
13  Richtek RTMV20 is a load switch current regulator that can supply up to 6A.
14  It is used to drive laser diode. There're two signals for chip controls
15  (Enable/Fail), Enable pin to turn chip on, and Fail pin as fault indication.
16  There're still four pins for camera control, two inputs (strobe and vsync),
17  the others for outputs (fsin1 and fsin2). Strobe input to start the current
18  supply, vsync input from IR camera, and fsin1/fsin2 output for the optional.
19
20properties:
21  compatible:
22    const: richtek,rtmv20
23
24  reg:
25    maxItems: 1
26
27  wakeup-source: true
28
29  interrupts:
30    maxItems: 1
31
32  enable-gpios:
33    description: A connection of the 'enable' gpio line.
34    maxItems: 1
35
36  richtek,ld-pulse-delay-us:
37    description: |
38      load current pulse delay in microsecond after strobe pin pulse high.
39    minimum: 0
40    maximum: 100000
41    default: 0
42
43  richtek,ld-pulse-width-us:
44    description: |
45      Load current pulse width in microsecond after strobe pin pulse high.
46    minimum: 0
47    maximum: 10000
48    default: 1200
49
50  richtek,fsin1-delay-us:
51    description: |
52      Fsin1 pulse high delay in microsecond after vsync signal pulse high.
53    minimum: 0
54    maximum: 100000
55    default: 23000
56
57  richtek,fsin1-width-us:
58    description: |
59      Fsin1 pulse high width in microsecond after vsync signal pulse high.
60    minimum: 40
61    maximum: 10000
62    default: 160
63
64  richtek,fsin2-delay-us:
65    description: |
66      Fsin2 pulse high delay in microsecond after vsync signal pulse high.
67    minimum: 0
68    maximum: 100000
69    default: 23000
70
71  richtek,fsin2-width-us:
72    description: |
73      Fsin2 pulse high width in microsecond after vsync signal pulse high.
74    minimum: 40
75    maximum: 10000
76    default: 160
77
78  richtek,es-pulse-width-us:
79    description: Eye safety function pulse width limit in microsecond.
80    minimum: 0
81    maximum: 10000
82    default: 1200
83
84  richtek,es-ld-current-microamp:
85    description: Eye safety function load current limit in microamp.
86    minimum: 0
87    maximum: 6000000
88    default: 3000000
89
90  richtek,lbp-level-microvolt:
91    description: Low battery protection level in microvolt.
92    minimum: 2400000
93    maximum: 3700000
94    default: 2700000
95
96  richtek,lbp-enable:
97    description: Low battery protection function enable control.
98    type: boolean
99
100  richtek,strobe-polarity-high:
101    description: Strobe pin active polarity control.
102    type: boolean
103
104  richtek,vsync-polarity-high:
105    description: Vsync pin active polarity control.
106    type: boolean
107
108  richtek,fsin-enable:
109    description: Fsin function enable control.
110    type: boolean
111
112  richtek,fsin-output:
113    description: Fsin function output control.
114    type: boolean
115
116  richtek,es-enable:
117    description: Eye safety function enable control.
118    type: boolean
119
120  lsw:
121    description: load switch current regulator description.
122    type: object
123    $ref: "regulator.yaml#"
124
125required:
126  - compatible
127  - reg
128  - wakeup-source
129  - interrupts
130  - enable-gpios
131  - lsw
132
133additionalProperties: false
134
135examples:
136  - |
137    #include <dt-bindings/interrupt-controller/irq.h>
138    i2c {
139      #address-cells = <1>;
140      #size-cells = <0>;
141
142      rtmv20@34 {
143        compatible = "richtek,rtmv20";
144        reg = <0x34>;
145        wakeup-source;
146        interrupts-extended = <&gpio26 2 IRQ_TYPE_LEVEL_LOW>;
147        enable-gpios = <&gpio26 3 0>;
148
149        richtek,strobe-polarity-high;
150        richtek,vsync-polarity-high;
151
152        lsw {
153                regulator-name = "rtmv20,lsw";
154                regulator-min-microamp = <0>;
155                regulator-max-microamp = <6000000>;
156        };
157      };
158    };
159...
160