On Tue, Jul 29, 2014 at 03:02:43PM -0500, Brian Austin wrote:
This patch adds the devicetree bindings file for the Cirrus Logic CS35L32 Boosted Amplifier
Word wrapping in the commit message please.
- cirrus,sdout-datacfg : Data configuration for dual CS35L32 applications only.
- Determines the data packed in a two-CS35L32 configuration.
- 0 = Left/right channels VMON[11:0], IMON[11:0], VPMON[7:0].
- 1 = Left/right channels VMON[11:0], IMON[11:0], STATUS.
- 2 = (Default) left/right channels VMON[15:0], IMON [15:0].
- 3 = Left/right channels VPMON[7:0], STATUS.
- cirrus,sdout-share : SDOUT sharing. Determines whether one or two CS35L32
- devices are on board sharing SDOUT.
- 0 = (Default) One IC.
- 1 = Two IC's.
So, this was all a bit non-obvious but I found a datasheet so was able to figure it out. The device is using the I2S input channels to stream monitoring data back to the host and can do this in TDM mode. That's a bit fun, and would ideally mean we'd have to play with hwmon, but it's possibly better not to worry about that for now.
Looking at the datasheet I also see a VP supply which is omitted from the driver and bindings - in battery powered devices like phones it'll be connected directly to the battery so have no effect but it's still better to represent it in case someone wants to use it some other way that does merit software control (eg, a system running off 12V batteries will need to regulate it down).
- cirrus,gain-manager : Audio-gain management when LEDs are active.
- 0 = (Default) Automatically reduces audio volume once by 3 dB, only if needed
- to avoid thermal shutdown or current limiting the boost converter.
- If the condition persists, the CS35L32 examine s ILED_MNG and responds accordingly.
- Audio recovers to original volume automatically at the end of the LED event.
- 1 = User controls volume (nonautomatic).
This looks like something that should be a runtime control.