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