Merge tag 'kbuild-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / sound / cs35l36.txt
1 CS35L36 Speaker Amplifier
2
3 Required properties:
4
5   - compatible : "cirrus,cs35l36"
6
7   - reg : the I2C address of the device for I2C
8
9   - VA-supply, VP-supply : power supplies for the device,
10   as covered in
11   Documentation/devicetree/bindings/regulator/regulator.txt.
12
13   - cirrus,boost-ctl-millivolt : Boost Voltage Value.  Configures the boost
14   converter's output voltage in mV. The range is from 2550mV to 12000mV with
15   increments of 50mV.
16   (Default) VP
17
18   - cirrus,boost-peak-milliamp : Boost-converter peak current limit in mA.
19   Configures the peak current by monitoring the current through the boost FET.
20   Range starts at 1600mA and goes to a maximum of 4500mA with increments of
21   50mA.
22   (Default) 4.50 Amps
23
24   - cirrus,boost-ind-nanohenry : Inductor estimation LBST reference value.
25   Seeds the digital boost converter's inductor estimation block with the initial
26   inductance value to reference.
27
28   1000 = 1uH (Default)
29   1200 = 1.2uH
30
31 Optional properties:
32   - cirrus,multi-amp-mode : Boolean to determine if there are more than
33   one amplifier in the system. If more than one it is best to Hi-Z the ASP
34   port to prevent bus contention on the output signal
35
36   - cirrus,boost-ctl-select : Boost conerter control source selection.
37   Selects the source of the BST_CTL target VBST voltage for the boost
38   converter to generate.
39   0x00 - Control Port Value
40   0x01 - Class H Tracking (Default)
41   0x10 - MultiDevice Sync Value
42
43   - cirrus,amp-pcm-inv : Boolean to determine Amplifier will invert incoming
44   PCM data
45
46   - cirrus,imon-pol-inv : Boolean to determine Amplifier will invert the
47   polarity of outbound IMON feedback data
48
49   - cirrus,vmon-pol-inv : Boolean to determine Amplifier will invert the
50   polarity of outbound VMON feedback data
51
52   - cirrus,dcm-mode-enable : Boost converter automatic DCM Mode enable.
53   This enables the digital boost converter to operate in a low power
54   (Discontinuous Conduction) mode during low loading conditions.
55
56   - cirrus,weak-fet-disable : Boolean : The strength of the output drivers is
57   reduced when operating in a Weak-FET Drive Mode and must not be used to drive
58   a large load.
59
60   - cirrus,classh-wk-fet-delay :  Weak-FET entry delay. Controls the delay
61   (in ms) before the Class H algorithm switches to the weak-FET voltage
62   (after the audio falls and remains below the value specified in WKFET_AMP_THLD).
63
64   0 = 0ms
65   1 = 5ms
66   2 = 10ms
67   3 = 50ms
68   4 = 100ms (Default)
69   5 = 200ms
70   6 = 500ms
71   7 = 1000ms
72
73   - cirrus,classh-weak-fet-thld-millivolt : Weak-FET amplifier drive threshold.
74   Configures the signal threshold at which the PWM output stage enters
75   weak-FET operation. The range is 50mV to 700mV in 50mV increments.
76
77   - cirrus,temp-warn-threshold :  Amplifier overtemperature warning threshold.
78   Configures the threshold at which the overtemperature warning condition occurs.
79   When the threshold is met, the overtemperature warning attenuation is applied
80   and the TEMP_WARN_EINT interrupt status bit is set.
81   If TEMP_WARN_MASK = 0, INTb is asserted.
82
83   0 = 105C
84   1 = 115C
85   2 = 125C (Default)
86   3 = 135C
87
88   - cirrus,irq-drive-select : Selects the driver type of the selected interrupt
89   output.
90
91   0 = Open-drain
92   1 = Push-pull (Default)
93
94   - cirrus,irq-gpio-select : Selects the pin to serve as the programmable
95   interrupt output.
96
97   0 = PDM_DATA / SWIRE_SD / INT (Default)
98   1 = GPIO
99
100 Optional properties for the "cirrus,vpbr-config" Sub-node
101
102   - cirrus,vpbr-en : VBST brownout prevention enable. Configures whether the
103   VBST brownout prevention algorithm is enabled or disabled.
104
105   0 = VBST brownout prevention disabled (default)
106   1 = VBST brownout prevention enabled
107
108   See Section 7.31.1 VPBR Config for configuration options & further details
109
110   - cirrus,vpbr-thld : Initial VPBR threshold. Configures the VP brownout
111   threshold voltage
112
113   - cirrus,cirrus,vpbr-atk-rate : Attenuation attack step rate. Configures the
114   amount delay between consecutive volume attenuation steps when a brownout
115   condition is present and the VP brownout condition is in an attacking state.
116
117   - cirrus,vpbr-atk-vol : VP brownout prevention step size. Configures the VP
118   brownout prevention attacking attenuation step size when operating in either
119   digital volume or analog gain modes.
120
121   - cirrus,vpbr-max-attn : Maximum attenuation that the VP brownout prevention
122   can apply to the audio signal.
123
124   - cirrus,vpbr-wait : Configures the delay time between a brownout condition
125   no longer being present and the VP brownout prevention entering an attenuation
126   release state.
127
128   - cirrus,vpbr-rel-rate : Attenuation release step rate. Configures the delay
129   between consecutive volume attenuation release steps when a brownout condition
130   is not longer present and the VP brownout is in an attenuation release state.
131
132   - cirrus,vpbr-mute-en : During the attack state, if the vpbr-max-attn value
133   is reached, the error condition still remains, and this bit is set, the audio
134   is muted.
135
136 Example:
137
138 cs35l36: cs35l36@40 {
139         compatible = "cirrus,cs35l36";
140         reg = <0x40>;
141         VA-supply = <&dummy_vreg>;
142         VP-supply = <&dummy_vreg>;
143         reset-gpios = <&gpio0 54 0>;
144         interrupt-parent = <&gpio8>;
145         interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
146
147         cirrus,boost-ind-nanohenry = <1000>;
148         cirrus,boost-ctl-millivolt = <10000>;
149         cirrus,boost-peak-milliamp = <4500>;
150         cirrus,boost-ctl-select = <0x00>;
151         cirrus,weak-fet-delay = <0x04>;
152         cirrus,weak-fet-thld = <0x01>;
153         cirrus,temp-warn-threshold = <0x01>;
154         cirrus,multi-amp-mode;
155         cirrus,irq-drive-select = <0x01>;
156         cirrus,irq-gpio-select = <0x01>;
157
158         cirrus,vpbr-config {
159                 cirrus,vpbr-en = <0x00>;
160                 cirrus,vpbr-thld = <0x05>;
161                 cirrus,vpbr-atk-rate = <0x02>;
162                 cirrus,vpbr-atk-vol = <0x01>;
163                 cirrus,vpbr-max-attn = <0x09>;
164                 cirrus,vpbr-wait = <0x01>;
165                 cirrus,vpbr-rel-rate = <0x05>;
166                 cirrus,vpbr-mute-en = <0x00>;
167         };
168 };