Skip to content

Commit

Permalink
Merge remote-tracking branch 'wolfson/v3.10-arizona' into cm-14.1-caf…
Browse files Browse the repository at this point in the history
…-8916

Required for lettuce sound card. This includes necessary compilation fixes.

This also includes the complete backport of upstream commits:
	8019ff6cfc0440415fcfb6352c58c3951e6ab053
	2de9d6006c190bb0f706e8404de94cd94293801f

Conflicts:
	drivers/base/regmap/regmap.c
	drivers/extcon/extcon-max77693.c
	drivers/switch/Kconfig
	drivers/switch/Makefile
	drivers/switch/switch_class.c
	include/linux/regmap.h
	include/uapi/sound/compress_offload.h
	include/uapi/sound/compress_params.h
	sound/core/compress_offload.c
	sound/soc/codecs/arizona.c
	sound/soc/codecs/wm8997.c
	sound/soc/codecs/wm_adsp.c
	sound/soc/soc-dapm.c
  • Loading branch information
mikeNG committed Jun 4, 2017
2 parents dc256c2 + b9eae6b commit efb29a0
Show file tree
Hide file tree
Showing 81 changed files with 57,739 additions and 3,089 deletions.
240 changes: 240 additions & 0 deletions Documentation/devicetree/bindings/mfd/arizona.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
Wolfson Arizona class audio SoCs

These devices are audio SoCs with extensive digital capabilites and a range
of analogue I/O.

Required properties:

- compatible : One of the following chip-specific strings:
"wlf,wm5102"
"wlf,wm5110"
"wlf,wm8280"
"wlf,wm8281"
"wlf,wm8997"
"wlf,WM8998"
"wlf,wm1814"
"wlf,wm8285"
"wlf,wm1840"
"wlf,wm1831"
"cirrus,cs47l15"
"cirrus,cs47l24"
"cirrus,cs47l85"
"cirrus,cs47l35"
"cirrus,cs47l90"
"cirrus,cs47l91"

- reg : I2C slave address when connected using I2C, chip select number when
using SPI.

- interrupts : The interrupt line the /IRQ signal for the device is
connected to.
- interrupt-controller : Arizona class devices contain interrupt controllers
and may provide interrupt services to other devices.
- interrupt-parent : The parent interrupt controller.
- #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
The first cell is the IRQ number.
The second cell is the flags, encoded as the trigger masks from
Documentation/devicetree/bindings/interrupts.txt

- gpio-controller : Indicates this device is a GPIO controller.
- #gpio-cells : Must be 2. The first cell is the pin number and the
second cell is used to specify optional parameters (currently unused).

- AVDD-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply (wm5102, wm5110),
DBVDD4-supply (wm8285), CPVDD-supply, SPKVDDL-supply (wm5102, wm5110),
SPKVDDR-supply (wm5102, wm5110),
SPKVDD-supply (wm8997, cs47l15, cs47l24, cs47l35) :
Power supplies for the device, as covered in
Documentation/devicetree/bindings/regulator/regulator.txt

Optional properties:

- wlf,reset : GPIO specifier for the GPIO controlling /RESET
- wlf,ldoena : GPIO specifier for the GPIO controlling LDOENA
- wlf,clk32k-src : set input source for codec 32kHz clock.
0 = default, 1 = MCLK1, 2 = MCLK2, 3 = None

