aboutsummaryrefslogtreecommitdiff
path: root/drivers/extcon
AgeCommit message (Collapse)AuthorFilesLines
2013-04-02extcon: arizona: Retry HPDET identification for high impedanceMark Brown1-1/+17
Sometimes we can trigger measurements early if contacts are shorted during a slow insertion. As well as debouncing add further robustness by retrying if we get a high impedance measurement for headphones as this can indicate that the headphones were not yet connected. Signed-off-by: Mark Brown <[email protected]>
2013-04-02extcon: arizona: Tune up HPDET debounceMark Brown1-1/+1
Signed-off-by: Mark Brown <[email protected]>
2013-04-02extcon: arizona: Check we report a valid impedanceCharles Keepax1-10/+18
Occasionally we can trigger an interrupt before we have completed impedance measurement, although the valid bit will still be set. This patch spins reading the impedance value until a valid value is seen. Signed-off-by: Charles Keepax <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-04-02extcon: arizona: Suppress duplicate JACKDET reportsMark Brown1-4/+22
In cases where we see a brief (dis)connection of the jack detection signals we may see a noop jack insertion or removal where the jack has returned to the original state by the time the interrupt is serviced. Suppress these events in order to save work and avoid confusing the rest of the code. Signed-off-by: Mark Brown <[email protected]>
2013-04-02extcon: arizona: Raise minimum microphone impedance for HPDET methodMark Brown1-1/+1
Ensure greater reliability by increasing the minimum threashold for identifying a microphone. Signed-off-by: Mark Brown <[email protected]>
2013-04-02extcon: arizona: Allow pull to be disabled on GPIO5 when used for JACKETMark Brown1-2/+7
In some designs an external pull won't be needed. Signed-off-by: Mark Brown <[email protected]>
2013-04-02extcon: arizona: Don't pulse MICBIAS for HPDET identificationMark Brown1-2/+0
There is no need to do this as HPDET identification will cause MICBIAS to be powered down again. Signed-off-by: Mark Brown <[email protected]>
2013-04-02extcon: arizona: Allow configuration of button detectionMark Brown1-39/+125
The Arizona button detection circuit is configurable, allowing the system integrator to program a range of thresholds for the buttons supported on the accessory but currently the driver uses the default button ranges and does not provide any flexibility in how this is exposed to the application layer. Provide platform data allowing the user to control this and to map the buttons to keys in the input subsystem. Signed-off-by: Mark Brown <[email protected]>
2013-04-01extcon: arizona: Attempt more microphone measurementsMark Brown1-1/+3
In some pathological use cases users may insert an accessory very slowly causing multiple indeterminate measurements. Handle this by retrying many measurements before we give up and declare a headphone. Signed-off-by: Mark Brown <[email protected]>
2013-03-26Merge branch 'char-misc-linus' into char-misc-nextGreg Kroah-Hartman2-45/+114
This picks up the MEI fixes that we need in this branch now. Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-03-26extcon: arizona: Fix interaction between headphone outputs and identificationMark Brown1-14/+30
Running HPDET while the headphone outputs are enabled can disrupt the operation of HPDET. In order to avoid this HPDET needs to disable the headphone outputs and ASoC needs to not enable them while HPDET is running. For extcon instead of checking if the headphone output is enabled when doing magic application unconditionally disable the output and restore the state which ASoC wants set when undoing the magic. Signed-off-by: Mark Brown <[email protected]>
2013-03-26extcon: arizona: Factor out magic applicationMark Brown1-55/+36
We have a very similar sequence doing magic writes in several places (one of which missed an update to interlock with the CODEC driver) so factor it out into a function. Signed-off-by: Mark Brown <[email protected]>
2013-03-13extcon: max77693: Initialize register of MUIC device to bring up it without ↵Chanwoo Choi1-25/+68
platform data This patch set default value of MUIC register to bring up MUIC device. If user don't set some initial value for MUIC device through platform data, extcon-max77693 driver use 'default_init_data' to bring up base operation of MAX77693 MUIC device. Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-03-13extcon: max77693: Fix bug of wrong pointer when platform data is not usedChanwoo Choi1-38/+52
This patch fix wrong pointer of platform data. If each machine set platform data for h/w path or delay time of workqueue, this driver happen kernel panic related to null pointer. Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-03-13extcon: max8997: Check the pointer of platform data to protect null pointer ↵Chanwoo Choi1-22/+34
error This patch check the pointer of platform data to protect kernel panic when platform data is not used and code clean. Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-21Merge tag 'char-misc-3.9-rc1' of ↵Linus Torvalds5-559/+1972
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver patches from Greg Kroah-Hartman: "Here's the big char/misc driver patches for 3.9-rc1. Nothing major here, just lots of different driver updates (mei, hyperv, ipack, extcon, vmci, etc.). All of these have been in the linux-next tree for a while." * tag 'char-misc-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (209 commits) w1: w1_therm: Add force-pullup option for "broken" sensors w1: ds2482: Added 1-Wire pull-up support to the driver vme: add missing put_device() after device_register() fails extcon: max8997: Use workqueue to check cable state after completing boot of platform extcon: max8997: Set default UART/USB path on probe extcon: max8997: Consolidate duplicate code for checking ADC/CHG cable type extcon: max8997: Set default of ADC debounce time during initialization extcon: max8997: Remove duplicate code related to set H/W line path extcon: max8997: Move defined constant to header file extcon: max77693: Make max77693_extcon_cable static extcon: max8997: Remove unreachable code extcon: max8997: Make max8997_extcon_cable static extcon: max77693: Remove unnecessary goto statement to improve readability extcon: max77693: Convert to devm_input_allocate_device() extcon: gpio: Rename filename of extcon-gpio.c according to kernel naming style CREDITS: update email and address of Harald Hoyer extcon: arizona: Use MICDET for final microphone identification extcon: arizona: Always take the first HPDET reading as the final one extcon: arizona: Clear _trig_sts bits after jack detection extcon: arizona: Don't HPDET magic when headphones are enabled ...
2013-02-14extcon: max8997: Use workqueue to check cable state after completing boot of ↵Chanwoo Choi1-9/+36
platform This patch use delayed workqueue to check cable state after a certain time. If extcon-max8997 driver check cable state during booting of platform, this couldn't send the correct notification of cable state to extcon consumer. Alwasys, this driver should check cable state after the completion of platform initialization Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-14extcon: max8997: Set default UART/USB path on probeChanwoo Choi1-2/+26
This patch set default H/W line path according to platfomr data. The MAX8997 MUIC device can possibly set UART/USB or UART_AUX /USB_AUX to internal H/W line path of MUIC device. Namely, only one H/W line is used for two operation. For example, if H/W line path of MAX8997 device set UART/USB, micro usb cable is connected to AP(Application Processor) and if H/W line path set UART_AUX/USB_AUX, micro usb cable is connected to CP(Coprocessor). Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-14extcon: max8997: Consolidate duplicate code for checking ADC/CHG cable typeChanwoo Choi1-169/+323
This patch make max8997_muic_get_cable_type() function to remove duplicate code for checking ADC/Charger cable type because almost internal function need to read adc/chg_type value of MUIC register. Also, remove *_detach() function, extcon-max8997 driver treat attach/detach operation of cable in max8997_*_handler() function. Lastly, this patch move defined constant in header file(include/ linux/mfd/max8997.h, max8997-private.h) because defined constant is only used in the 'extcon-max8997.c'. Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-14extcon: max8997: Set default of ADC debounce time during initializationChanwoo Choi1-0/+42
This patch set default of ADC Debounce Time(25ms) during probe step. Also, can possible change ADC Debounce Time according to H/W situation by using max8997_set_adc_debounce_time() Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-14extcon: max8997: Remove duplicate code related to set H/W line pathChanwoo Choi1-11/+51
Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-14extcon: max8997: Move defined constant to header fileChanwoo Choi1-61/+31
This patch move defined constants to header file(max77693-private.h) because of mask/unmask selectively interrupt of MUIC device according to attribute of H/W board. Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-14extcon: max77693: Make max77693_extcon_cable staticSachin Kamat1-1/+1
'max77693_extcon_cable' is used only in this file. Hence make it static. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-14extcon: max8997: Remove unreachable codeSachin Kamat1-1/+0
'break' after 'return' is never executed and hence can be deleted. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-14extcon: max8997: Make max8997_extcon_cable staticSachin Kamat1-1/+1
'max8997_extcon_cable' is used only in this file. Hence make it static. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-02-13extcon: max77693: Remove unnecessary goto statement to improve readabilityChanwoo Choi1-34/+43
Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-02-13extcon: max77693: Convert to devm_input_allocate_device()Chanwoo Choi1-1/+1
Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-02-13extcon: gpio: Rename filename of extcon-gpio.c according to kernel naming styleChanwoo Choi1-1/+1
Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-02-11Merge tag 'extcon-arizona-3.9' of ↵Greg Kroah-Hartman2-38/+204
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc into char-misc-next Mark writes: extcon: arizona: Updates for v3.9 More updates for v3.9, a mix of fixes for the code that's already there and a few new features.
2013-02-11extcon: arizona: Use MICDET for final microphone identificationMark Brown1-8/+8
When using HPDET to identify the accessory still run MICDET before we report a microphone in order to ensure that the accessory identified is compatible with the MICDET detection ranges after having confirmed that the device is not using a headphone. Signed-off-by: Mark Brown <[email protected]>
2013-02-11extcon: arizona: Always take the first HPDET reading as the final oneMark Brown1-3/+4
This should always be the most accurate reading for supported accessory configurations. Signed-off-by: Mark Brown <[email protected]>
2013-02-11extcon: arizona: Clear _trig_sts bits after jack detectionCharles Keepax1-0/+7
It is important to clear the wake trigger status bits otherwise DCVDD will be held high independent of the state of the LDOENA line. Signed-off-by: Charles Keepax <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-02-11extcon: arizona: Don't HPDET magic when headphones are enabledMark Brown1-12/+46
The magic is already done as part of enabling the headphone output so does not need to be done when the headphone outputs are enabled. We hold the DAPM lock so the headphone status can't be changed underneath us. Signed-off-by: Mark Brown <[email protected]>
2013-02-11extcon: arizona: Add some debounce time before starting HPDET identificationMark Brown1-2/+20
The HPDET identification method does not have the same natural debounce built into it that the standard MICDET method does so add some extra on top of what the jack detection does in hardware to make sure we get a robust result. Signed-off-by: Mark Brown <[email protected]>
2013-02-11extcon: arizona: Remove extra jack flip incrementCharles Keepax1-2/+0
Signed-off-by: Charles Keepax <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-02-07extcon: arizona: Use regulated mode for microphone supply when detectingMark Brown2-1/+94
When starting microphone detection some headsets should be exposed to the fully regulated microphone bias in order to ensure that they behave in an optimal fashion. Signed-off-by: Mark Brown <[email protected]>
2013-02-07extcon: arizona: Support additional configuration of microphone detectionMark Brown1-0/+12
Allow systems to tune detection rate and debounce suitably for their mechanical parameters. Signed-off-by: Mark Brown <[email protected]>
2013-02-06iio: Update iio_channel_get API to use consumer device pointer as argumentGuenter Roeck1-2/+1
For iio_channel_get to work with OF based configurations, it needs the consumer device pointer instead of the consumer device name as argument. Signed-off-by: Guenter Roeck <[email protected]> Acked-by: Anton Vorontsov <[email protected]> Acked-by: Chanwoo Choi <[email protected]> Signed-off-by: Jonathan Cameron <[email protected]>
2013-01-25extcon: max77693: Fix bug of build error related to INPUT subsystemChanwoo Choi1-1/+1
This patch fix build error of following log: drivers/built-in.o: In function `max77693_muic_remove': extcon-max77693.c:(.text+0x664853): undefined reference to `input_unregister_device' drivers/built-in.o: In function `max77693_muic_probe': extcon-max77693.c:(.text+0x664971): undefined reference to `input_allocate_device' extcon-max77693.c:(.text+0x6649c1): undefined reference to `input_set_capability' extcon-max77693.c:(.text+0x6649d6): undefined reference to `input_set_capability' extcon-max77693.c:(.text+0x6649eb): undefined reference to `input_set_capability' extcon-max77693.c:(.text+0x664a00): undefined reference to `input_set_capability' extcon-max77693.c:(.text+0x664a15): undefined reference to `input_set_capability' extcon-max77693.c:(.text+0x664a20): undefined reference to `input_register_device' drivers/built-in.o: In function `max77693_muic_adc_handler': extcon-max77693.c:(.text+0x665318): undefined reference to `input_event' extcon-max77693.c:(.text+0x66532a): undefined reference to `input_event' make[1]: *** [vmlinux] Error 1 Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]> Reported-by: Randy Dunlap <[email protected]> Acked-by: Randy Dunlap <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-01-23extcon: arizona: Remove duplicate rate configurationMark Brown1-4/+0
Signed-off-by: Mark Brown <[email protected]>
2013-01-23extcon: arizona: Retry failed HP measurementsMark Brown1-6/+4
We now have mechanisms in place to allow retries so let's use them rather than guessing. Signed-off-by: Mark Brown <[email protected]>
2013-01-23extcon: arizona: Disable debouce for accessory removal detectionMark Brown1-0/+9
Ensure we clamp as quickly as possible after removal by disabling the debounce while there is an accessory present. Signed-off-by: Mark Brown <[email protected]>
2013-01-15extcon: arizona: Support direct microphone measurement via HPDETMark Brown1-5/+45
With some GPIO control it is possible to detect microphones in a wider range of configurations by directly measuring the microphone impedance when the HPDET method cannot distinguish between the behaviour of the two grounds. Allow a GPIO to be provided in platform data and use it to implement this behaviour. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-01-15extcon: arizona: Support HPDET based accessory identificationMark Brown1-12/+147
The accessory detection functionality in Arizona devices is flexible and supports several system designs in addition to the default one implemented by the existing driver. One such design uses the HPDET feature to determine what kind of accessory is present by comparing measurements taken with the two headphone grounds available on the device, implement that if selected by platform data. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-01-15extcon: Simple code motion supporting future work.Mark Brown1-60/+60
Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-01-15extcon: arizona: Enable basic headphone identificationMark Brown1-21/+320
Use the headphone detection to identify if the accessory is a headphone or line load. There are two different revisions of the IP with different register layouts, support both. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-01-15extcon: arizona: Support use of GPIO5 as an input to jack detectionMark Brown1-18/+58
Some system designs provide an input on GPIO5 which in conjunction with the jack detection feature indicates the presence of an accessory. Support such systems, using the microphone clamp feature to minimise wakeups of the processor. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-01-15extcon: arizona: Use microphone clamp function if availableMark Brown1-0/+19
Newer Arizona devices include a microphone clamp function which is tied to jack detect. Activate this feature when present in order to ensure best performance of the subsystem. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-01-15extcon: arizona: Allow configuration of MICBIAS rise timeMark Brown1-0/+6
Allow configuration of the rise time for MICBIAS via platform data, the delay required depends on things like the external component selection. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Acked-by: MyungJoo Ham <[email protected]>
2013-01-15extcon: arizona: Only set GPIO if it has been requestedMark Brown1-2/+3
The micd_pol GPIO is only requested if we've specified one greater than 0 so apply the same test before we set it. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>