xref: /freebsd-src/sys/contrib/device-tree/Bindings/sound/cs42l56.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotCS42L52 audio CODEC
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot
5*c66ec88fSEmmanuel Vadot  - compatible : "cirrus,cs42l56"
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel Vadot  - reg : the I2C address of the device for I2C
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot  - VA-supply, VCP-supply, VLDO-supply : power supplies for the device,
10*c66ec88fSEmmanuel Vadot  as covered in Documentation/devicetree/bindings/regulator/regulator.txt.
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel VadotOptional properties:
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel Vadot  - cirrus,gpio-nreset : GPIO controller's phandle and the number
15*c66ec88fSEmmanuel Vadot  of the GPIO used to reset the codec.
16*c66ec88fSEmmanuel Vadot
17*c66ec88fSEmmanuel Vadot  - cirrus,chgfreq-divisor : Values used to set the Charge Pump Frequency.
18*c66ec88fSEmmanuel Vadot  Allowable values of 0x00 through 0x0F. These are raw values written to the
19*c66ec88fSEmmanuel Vadot  register, not the actual frequency. The frequency is determined by the following.
20*c66ec88fSEmmanuel Vadot  Frequency = MCLK / 4 * (N+2)
21*c66ec88fSEmmanuel Vadot  N = chgfreq_val
22*c66ec88fSEmmanuel Vadot  MCLK = Where MCLK is the frequency of the mclk signal after the MCLKDIV2 circuit.
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel Vadot  - cirrus,ain1a-ref-cfg, ain1b-ref-cfg : boolean, If present, AIN1A or AIN1B are configured
25*c66ec88fSEmmanuel Vadot  as a pseudo-differential input referenced to AIN1REF/AIN3A.
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel Vadot  - cirrus,ain2a-ref-cfg, ain2b-ref-cfg : boolean, If present, AIN2A or AIN2B are configured
28*c66ec88fSEmmanuel Vadot  as a pseudo-differential input referenced to AIN2REF/AIN3B.
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel Vadot  - cirrus,micbias-lvl: Set the output voltage level on the MICBIAS Pin.
31*c66ec88fSEmmanuel Vadot  0 = 0.5 x VA
32*c66ec88fSEmmanuel Vadot  1 = 0.6 x VA
33*c66ec88fSEmmanuel Vadot  2 = 0.7 x VA
34*c66ec88fSEmmanuel Vadot  3 = 0.8 x VA
35*c66ec88fSEmmanuel Vadot  4 = 0.83 x VA
36*c66ec88fSEmmanuel Vadot  5 = 0.91 x VA
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadot  - cirrus,adaptive-pwr-cfg : Configures how the power to the Headphone and Lineout
39*c66ec88fSEmmanuel Vadot  Amplifiers adapt to the output signal levels.
40*c66ec88fSEmmanuel Vadot  0 = Adapt to Volume Mode. Voltage level determined by the sum of the relevant volume settings.
41*c66ec88fSEmmanuel Vadot  1 = Fixed - Headphone and Line Amp supply = + or - VCP/2.
42*c66ec88fSEmmanuel Vadot  2 = Fixed - Headphone and Line Amp supply = + or - VCP.
43*c66ec88fSEmmanuel Vadot  3 = Adapted to Signal; Voltage level is dynamically determined by the output signal.
44*c66ec88fSEmmanuel Vadot
45*c66ec88fSEmmanuel Vadot  - cirrus,hpf-left-freq, hpf-right-freq : Sets the corner frequency (-3dB point) for the internal High-Pass
46*c66ec88fSEmmanuel Vadot  Filter.
47*c66ec88fSEmmanuel Vadot  0 = 1.8Hz
48*c66ec88fSEmmanuel Vadot  1 = 119Hz
49*c66ec88fSEmmanuel Vadot  2 = 236Hz
50*c66ec88fSEmmanuel Vadot  3 = 464Hz
51*c66ec88fSEmmanuel Vadot
52*c66ec88fSEmmanuel Vadot
53*c66ec88fSEmmanuel VadotExample:
54*c66ec88fSEmmanuel Vadot
55*c66ec88fSEmmanuel Vadotcodec: codec@4b {
56*c66ec88fSEmmanuel Vadot	compatible = "cirrus,cs42l56";
57*c66ec88fSEmmanuel Vadot	reg = <0x4b>;
58*c66ec88fSEmmanuel Vadot	cirrus,gpio-nreset = <&gpio 10 0>;
59*c66ec88fSEmmanuel Vadot	cirrus,chgfreq-divisor = <0x05>;
60*c66ec88fSEmmanuel Vadot	cirrus.ain1_ref_cfg;
61*c66ec88fSEmmanuel Vadot	cirrus,micbias-lvl = <5>;
62*c66ec88fSEmmanuel Vadot	VA-supply = <&reg_audio>;
63*c66ec88fSEmmanuel Vadot};
64