mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 12:52:30 +00:00
b3bbef45e9
The WM8903 has four different voltage inputs: AVDD, CPVDD, DBVDD and DCVDD. On the Qualcomm APQ8060 Dragonboard these are all supplied from proper regulators and thus need activating and binding. This is a quick-and-dirty solution just grabbing and enabling the regulator supplies on probe() and disabling them on remove() and the errorpath. More elaborate power management is likely possible. I assume the nVidia designs using this codec have some hard-wired always-on power and will be happy with using the dummy regulators for this. But someone from the nVidia camp should probably check whether they can bind these to proper regulators instead. We also amend the DT binding document. A small change like this does not warrant a separate patch for augmenting these. Cc: devicetree@vger.kernel.org Cc: Mark Brown <broonie@kernel.org> Cc: Liam Girdwood <lgirdwood@gmail.com> Cc: Stephen Warren <swarren@nvidia.com> Cc: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
83 lines
1.8 KiB
Plaintext
83 lines
1.8 KiB
Plaintext
WM8903 audio CODEC
|
|
|
|
This device supports I2C only.
|
|
|
|
Required properties:
|
|
|
|
- compatible : "wlf,wm8903"
|
|
|
|
- reg : the I2C address of the device.
|
|
|
|
- gpio-controller : Indicates this device is a GPIO controller.
|
|
|
|
- #gpio-cells : Should be two. The first cell is the pin number and the
|
|
second cell is used to specify optional parameters (currently unused).
|
|
|
|
Optional properties:
|
|
|
|
- interrupts : The interrupt line the codec is connected to.
|
|
|
|
- micdet-cfg : Default register value for R6 (Mic Bias). If absent, the
|
|
default is 0.
|
|
|
|
- micdet-delay : The debounce delay for microphone detection in mS. If
|
|
absent, the default is 100.
|
|
|
|
- gpio-cfg : A list of GPIO configuration register values. The list must
|
|
be 5 entries long. If absent, no configuration of these registers is
|
|
performed. If any entry has the value 0xffffffff, that GPIO's
|
|
configuration will not be modified.
|
|
|
|
- AVDD-supply : Analog power supply regulator on the AVDD pin.
|
|
|
|
- CPVDD-supply : Charge pump supply regulator on the CPVDD pin.
|
|
|
|
- DBVDD-supply : Digital buffer supply regulator for the DBVDD pin.
|
|
|
|
- DCVDD-supply : Digital core supply regulator for the DCVDD pin.
|
|
|
|
Pins on the device (for linking into audio routes):
|
|
|
|
* IN1L
|
|
* IN1R
|
|
* IN2L
|
|
* IN2R
|
|
* IN3L
|
|
* IN3R
|
|
* DMICDAT
|
|
* HPOUTL
|
|
* HPOUTR
|
|
* LINEOUTL
|
|
* LINEOUTR
|
|
* LOP
|
|
* LON
|
|
* ROP
|
|
* RON
|
|
* MICBIAS
|
|
|
|
Example:
|
|
|
|
codec: wm8903@1a {
|
|
compatible = "wlf,wm8903";
|
|
reg = <0x1a>;
|
|
interrupts = < 347 >;
|
|
|
|
AVDD-supply = <&fooreg_a>;
|
|
CPVDD-supply = <&fooreg_b>;
|
|
DBVDD-supply = <&fooreg_c>;
|
|
DCVDC-supply = <&fooreg_d>;
|
|
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
|
|
micdet-cfg = <0>;
|
|
micdet-delay = <100>;
|
|
gpio-cfg = <
|
|
0x0600 /* DMIC_LR, output */
|
|
0x0680 /* DMIC_DAT, input */
|
|
0x0000 /* GPIO, output, low */
|
|
0x0200 /* Interrupt, output */
|
|
0x01a0 /* BCLK, input, active high */
|
|
>;
|
|
};
|