- wlf,micd-detect-debounce : Additional software microphone detection
debounce specified in milliseconds
- wlf,micd-manual-debounce : Additional software button detection
debounce specified as a number
- wlf,micd-pol-gpio : GPIO specifier for the GPIO controlling the headset
polarity if one exists
- wlf,micd-bias-start-time : Time allowed for MICBIAS to startup prior to
performing microphone detection, specified as per the MICD_BIAS_STARTTIME
bits in the register MIC_DETECT_1
- wlf,micd-rate : Delay between successive microphone detection measurements,
specified as per the MICD_RATE bits in the register MIC_DETECT_1
- wlf,micd-dbtime : Microphone detection hardware debounce level, specified
as per the MICD_DBTIME bits in the register MIC_DETECT_1
- wlf,micd-timeout : Timeout for microphone detection, specified in
milliseconds
- wlf,micd-force-micbias : Force MICBIAS continuously on during microphone
detection and button detection
- wlf,micd-force-micbias-initial : Force MICBIAS continuously on during
microphone detection
- wlf,micd-software-compare : Use a software comparison to determine mic
presence
- wlf,use-jd-gpio : Use GPIO input alongwith JD1 for dual jack detection. For
later arizona chips which have JD1 and JD2, setting this property will use
both JD1 and JD2 for dual jack detect and does not require an additional
GPIO
- wlf,usr-jd-gpio-nopull : Internal pull on GPIO is disabled when used for
jack detection.
- wlf,gpsw : Settings for the general purpose switch, set as per the
SW1_MODE bits in the GP Switch 1 register
- wlf,init-mic-delay : Adds a delay in milliseconds between jack detection
and beginning ramp of MICBIAS.
- wlf,fixed-hpdet-imp : Do not perform any headphone detection, just use
the fixed value specified here as the headphone impedance.
- wlf,hpdet-short-circuit-imp : Specifies the maximum impedance in ohms
that will be considered as a short circuit
- wlf,hpdet-channel : When this property is set then right channel is used
for headphone impedance measurement else the left headphone channel is
used
- wlf,micd-clamp-mode : Specifies the logic of the micdetect clamp block
- wlf,hpd-left-pins : (cs47l15, cs47l90, cs47l91) a 2 cell long field where
the first cell represents the pin that needs to be unclamped when measuring
headphone left channel impedance as per the HPD_OUT_SEL field of
HEADPHONE_DETECT_0 register and the second pin represents the impedance
sense pin as per the HPD_SENSE_SEL field of HEADPHONE_DETECT_0 register
- wlf,hpd-right-pins : See wlf,hpd-left-pins which is for left headphone
channel and this field is similar but for right headphone channel
- wlf,micd-ranges : Microphone detection level and key configuration, this
field can be of variable length but should always be a multiple of 2 cells
long, each two cell group represents one button configuration
The first cell is the maximum impedance for this button in ohms
The second cell the key that should be reported to the input layer
- wlf,micd-configs : Headset polarity configurations, the field can be of
variable length. But is should always be a multiple of
4 cells long for (cs47l15, cs47l90, cs47l91)
3 cells long for other Arizona chips
Each two cell group represents one polarity configration
For cs47l15, cs47l90, cs47l91 the first cell is the
accessory detection source as per the MICD_SENSE_SEL field of
MIC_DETECT_1_CONTROL_0 regiser and for other Arizona chips its the accessory
detection source as per the ACCDET_SRC bits in the ACCESSORY_DETECT_MODE_1 register
For cs47l15, cs47l90, cs47l91 the second cell is the accessory
detection ground as per the MICD_GND_SEL field of MIC_DETECT_1_CONTROL_0 regiser
and for other Arizona chips the second cell represents the MICBIAS to be used as
per the MICD_BIAS_SRC bits in the MIC_DETECT_1 register
For cs47l15, cs47l90, cs47l91 the third cell represents
the MICBIAS to be used as per the MICD_BIAS_SRC bits in the MIC_DETECT_1_CONTROL_1
register and for other Arizona chips the third cell represents the value of the
micd-pol-gpio pin, a non-zero value indicates this should be on
For cs47l15, cs47l90, cs47l91 the fourth cell represents
the value of the micd-pol-gpio pin, a non-zero value indicates this should be on
and for other Arizona chips there are only three cells and fourth cell should
not be specified
- wlf,micbias1 : Configuration for the micbias regulator, number of cells
here will depend on the arizona chip and will be 4 + n (number of
children micbiases). For Marley (cs47l35) n is 2, for cs47l15 n is 3,
for Moon (cs47l90, cs47l91) n is 4 and for other arizona chips n is 1.
The first cell is the output voltage in millivolts
The second cell a non-zero value indicates an external capacitor is fitted
Starting from third cell the next n cells with a non-zero value indicates
the micbias (or children micbiases if n > 1) should be actively discharged
In the (3 + n)'th cell a non-zero value indicates that the micbias should be
brought up slowly to reduce pops
In the (4 + n)'th cell a non-zero value indicates the micbias should be bypassed
and simply output MICVDD
- wlf,micbias2 : See wlf,micbias1
- wlf,micbias3 : See wlf,micbias1
- wlf,micbias4 : See wlf,micbias1

