Charles Keepax [Tue, 12 Dec 2017 15:49:54 +0000 (15:49 +0000)]
ASoC: madera: Preloading without clocks should be fine
The always on osc will cover the clocking requirements whilst
preloading.
Change-Id: I93cc30b83821c6351a2c04d8a43e9414833ce688
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Charles Keepax [Tue, 12 Dec 2017 16:15:16 +0000 (16:15 +0000)]
ASoC: madera: Add missing preloader route
Without this route the preload switch won't cause the DSP to load any
firmware.
Change-Id: I0d770750b3094b51ced5fc54bc9ce5864901740c
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Charles Keepax [Mon, 11 Dec 2017 15:03:59 +0000 (15:03 +0000)]
ASoC: madera: Don't clean up bus error IRQ in codec_remove
The bus error IRQ is requested in bus probe and so should be cleaned up
in bus remove. There is already a call to do this in bus remove so just
remove the duplicated free in codec_remove.
Change-Id: If867d75b672d8dd55db42f93b7c1f4d5cae19606
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Charles Keepax [Mon, 11 Dec 2017 14:18:41 +0000 (14:18 +0000)]
irqchip: madera: Avoid double free of primary IRQ
The primary IRQ was requested from within regmap_irq and regmap_irq will
also free it, so the free here in remove is a duplicate.
Change-Id: I149062db0eb8f3b26af24a9b5c144a4b273c72b3
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Charles Keepax [Mon, 11 Dec 2017 14:16:42 +0000 (14:16 +0000)]
irqchip: madera: Don't clear irq_dev until we are finished using it
irq_dev is still required for madera_free_irq as it will call
madera_map_irq, so don't clear it until after we are finished with it.
Change-Id: I747eea13d38d3b9acc8c522da44672d488a3d5a7
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Charles Keepax [Mon, 11 Dec 2017 14:11:01 +0000 (14:11 +0000)]
irqchip: madera: Check irq_dev before dereferencing
We should check if irq_dev is valid before we dereference it by passing
it to dev_get_drvdata.
Change-Id: Ifc0cae729de342f4d2828af7c51b3d0b855b6342
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Charles Keepax [Mon, 11 Dec 2017 14:08:35 +0000 (14:08 +0000)]
extcon: madera: Get micd_pol_gpio against extcon device not madera
If we devm get the micd_pol_gpio against the madera device it won't be
destroyed until after all the children of the MFD. Usually the
micd_pol_gpio will be supplied by the Madera GPIO driver, this means the
GPIO will normally only be freed after its driver has been removed.
Correct this issue by getting it against the extcon device such that the
GPIO is freed when the extcon device is destroyed, which should happen
before the GPIO device.
Change-Id: I35a3ee9eba7f9edf5c6aba47dd03f6e0ecbe9692
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Charles Keepax [Mon, 11 Dec 2017 16:08:05 +0000 (16:08 +0000)]
ASoC: madera: Add missing newline on debug print
Change-Id: I5b005ccee2e1d4e70a1f74aace2e39bd43189bba
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Charles Keepax [Mon, 11 Dec 2017 15:43:43 +0000 (15:43 +0000)]
extcon: madera: Fix minor whitespace issue
Change-Id: I3e126963755964b7dcd1eacc3dfe2f6f441a8dbb
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Stuart Henderson [Mon, 29 Jan 2018 16:18:27 +0000 (16:18 +0000)]
ASoC: cs47l85: Fix up dapm clock routing
Change-Id: I699a0db068f2abf58dc4d8c362b0144f1fde5f61
Signed-off-by: Stuart Henderson <stuarth@opensource.cirrus.com>
Richard Fitzgerald [Fri, 4 Aug 2017 13:33:37 +0000 (14:33 +0100)]
irqchip: madera: Add handler for BOOT_DONE interrupt
This gives a place to hang a debug log that can be enabled for
debugging boots.
Change-Id: I02333ba0c0a9018e93cd3bd97367ea9fafb6afce
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Fri, 4 Aug 2017 13:28:51 +0000 (14:28 +0100)]
irqchip: madera: Sync code with upstream implementation
Main benefit of syncing with upstream is the new way the table
of interrupts bits is defined that avoids having a lot of hardcoded
offset values.
Change-Id: I2b8469755c80f9f4f6c31e428053d5c7ab11578c
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Stuart Henderson [Wed, 24 Jan 2018 10:52:25 +0000 (10:52 +0000)]
ASoC: cs47l92: Fix up a dapm clocking route
Change-Id: Iefffbc6d7013587a49d4edee04a919ae44304312
Signed-off-by: Stuart Henderson <stuarth@opensource.cirrus.com>
baratam [Thu, 18 Jan 2018 13:01:57 +0000 (18:31 +0530)]
madera: anc: correct setting of FCL_ADC_REFORMATTER_CONTROL
Change-Id: I4dfdc63ec9e6926804a0e5ed5ac76db410002712
Signed-off-by: baratam <sapthagiri.baratam@cirrus.com>
Richard Fitzgerald [Fri, 4 Aug 2017 10:26:39 +0000 (11:26 +0100)]
extcon: madera: Mark output shorted when less than short impedance
We should be updating out_shorted[] based on the measured impedance so
that the codec driver knows whether it is safe to enable the output.
Change-Id: Idfa200589d638f9ae3b501debfa1546d4ed1615e
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Fri, 4 Aug 2017 12:31:17 +0000 (13:31 +0100)]
extcon: madera: Correct handling of minimum short circuit impedance
If there is an external resistance <= 4 ohms and the configured short
impedance had to be adjusted up to be in measurable range it was being
set too high because the adjusted threshold didn't take account that
it should be reduced by the external resistance.
Change-Id: I9b76d643b6533c3fa4f220f56c949303eaeff833
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Fri, 4 Aug 2017 10:12:53 +0000 (11:12 +0100)]
extcon: madera: Add a separate variable for short circuit impedance
Add a separate variable to store the short circuit impedance leaving the
hpdet_short_circuit_imp to reflect the value set through device
tree.
Change-Id: I7c919cabc4c9edbb943719bfc944cb30b6af4907
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Tue, 1 Aug 2017 12:01:14 +0000 (13:01 +0100)]
extcon: madera: Read micd ranges from devicetree
This adds a devicetree node cirrus,micd-ranges to populate the
list of button levels and corresponding key events.
Change-Id: I2c4c4c6e938a137694a4e752367e25e5e637d2c4
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Stuart Henderson [Thu, 21 Sep 2017 10:51:03 +0000 (11:51 +0100)]
ASoC: cs47l90: Wait for asyncclk to stabilise after enable
Give asyncclk at least 1.5ms to settle after being enabled before
starting to use it.
Change-Id: Ic46ccfe875882cc982b9472ec7efc6823c888391
Signed-off-by: Stuart Henderson <stuarth@opensource.cirrus.com>
Stuart Henderson [Wed, 1 Nov 2017 15:07:46 +0000 (15:07 +0000)]
extcon: madera: Ensure micd read failures are caught
The use of madera_ohm_to_hohm was causing an error code to be lost when
passed to the .reading function.
Change-Id: Ie1741b47fb7491ba33d1dd5f9580dc975c130d9b
Signed-off-by: Stuart Henderson <stuarth@opensource.cirrus.com>
Stuart Henderson [Mon, 18 Sep 2017 17:11:23 +0000 (18:11 +0100)]
ASoC: madera: Fix up input ganging and which inmode field controls dmode
De-gang certain inputs, where the dmic pins weren't split between left and
right channels. Also tie the dmic mode to the appropriate input pin,
instead of always defaulting to INxAL.
Change-Id: I8e2231b5b7b3b89fbc12fa11b517926ca6f550b0
Signed-off-by: Stuart Henderson <stuarth@opensource.cirrus.com>
apandey [Mon, 18 Sep 2017 12:52:06 +0000 (18:22 +0530)]
ASoC: cs47l90: Add AEC2 Loopback support
Add AEC2 Loopback support to have more than one AEC reference.
Change-Id: I5582aa189d6fe80e3f8e84f9ec2a759dba4beb08
Signed-off-by: apandey <ajit.pandey@cirrus.com>
apandey [Mon, 18 Sep 2017 12:41:21 +0000 (18:11 +0530)]
mfd: cs47l90: Make DAC_AEC_CONTROL_2 readable
Change-Id: Ia8bf1f6c10019fa2859aa90b7587f3b7b52e1164
Signed-off-by: apandey <ajit.pandey@cirrus.com>
Stuart Henderson [Fri, 1 Sep 2017 11:56:39 +0000 (12:56 +0100)]
extcon: madera: Avoid uninitialized pointer dereference
Change-Id: I923132946888d538af4ca0594ab9d1b01368165d
Signed-off-by: Stuart Henderson <stuarth@opensource.cirrus.com>
Stuart Henderson [Fri, 1 Sep 2017 09:31:07 +0000 (10:31 +0100)]
ASoC: madera: Fix uninitialised variable usage
Change-Id: Ic75294a65b998d712b3a9e7221518756833fb78d
Signed-off-by: Stuart Henderson <stuarth@opensource.cirrus.com>
Richard Fitzgerald [Tue, 11 Jul 2017 14:12:17 +0000 (15:12 +0100)]
ASoC: cs47l35: Update FLL gain configuration
CS47L35 revisions A1 and above should use the alt_gain in the
same situations as CS47L90.
Change-Id: I35d6f06052db5d0d300b9d009fd0b4cd2e2f5e86
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Tue, 11 Jul 2017 13:18:43 +0000 (14:18 +0100)]
mfd: cs47l35: FLL1_EFS must be readable
The FLL1_EFS2 register contains the PHASE_ENA bit which the FLL
configuration code updates, so this register must be accessible.
Change-Id: Ie05b566da9dd88807db740d86dcc3f90435fa188
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Mon, 31 Jul 2017 10:42:13 +0000 (11:42 +0100)]
extcon: madera: Take external resistance into account for short circuit
When checking the minimum value of impedance we can detect we should
take any external resistance into account, as we can detect lower
impedances if there is some external resistance pushing the detected
impedance up.
Change-Id: Ic784807c811ab453a7ca8ef2fb115d1bcd884e87
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Fri, 4 Aug 2017 12:57:33 +0000 (13:57 +0100)]
extcon: madera: enable jackdets before registering IRQs
Change-Id: I11a3eeb8e2a5f21471c09b9d25ff63cb9a9d0948
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Swetha Nagapuri [Tue, 27 Jun 2017 10:10:44 +0000 (15:40 +0530)]
ASoC: cs47l90: Fix error in clock hookups for ASRC1/2IN2R
There is a duplication connection for ASRC1IN2L to ASRC1R2CLK
and ASRC2IN2L to ASRC2R2CLK but one should be ASRC1IN2R to ASRC1R2CLK
and other should be ASRC2IN2R to ASRC2R2CLK. This patch fixes that.
Change-Id: I312c3bb5974da30efc2941f13f9731b00a0afdd7
Signed-off-by: Swetha Nagapuri <swetha.nagapuri@soctronics.com>
Paul Handrigan [Mon, 7 Aug 2017 21:42:59 +0000 (16:42 -0500)]
ASoC: cs47l35: Add AEC2 Loopback support
Add AEC2 Loopback support to have more than one AEC reference.
Change-Id: I601c34d53591669cb54aed5e32547722ddc79245
Signed-off-by: Paul Handrigan <Paul.Handrigan@cirrus.com>
Richard Fitzgerald [Tue, 8 Aug 2017 10:02:19 +0000 (11:02 +0100)]
mfd: cs47l35: Make DAC_AEC_CONTROL_2 readable
Change-Id: If7bd04d2d4a60a401b0eb28c50babfa85964e386
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Stuart Henderson [Tue, 8 Aug 2017 08:05:09 +0000 (09:05 +0100)]
extcon: madera: Use octal permissions for device attributes
Change-Id: I49203c9f83f83be24584e55a9ac4a4ccb2132eef
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Richard Fitzgerald [Fri, 30 Jun 2017 08:29:35 +0000 (09:29 +0100)]
ASoC: madera: Inmux changes must always handle DMIC mode
For the unganged inputs on CS47L85 and CS47L90 the code was
skipping the update to DMIC mode, so changing these from
a digital 'A' to 'B' would not clear DMIC mode.
This patch moves the code to handle DMIC mode so that it is
always run when 'A' is configured as digital.
Change-Id: I07fbb03b395f6264cd2b8ae0197560f3f60b588a
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Mon, 5 Jun 2017 14:55:48 +0000 (15:55 +0100)]
ASoC: cs47l90: Fix error in clock hookups for ISRC3/4
The widgets were linked to the ISRC1 clock domain instead
of the correct ISRC3/4 domains.
Change-Id: I9b446afbc07719021e325db055aa516c2a34155f
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Stuart Henderson [Tue, 23 May 2017 12:33:02 +0000 (13:33 +0100)]
extcon: madera: Make micd ranges default to Android spec values
Change-Id: I3d3fb6accc9e313b455670942740317a59b77c1e
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Fri, 2 Jun 2017 10:21:35 +0000 (11:21 +0100)]
mfd: madera: Fix some micbias configuration issues
Change-Id: I21b851126684ef4446a763df6f180dd46dab0969
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Fri, 19 May 2017 13:41:37 +0000 (14:41 +0100)]
extcon: madera: Default to normal tuning on jack removal
Change-Id: I8437c23eb177063e65327ccb73f91544c2025f31
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Fri, 19 May 2017 12:47:04 +0000 (13:47 +0100)]
extcon: madera: Make micd default ranges more sensible
Change-Id: Ie2e75c13b833d9d5797ba603528510e8616e39ab
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Mon, 1 May 2017 15:22:05 +0000 (16:22 +0100)]
extcon: madera: Protect outputs associated with accdet nodes
Ensure outputs associated with an accdet node are disabled during clamping.
Change-Id: Ie6ee7fcf3e813b3c9a730426ca9c7a2b9b9d65e1
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Thu, 27 Apr 2017 09:49:34 +0000 (10:49 +0100)]
extcon: madera: Report accessory detect events through input key events
Change-Id: I1120594bc9f36efba6111c033eb9c1201ed8ea5b
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Wed, 26 Apr 2017 16:45:45 +0000 (17:45 +0100)]
ASoC: madera: Add Rate ALSA controls
Change-Id: I9536b12cc4f12505aeab8819917f17efd579cb66
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Thu, 18 May 2017 12:43:49 +0000 (13:43 +0100)]
ASoC: madera: Fix getting dapm pointer in madera_rate_put
Change-Id: Id24c139fa5078fee002bf28d6c6b76b0d0600156
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Tue, 16 May 2017 12:23:22 +0000 (13:23 +0100)]
extcon: madera: Fix up reporting of EXTCON_MECHANICAL state
Change-Id: I81c6a005bca49b776f71f1156e8f7ac7f24a7806
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Tue, 16 May 2017 10:09:09 +0000 (11:09 +0100)]
ASoC: madera: Add support for CS47L92/3 dmic sup configuration
CS47L92/93 has more dmic reference selects than analog inputs, so increase
the configuration loop to be the dmic sup count.
Change-Id: Ia278eecc8ae52a372ca2757a58c7f5cf563c9a79
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Richard Fitzgerald [Thu, 11 May 2017 09:20:50 +0000 (10:20 +0100)]
extcon: madera: Skip HPDET ranges less than external resistance
There is no point in running HPDET ranges that measure impedances
lower than the external series resistance.
Change-Id: I4e084d306d069a0ef049a22011653694744ca6b0
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Stuart Henderson [Tue, 25 Apr 2017 15:47:13 +0000 (16:47 +0100)]
mfd: madera: Add support for CS47L92/CS47L93
Change-Id: I412aa97649bb8df5174270a514e3142837782b14
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Tue, 25 Apr 2017 15:45:19 +0000 (16:45 +0100)]
ASoC: madera: Add support for CS47L92/CS47L93
Change-Id: I712493780eebc930b1d94b3a33b04157849fe412
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Tue, 25 Apr 2017 15:42:06 +0000 (16:42 +0100)]
extcon: madera: Add support for CS47L92/CS47L93
Change-Id: I9c94c65145134406e26caf40e744f30c420c40e1
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Tue, 25 Apr 2017 15:36:35 +0000 (16:36 +0100)]
ASoC: madera: Add support for new FLL used on CS47L92/CS47L93
Change-Id: I6885ad9958fc9d2e42cc19a4c0444d2a831f6a85
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Mon, 24 Apr 2017 12:58:49 +0000 (13:58 +0100)]
gpio: madera: Add support for CS47L92/CS47L93 codecs
Change-Id: I6e19fd25d1f2a92104e010deea97c443c9b92c9a
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Fri, 21 Apr 2017 16:27:04 +0000 (17:27 +0100)]
pinctrl: madera: Add support for CS47L92/CS47L93
Change-Id: If672f6bf4924fb3e9d15e91442dfc3348542533c
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Stuart Henderson [Fri, 21 Apr 2017 15:36:48 +0000 (16:36 +0100)]
mfd: madera: Register map tables for Cirrus Logic CS47L92/93
Regmap configuration tables for Cirrus Logic CS47L92 and CS47L93 codecs
Change-Id: Ie98cc4baf38325867761cdb7e078c8769bbc4249
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:08:04 +0000 (11:08 +0100)]
ASoC: cs47l90: Add codec driver for Cirrus Logic CS47L90
Adds the codec driver for the CS47L90 SmartCodec. This is a
multi-functional codec based on the Cirrus Logic Madera platform.
Change-Id: Ie648293f6b601e45845c5ebb16265cad7875e0d2
Signed-off-by: Nikesh Oswal <nikesh@opensource.wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:08:03 +0000 (11:08 +0100)]
ASoC: cs47l85: Add codec driver for Cirrus Logic CS47L85
Adds the codec driver for the CS47L85 SmartCodec. This is a
multi-functional codec based on the Cirrus Logic Madera platform.
Change-Id: Ic87a1231d9e8342d55d813eaf4480917f0b5129c
Signed-off-by: Nariman Poushin <npoushin@opensource.wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:08:02 +0000 (11:08 +0100)]
ASoC: cs47l35: Add codec driver for Cirrus Logic CS47L35
Adds the codec driver for the CS47L35 SmartCodec. This is a
multi-functional codec based on the Cirrus Logic Madera platform.
Change-Id: I8d91d7a5b1b044ee63873e86e17309be1ef54ed9
Signed-off-by: Piotr Stankiewicz <piotrs@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:08:01 +0000 (11:08 +0100)]
ASoC: madera: Add common support for Cirrus Logic Madera codecs
The Cirrus Logic Madera codecs are a family of related codecs with
extensive digital and analogue I/O, digital mixing and routing,
signal processing and programmable DSPs.
This patch adds common support code shared by all Madera codecs.
Change-Id: I9209c83c899ccf36d2af1a517c105918026ca254
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Nariman Poushin <nariman@opensource.wolfsonmicro.com>
Signed-off-by: Nikesh Oswal <Nikesh.Oswal@wolfsonmicro.com>
Signed-off-by: Piotr Stankiewicz <piotrs@opensource.wolfsonmicro.com>
Signed-off-by: Ajit Pandey <ajit.pandey@incubesol.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Thu, 20 Oct 2016 15:45:59 +0000 (16:45 +0100)]
extcon: madera: Add support for Cirrus Logic Madera codecs
The Cirrus Logic Madera-class codecs include highly flexible support
for jack detection, accessory detection and accessory buttons.
Although the driver is very configurable, it is impossible to cover
in generic code every possible way in which the accessory detect block
could be used and every possible combination of external hardware. We
therefore provide enough configurability to cover all common cases but
we allow customers to provide custom replacements for some or all of
the detection state machine to provided added ability to handle unusual
hardware or applications without having to create a branched and modified
version of this driver.
Change-Id: Ibbef6dc9a5a139075daed8c1556698bfd8e6bb16
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Stuart Henderson <stuarth@opensource.wolfsonmicro.com>
Richard Fitzgerald [Thu, 15 Sep 2016 15:48:21 +0000 (16:48 +0100)]
gpio: madera: Support Cirrus Logic Madera class codecs
This adds support for the GPIOs on Cirrus Logic Madera class codecs.
Any pins not used for special functions (see the pinctrl driver) can be
used as general single-bit input or output lines. The number of available
GPIOs varies between codecs.
Change-Id: Id3473e03a0d0b3eea908d35f0ca2761bead3fb73
Signed-off-by: Nariman Poushin <nariman@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Richard Fitzgerald [Mon, 24 Apr 2017 10:23:00 +0000 (11:23 +0100)]
gpio: madera: Add DT bindings for GPIO on Cirrus Logic Madera codecs
The Cirrus Logic Madera codecs have a range of GPIO pins that can be
used as single-bit logic input or output. These are presented as a
standard GPIO binding.
The second cell in a GPIO binding is currently reserved for future use
as chip-specific flags.
Change-Id: Ida62b0f711418ecb803284fae9129ea7f428f5de
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:07:57 +0000 (11:07 +0100)]
pinctrl: madera: Add driver for Cirrus Logic Madera codecs
These codecs have a variable number of I/O lines each of which
is individually selectable to a wide range of possible functions.
The functionality is slightly different from the traditional muxed
GPIO since most of the functions can be mapped to any pin (and even
the same function to multiple pins). Most pins have a dedicated
"alternate" function that is only available on that pin. The
alternate functions are usually a group of signals, though it is
not always necessary to enable the full group, depending on the
alternate function and how it is to be used. The mapping between
alternate functions and GPIO pins varies between codecs depending
on the number of alternate functions and available pins.
Change-Id: I1feb411976d74806566f8bb67713144ce5c1ef89
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Mon, 24 Apr 2017 09:21:20 +0000 (10:21 +0100)]
pinctrl: madera: Add DT bindings for Cirrus Logic Madera codecs
This is the binding description of the pinctrl driver for Cirru Logic
Madera codecs. The binding uses the generic pinctrl binding so the main
purpose here is to describe the device-specific names for groups and
functions.
Change-Id: I1cabd1d24b8a5619c49309510fd8bbdaba9630e6
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:07:56 +0000 (11:07 +0100)]
irqchip: Add driver for Cirrus Logic Madera codecs
The Cirrus Logic Madera codecs (Cirrus Logic CS47L35/85/90/91 and WM1840)
are highly complex devices containing up to 7 programmable DSPs and many
other internal sources of interrupts plus a number of GPIOs that can be
used as interrupt inputs. The large number (>150) of internal interrupt
sources are managed by an on-board interrupt controller.
This driver provides the handling for the interrupt controller. As the
codec is accessed via regmap, we can make use of the generic IRQ
functionality from regmap to do most of the work. Only around half of
the possible interrupt source are currently of interest from the driver
so only this subset is defined. Others can be added in future if needed.
The KConfig options are not user-configurable because this driver is
mandatory so is automatically included when the parent MFD driver is
selected.
Change-Id: Ia6e8581e963368f63fb8b6528236248eeccb47da
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Richard Fitzgerald [Fri, 14 Apr 2017 15:26:26 +0000 (16:26 +0100)]
regulator: arizona-ldo1: Add support for Cirrus Logic Madera codecs
This adds a new driver identity "madera-ldo1" and probe function
so that this driver can be used to control the LDO1 regulator on
some Cirrus Logic Madera codecs.
Change-Id: If6f1f27c7f92d53281ed91d60455ad213416c2aa
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Mon, 17 Apr 2017 11:47:03 +0000 (12:47 +0100)]
regulator: arizona-micsupp: Add support for Cirrus Logic Madera codecs
This adds a new driver identity "madera-micsupp" and probe function
so that this driver can be used to control the micsupp regulator on
Cirrus Logic Madera codecs.
Change-Id: I715cc4b6c19c8f2ec5737725d90ccc83563f198a
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:07:53 +0000 (11:07 +0100)]
mfd: madera: Register map tables for Cirrus Logic CS47L90/91
Regmap configuration tables for Cirrus Logic CS47L90 and CS47L91 codecs.
Change-Id: Ie593afaaf661f32f5febc372cec3c81344012128
Signed-off-by: Nikesh Oswal <nikesh@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:07:52 +0000 (11:07 +0100)]
mfd: madera: Register map tables for Cirrus Logic CS47L85
Regmap configuration tables for Cirrus Logic CS47L85 codecs.
Change-Id: Ice389456818b9861768fc985062811b25a19d8d5
Signed-off-by: Nariman Poushin <nariman@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:07:51 +0000 (11:07 +0100)]
mfd: madera: Register map tables for Cirrus Logic CS47L35
Regmap configuration tables for Cirrus Logic CS47L35 codecs.
Change-Id: I875206b250706c0f92f2933df64a788f83174947
Signed-off-by: Piotr Stankiewicz <piotrs@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:07:50 +0000 (11:07 +0100)]
mfd: madera: Add common support for Cirrus Logic Madera codecs
This adds the generic core support for Cirrus Logic "Madera" class codecs.
These are complex audio codec SoCs with a variety of digital and analogue
I/O, onboard audio processing and DSPs, and other features.
These codecs are all based off a common set of hardware IP so can be
supported by a core of common code (with a few minor device-to-device
variations).
Change-Id: Ide95195e8d42318c20faa451151257d9ecf93800
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Nikesh Oswal <Nikesh.Oswal@wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Fri, 21 Apr 2017 14:08:18 +0000 (15:08 +0100)]
mfd: madera: Add DT bindings for Cirrus Logic Madera codecs
Specification of the bindings for the parent MFD driver component
of the Cirrus Logic Madera codec drivers.
Change-Id: I307b78196ebbe1a132260963907fe8ca6f61b2be
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Richard Fitzgerald [Wed, 5 Apr 2017 10:07:49 +0000 (11:07 +0100)]
mfd: madera: Add register definitions for Cirrus Logic Madera codecs
This patch adds a header file of register definitions for Cirrus
Logic "Madera" class codecs. These codecs are all based off a common
set of hardware IP so have a common register map (with a few minor
device-to-device variations). These are complex devices with a large
number of features and so have a correspondingly large register set.
The registers.h file has been auto-generated from the hardware register
definitions, stripped down to only registers we need to access from
the driver.
Change-Id: Ib6663cc2182b1bb5de6cbe55637c8920161b1ce9
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Youngmin Nam [Tue, 19 Jun 2018 01:00:29 +0000 (10:00 +0900)]
[9610][ERD] arm64: config: run savedefconfig
Change-Id: I1083e5600705f475d32c75b7c29fdcbccf9de359
Signed-off-by: Youngmin Nam <youngmin.nam@samsung.com>
Tarun Karela [Thu, 14 Jun 2018 23:11:41 +0000 (00:11 +0100)]
[9610] wlbt: Fix warning/bug in wifi logger (4.14)
drivers/misc/samsung/scsc/scsc_wifilogger_ring_pktfate.c:262:13: warning: implicit conversion from enumeration type
'wifi_rx_packet_fate' to different enumeration type 'wifi_tx_packet_fate' [-Wenum-conversion]
Change-Id: Iffad8c3c3174d68bf191233777c3f7c7b56c8eca
SCSC-Bug-Id: SSB-40175
Signed-off-by: Tarun Karela <t.karela@samsung.com>
Youngmin Nam [Fri, 1 Jun 2018 05:16:58 +0000 (14:16 +0900)]
Makefile: Make compile option strictly
This patch adds -Werror option.
Change-Id: I509bde0c3c6d4be4bef9b290e5fe4e29af493dee
Signed-off-by: Youngmin Nam <youngmin.nam@samsung.com>
Ivan Priest [Fri, 15 Jun 2018 17:25:07 +0000 (18:25 +0100)]
[9610] wlbt: fix compiler warnings in wifilogger
Clang exposed warnings
Change-Id: I3d68b5bf8f6359f2854da952a25e2fde51346187
SCSC-Bug-Id: SSB-40929
Signed-off-by: Ivan Priest <i.priest@samsung.com>
Ivan Priest [Fri, 15 Jun 2018 17:02:02 +0000 (18:02 +0100)]
[9610] wlbt: fix warning in nl80211 channel enum
Clang exposed incorrect enum being used (values
are the same).
Change-Id: I0a90bda5835843319f718d61378ca30d4e912371
SCSC-Bug-Id: SSB-40929
Signed-off-by: Ivan Priest <i.priest@samsung.com>
Ivan Priest [Fri, 15 Jun 2018 16:44:50 +0000 (17:44 +0100)]
[9610] wlbt: fix compiler warnings in scsc_mx
Several enum warnings exposed by clang.
Change-Id: I3e1b87b5d3e726a440f704b44a1b9daadd7f7451
SCSC-Bug-Id: SSB-40929
Signed-off-by: Ivan Priest <i.priest@samsung.com>
Ivan Priest [Fri, 15 Jun 2018 15:27:16 +0000 (16:27 +0100)]
[9610] wlbt: update kernel_read() usage on 4.14
API has changed, update our calls.
Change-Id: Id3a9d75c15f81fee0d464feaae516140fd4d1760
SCSC-Bug-Id: SSB-40929
Signed-off-by: Ivan Priest <i.priest@samsung.com>
Youngmin Nam [Thu, 7 Jun 2018 00:45:44 +0000 (09:45 +0900)]
[9810][ERD] arm64: config: run savedefconfig
Change-Id: Ia3a1fb1927a9688e949160301081a09a314ea642
Signed-off-by: Youngmin Nam <youngmin.nam@samsung.com>
Yunsu Kim [Thu, 14 Jun 2018 10:42:14 +0000 (19:42 +0900)]
[9610] media: radio: Remove compile warning
Change-Id: I43aeeda3b163addb14d7d6ee6eab94edda523186
Signed-off-by: Yunsu Kim <iamyunsu.kim@samsung.com>
Yunsu Kim [Mon, 11 Jun 2018 08:04:45 +0000 (17:04 +0900)]
[9610] arm64: configs: add config for FM Radio enable
Change-Id: If9fdd874def23e982b8490d84cab0bb36ab2624d
Signed-off-by: Yunsu Kim <iamyunsu.kim@samsung.com>
Yunsu Kim [Mon, 11 Jun 2018 08:02:28 +0000 (17:02 +0900)]
[9610] arm64: dtsi: add dts config define for FM Radio Initialization
Change-Id: Ieb63ae99d8440da56b1c29e17e3b2e01428b0ae1
Signed-off-by: Yunsu Kim <iamyunsu.kim@samsung.com>
Yunsu Kim [Mon, 11 Jun 2018 04:42:25 +0000 (13:42 +0900)]
[9610] media: radio: add FM radio code for FM enable
Change-Id: I304fa251a7a07bdf7436dc6acc6b745d407223a8
Signed-off-by: Yunsu Kim <iamyunsu.kim@samsung.com>
Jiun Yu [Mon, 4 Jun 2018 01:47:42 +0000 (10:47 +0900)]
fbdev: dpu20: fix compilation error.
Change-Id: If2d8a16850ab69193c3930f1ae683fd7f51ff577
Signed-off-by: Jiun Yu <jiun.yu@samsung.com>
ChiHun Won [Mon, 4 Jun 2018 06:48:52 +0000 (15:48 +0900)]
[9610] arm64: dts: add DPU BTS related information.
AXI ports of each DPU_DMAs are defined in DPP DT information.
And PPC(Pixel Per Clock) value is defined in DECON DT information.
Change-Id: I207c975c3bf63fcbf37cdc6d796c917a8024a2e4
Signed-off-by: ChiHun Won <chihun.won@samsung.com>
ChiHun Won [Mon, 4 Jun 2018 06:46:03 +0000 (15:46 +0900)]
[9610] fbdev: dpu20: remove port information of each DPP channel.
AXI port information is moved to DT. So, this information
is unnecessary in CAL.
Change-Id: I49fd08ddd3160fbca2025a032d536376762828cb
Signed-off-by: ChiHun Won <chihun.won@samsung.com>
ChiHun Won [Mon, 4 Jun 2018 06:42:56 +0000 (15:42 +0900)]
fbdev: dpu20: SoC dependent code is removed in DPU BTS code.
AXI port number of each DPP channel, port count, DPP channel count
and DECON count are different at each SoC.
Previous DPU BTS code doesn't care another SoC. Because DPU BTS
code supports only own SoC.
This change of DPU BTS code supports common DPU driver.
Change-Id: I2421da368f5222295c41191d01736ddc3b75ff8c
Signed-off-by: ChiHun Won <chihun.won@samsung.com>
ChiHun Won [Mon, 4 Jun 2018 06:31:05 +0000 (15:31 +0900)]
[9610] fbdev: dpu20: change DPP channel number for BTS calculation.
There are 3 channels between AXI bus and DPU_DMA. And each channel is connected
to 2 IDMAs but this connection is different from previous SoC.
So, channel connection is initialized in DECON CAL Layer for common driver.
Change-Id: Iac174cc8e6949297e2d7c166a0470eadc6723394
Signed-off-by: ChiHun Won <chihun.won@samsung.com>
hwangjae lee [Thu, 31 May 2018 11:30:51 +0000 (20:30 +0900)]
[9610] fbdev: dpu: add idle ip interface for dsim.
The DPU can't turn off the power block. Howeveer, to enter the SICD, the
DPU must be notified when dsim hiber enter/exit mode.
Change-Id: Idcf69a91f7f6b0d34ed95ef38b0dce24bdde6c60
Signed-off-by: hwangjae lee <hj-yo.lee@samsung.com>
Ivan Priest [Fri, 8 Jun 2018 13:06:28 +0000 (14:06 +0100)]
[9610][ERD] wlbt: defconfig: enable cfg80211 and wireless
Turn on CFG80211 and WIRELESS configs
Change-Id: I5c94d5f46aad4f0862bfe234100209ae5c57130a
SCSC-Bug-Id: SSB-40175
Signed-off-by: Ivan Priest <i.priest@samsung.com>
Ivan Priest [Thu, 7 Jun 2018 16:13:55 +0000 (17:13 +0100)]
[9610] wlbt: don't pack mxconf on Android P.
After correcting mxconf structures to fix the warning reported
by Clang, WLBT FW crashes due to disagreement of the alignment
of shared data structures between driver and FW.
I suspect that because of the "__packed struct foo" syntax used
for mxconf.h on both sides, the structures don't really get
packed at all, so correcting it on one side only doesn't work.
Change-Id: Ie1c451d009531a2fa86a3e864a02f02647341cc4
SCSC-Bug-Id: SSB-40175
Signed-off-by: Ivan Priest <i.priest@samsung.com>
Purnendu Kapadia [Thu, 7 Jun 2018 10:18:14 +0000 (11:18 +0100)]
[9610] wlbt: Fix compilation errors Android P mxconf.h (Android P)
use __packed attribute correctly so that the kernel built
with clang compiler boots.
Change-Id: Ic92e88381553d4db3cb24e1169570786f7fae2b9
SCSC-Bug-Id: SSB-40175
Signed-off-by: Purnendu Kapadia <p.kapadia@samsung.com>
Ivan Priest [Wed, 6 Jun 2018 23:23:21 +0000 (00:23 +0100)]
Revert "[9610] wlbt: Fix compilation errors Android P mxconf.c (Android P)"
This reverts commit
786d0c2f017152fe0dda8f0539d2fa0ff7a3bd56.
The commit was causing WLBT FW to panic on boot.
SCSC-Bug-Id: SSB-40175
Change-Id: I75bc6523f05a5ee31afae3a185e324089576ba09
Signed-off-by: Ivan Priest <i.priest@samsung.com>
Tarun Karela [Wed, 30 May 2018 11:17:15 +0000 (12:17 +0100)]
[9610] wlbt: Patch from Debrata (Android P)
Kernel 4.14 patches
Change-Id: Icc987c1e91fb978bfb1d11b24ab3e68efa6d83f8
SCSC-Bug-Id: SSB-40175
Signed-off-by: Tarun Karela <t.karela@samsung.com>
Tarun Karela [Wed, 30 May 2018 13:54:15 +0000 (14:54 +0100)]
[961] wlbt: Fix to cfg80211_ops.c from Mohit (Android P)
Linux 4.14 kernal patch for android p
Change-Id: I55280a92d4001cb1b621e72b592f3d08803e645e
SCSC-Bug-Id: SSB-40175
Signed-off-by: Tarun Karela <t.karela@samsung.com>
Tarun Karela [Tue, 5 Jun 2018 21:55:11 +0000 (22:55 +0100)]
[9610] wlbt: Add dts configuration for WLBT
Taken as it is from Leman WW project
Change-Id: I5e93ee5c2c9dbac3e1ec67d8a5ed9ef3b8094314
SCSC-Bug-Id: SSB-40175
Signed-off-by: Tarun Karela <t.karela@samsung.com>
Tarun Karela [Wed, 30 May 2018 17:50:42 +0000 (18:50 +0100)]
[9610] wlbt: Fix warning in scsc/hip.c (Android P)
In file included from drivers/net/wireless/scsc/hip.c:9:0:
drivers/net/wireless/scsc/hip.h:58:66: warning: 'struct sk_buff' declared inside parameter list
int slsi_hip_consume_smapper_entry(struct slsi_dev *sdev, struct sk_buff *skb);
^
drivers/net/wireless/scsc/hip.h:58:66: warning: its scope is only this definition or declaration, which is probably not what you want
CC drivers/misc/samsung/scsc/mifintrbit.o
Change-Id: Ie79cc8e689b813a504fbfef3cfd24a7845fa189a
SCSC-Bug-Id: SSB-40175
Signed-off-by: Tarun Karela <t.karela@samsung.com>
Tarun Karela [Wed, 30 May 2018 17:45:41 +0000 (18:45 +0100)]
[9610] wlbt: Change function name from __ieee80211_get_channel to ieee80211_get_channel (Android P)
Fixes following compilation errors. Looks like it is simple case of function name change in api
drivers/net/wireless/scsc/mgt.c: In function 'slsi_select_wifi_sharing_ap_channel':
drivers/net/wireless/scsc/mgt.c:4033:4: error: implicit declaration of function '__ieee80211_get_channel' [-Werror=implicit-function-declaration]
settings->chandef.chan = __ieee80211_get_channel(wiphy, settings->chandef.chan->center_freq);
^
drivers/net/wireless/scsc/mgt.c:4033:27: warning: assignment makes pointer from integer without a cast
settings->chandef.chan = __ieee80211_get_channel(wiphy, settings->chandef.chan->center_freq);
^
drivers/net/wireless/scsc/mgt.c:4038:28: warning: assignment makes pointer from integer without a cast
settings->chandef.chan = __ieee80211_get_channel(wiphy, sta_frequency);
^
drivers/net/wireless/scsc/mgt.c:4062:29: warning: assignment makes pointer from integer without a cast
settings->chandef.chan = __ieee80211_get_channel(wiphy, sta_frequency);
^
drivers/net/wireless/scsc/mgt.c:4066:28: warning: assignment makes pointer from integer without a cast
settings->chandef.chan = __ieee80211_get_channel(wiphy, SLSI_2G_CHANNEL_ONE);
Change-Id: Ia1d3792d014495f6a09a53d3569d84b75d0a9575
SCSC-Bug-Id: SSB-40175
Signed-off-by: Tarun Karela <t.karela@samsung.com>
Tarun Karela [Wed, 30 May 2018 17:44:44 +0000 (18:44 +0100)]
[9610] wlbt: Enable SCSC configuration in erd9610_defconfig (Android P)
configuration taken from leman defconfig file maestro9610_defconfig
Change-Id: I830d8a31f63bda7e38feba69b8d05a9d092b81b2
SCSC-Bug-Id: SSB-40175
Signed-off-by: Tarun Karela <t.karela@samsung.com>
Tarun Karela [Wed, 30 May 2018 17:13:38 +0000 (18:13 +0100)]
[9610] wlbt: Guard wlbtd_init for platform where it is not enabled (Android P)
Fixes error on platform where wlbtd is not enabled
Change-Id: Idf57cf08a4d248c1fdda46bd4572a8ad4a241766
SCSC-Bug-Id: SSB-36810
Signed-off-by: Tarun Karela <t.karela@samsung.com>