- wlf,hs-mic: Specify an input to mute during headset button presses and
jack removal: 1 - IN1L, 2 - IN1R, ..., n - IN[n]R

- wlf,dmic-ref : DMIC reference for each input, must contain four cells if
specified. 0 indicates MICVDD and is the default, 1,2,3 indicate the
respective MICBIAS.

- wlf,inmode : Input mode for each input, must contain four cells if
specified. 0 indicates Differential, 1 indicates Single Ended and 2
indicates a digital microphone.
For most codecs the entries map to <IN1, IN2, IN3, IN4>
wm8998: entries are for <IN1A, IN2A, IN1B, IN2B>
cs47l85, wm8285, cs47l90, cs47l91: entries are for <IN1L, IN1R, IN2L,
IN2R, IN3L, IN3R>
cs47l15, cs47l35: entries are for <IN1A, IN2, IN1B>

- wlf,dmic-clksrc : (cs47l15, cs47l90, cs47l91) DMIC clock source for each
input. A value of 0 will source DMIC from internally generated clock within
the ADC subsystem and a value of 1 will source DMIC and External digital
speakers with same clock

- wlf,gpio-defaults : A list of GPIO configuration register values. Defines
for the appropriate values can found in <dt-bindings/mfd/arizona.txt>. If
absent, no configuration of these registers is performed. If any entry has
a value that is out of range for a 16 bit register then the chip default
will be used.

- wlf,max-channels-clocked : The maximum number of channels to be clocked on
each AIF, useful for I2S systems with multiple data lines being mastered.
Specify one cell for each AIF, specify zero for AIFs that should be handled
normally.

- wlf,wm5102t-output-pwr : Output power setting (WM5102T only)

- DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if
they are being externally supplied. As covered in
Documentation/devicetree/bindings/regulator/regulator.txt

Optional subnodes:
- ldo1 : Initial data for the LDO1 regulator, as covered in
Documentation/devicetree/bindings/regulator/regulator.txt
- micvdd : Initial data for the MICVDD regulator, as covered in
Documentation/devicetree/bindings/regulator/regulator.txt

Example:

codec: wm5102@1a {
compatible = "wlf,wm5102";
reg = <0x1a>;
interrupts = <347>;
interrupt-controller;
#interrupt-cells = <2>;
interrupt-parent = <&gic>;

gpio-controller;
#gpio-cells = <2>;

wlf,micd-detect-debounce = <10>;
wlf,micd-bias-start-time = <0x1>;
wlf,micd-rate = <0x1>;
wlf,micd-dbtime = <0x1>;
wlf,micd-timeout = <10>;
wlf,micd-force-micbias;
wlf,micd-ranges = <
11 0x100
28 0x101
54 0x102
100 0x103
186 0x104
430 0x105
>;
wlf,micd-configs = <
0x1 1 0
0x0 2 1
>;
wlf,fixed-hpdet-imp = <8>;

wlf,micbias2 = <2600 0 1 1 0>;
wlf,init-mic-delay = <10>;
wlf,micd-clamp-mode = <0xb>;

wlf,dmic-ref = <0 0 1 0>;
wlf,inmode = <0 0 2 0>;

wlf,gpsw = <0x3>;

wlf,gpio-defaults = <
ARIZONA_GP_FN_TXLRCLK
ARIZONA_GP_DEFAULT
ARIZONA_GP_DEFAULT
ARIZONA_GP_DEFAULT
ARIZONA_GP_DEFAULT
>;

wlf,max-channels-clocked = <2 0 0>;
};
Loading

0 comments on commit efb29a0

Please sign in to comment.