aboutsummaryrefslogtreecommitdiff
path: root/drivers/extcon/extcon-gpio.c
AgeCommit message (Collapse)AuthorFilesLines
2019-07-24extcon: gpio: Request reasonable interruptsLinus Walleij1-10/+19
The only thing that makes sense is to request a falling edge interrupt if the line is active low and a rising edge interrupt if the line is active high, so just do that and get rid of the assignment from platform data. The GPIO descriptor knows if the line is active high or low. Also make irq a local variable in probe(), it's not used anywhere else. Signed-off-by: Linus Walleij <[email protected]> [cw00.choi: Fix build error of data->irq_flags] Signed-off-by: Chanwoo Choi <[email protected]>
2019-06-05treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282Thomas Gleixner1-9/+1
Based on 1 normalized pattern(s): this software is licensed under the terms of the gnu general public license version 2 as published by the free software foundation and may be copied distributed and modified under those terms this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 285 file(s). Signed-off-by: Thomas Gleixner <[email protected]> Reviewed-by: Alexios Zavras <[email protected]> Reviewed-by: Allison Randal <[email protected]> Cc: [email protected] Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-03-21extcon: gpio: Convert to fully use GPIO descriptorLinus Walleij1-51/+15
Since we are not getting the GPIO from any platform data and global GPIO numberspace, we simply get the named "extcon" GPIO directly from the device. Cut away "active low" since GPIO descriptors already know if the line is active high or low. Simplify a bit with a struct device *dev helper variable in probe() and cut the complex init() function. Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2018-03-21extcon: gpio: Move platform data into state containerLinus Walleij1-30/+33
This moves the platform data settings from the platform data struct and into the state container, saving some unnecessary references and simplifying things a bit. Signed-off-by: Linus Walleij <[email protected]> [cw00.choi: Add FIXME comment of extcon_id] Signed-off-by: Chanwoo Choi <[email protected]>
2018-03-21extcon: gpio: Localize platform dataLinus Walleij1-1/+21
Nothing in the entire kernel #includes <linux/extcon/extcon-gpio.h> so move the platform data declaration inside of the driver. Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2017-10-23extcon: Split out extcon header file for consumer and provider deviceChanwoo Choi1-1/+1
The extcon has two type of extcon devices as following. - 'extcon provider deivce' adds new extcon device and detect the state/properties of external connector. Also, it notifies the state/properties to the extcon consumer device. - 'extcon consumer device' gets the change state/properties from extcon provider device. Prior to that, include/linux/extcon.h contains all exported API for both provider and consumer device driver. To clarify the meaning of header file and to remove the wrong use-case on consumer device, this patch separates into extcon.h and extcon-provider.h. [Description for include/linux/{extcon.h|extcon-provider.h}] - extcon.h includes the extcon API and data structure for extcon consumer device driver. This header file contains the following APIs: : Register/unregister the notifier to catch the change of extcon device : Get the extcon device instance : Get the extcon device name : Get the state of each external connector : Get the property value of each external connector : Get the property capability of each external connector - extcon-provider.h includes the extcon API and data structure for extcon provider device driver. This header file contains the following APIs: : Include 'include/linux/extcon.h' : Allocate the memory for extcon device instance : Register/unregister extcon device : Set the state of each external connector : Set the property value of each external connector : Set the property capability of each external connector Signed-off-by: Chanwoo Choi <[email protected]> Acked-by: Sebastian Reichel <[email protected]> Acked-by: Chen-Yu Tsai <[email protected]> Acked-by: Charles Keepax <[email protected]> Acked-by: Lee Jones <[email protected]> Acked-by: Felipe Balbi <[email protected]> Acked-by: Yoshihiro Shimoda <[email protected]> Acked-by: Kishon Vijay Abraham I <[email protected]>
2016-09-15Merge branch 'next' into resolutionKishon Vijay Abraham I1-0/+1
Conflicts: drivers/extcon/extcon-adc-jack.c drivers/extcon/extcon-arizona.c drivers/extcon/extcon-gpio.c include/linux/extcon.h
2016-09-13extcon: Use the extcon_set_state_sync() instead of deprecated functionsChanwoo Choi1-1/+1
This patch alters the renamed extcon API to set the state of the external connectors instead of deprecated extcon_set_cable_state_(). Because the patch[1] modifies the function name to maintain the function naming pattern. - extcon_set_cable_state_() -> extcon_set_state_sync() - extcon_get_cable_state_() -> extcon_get_state() [1] https://lkml.org/lkml/2016/8/4/729 - extcon: Rename the extcon_set/get_state() to maintain the function naming pattern Signed-off-by: Chanwoo Choi <[email protected]> Acked-by: Charles Keepax <[email protected]> Acked-by: Roger Quadros <[email protected]>
2016-09-10extcon: gpio: Remove the usage of extcon_set_state()Chanwoo Choi1-1/+1
This patch removes the usage of extcon_set_state() because it uses the bit masking to change the state of external connectors. The extcon framework should handle the state by extcon_set_cable_state_() with extcon id. Signed-off-by: Chanwoo Choi <[email protected]>
2016-08-08extcon: gpio: Remove the usage of extcon_set_state()Chanwoo Choi1-1/+1
This patch removes the usage of extcon_set_state() because it uses the bit masking to change the state of external connectors. The extcon framework should handle the state by extcon_set_cable_state_() with extcon id. Signed-off-by: Chanwoo Choi <[email protected]>
2016-01-25extcon: gpio: Fix typo in commentMoritz Fischer1-1/+1
This patch fixes the typo in comment of extcon-gpio.c driver. - 'interrput' -> 'interrupt' Signed-off-by: Moritz Fischer <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2015-09-30extcon: gpio: Use descriptor-based GPIO interface instead of legacy gpio_* APIChanwoo Choi1-19/+43
This patch uses the descriptor-based GPIO interface (gpiod_* API) instead of legacy gpio_* API and add the internal gpio_extcon_init() to handle all gpio-related tasks. Signed-off-by: Chanwoo Choi <[email protected]>
2015-09-30extcon: gpio: Fix minor coding style and remove the unused fields.Chanwoo Choi1-7/+4
This patch fixes the minor coding style about indentation and removes the unused fields from struct gpio_extcon_platform_data. Signed-off-by: Chanwoo Choi <[email protected]>
2015-09-30extcon: gpio: Add the missing supported_cable parameter to ↵Chanwoo Choi1-4/+2
devm_extcon_dev_allocate() The commit 2a9de9c0 ("extcon: Use the unique id for external connector instead of string") defines the unique id of each external connector to identify the type of external connector instead of string name. So, devm_extcon_dev_allocate() should include the second parameter (unsigned int *supported_cable). This patch adds the supported_cable parameter which is passed by platform data. Signed-off-by: Chanwoo Choi <[email protected]>
2015-09-30extcon: gpio: Remove duplicate data from struct gpio_extcon_dataChanwoo Choi1-39/+31
There are duplicate data between struct gpio_extcon_data and struct gpio_extcon_platform_data. This patch removes them from struct gpio_extcon_data. Instead, this patch add pdata field to struct gpio_extcon_data. Signed-off-by: Chanwoo Choi <[email protected]>
2015-09-30extcon: gpio: Use resource managed function for request_irqChanwoo Choi1-4/+3
This patch uses the resource managed function for registering interrupt. Signed-off-by: Chanwoo Choi <[email protected]>
2015-08-10extcon: Remove optional print_state() function pointer of struct extcon_devChanwoo Choi1-18/+0
This patch removes the optional print_state() function pointer which included in 'struct extcon_dev' because the extcon must maintain the consistent name of extcon device on sysfs instead of inconsistent state of external connectors. Signed-off-by: Chanwoo Choi <[email protected]>
2015-05-19extcon: Remove the optional name of extcon deviceChanwoo Choi1-1/+0
This patch removes the optional name of extcon device. Instead, extcon_dev_register() set the device name as 'extcon[number]' naming pattern. - /sys/class/extcon/[hardcoded device name] -> /sys/class/extcon/extcon[number] Signed-off-by: Chanwoo Choi <[email protected]> Acked-by: Krzysztof Kozlowski <[email protected]> Cc: MyungJoo Ham <[email protected]> Cc: Charles Keepax <[email protected]> Cc: Graeme Gregory <[email protected]> Cc: Kishon Vijay Abraham I <[email protected]> Cc: Krzysztof Kozlowski <[email protected]> Cc: Jaewon Kim <[email protected]>
2014-10-20extcon: drop owner assignment from platform_driversWolfram Sang1-1/+0
A platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: Wolfram Sang <[email protected]>
2014-09-22extcon: gpio: Fix code cleanupGeorge Cherian1-5/+5
This patch fixes following minor cleanup: - Order the include files in alphabetical order. - Fix description of state_off in extcon_gpio.h - Add a descrition for check_on_resume in extcon_gpio.h Signed-off-by: George Cherian <[email protected]> [Modify the name/description of patch to keep standary codiyg style by Chanwoo Choi] Signed-off-by: Chanwoo Choi <[email protected]>
2014-06-16extcon: Set parent device of extcon device using prameter of ↵Chanwoo Choi1-1/+0
devm_extcon_dev_allocate This patch set the parent device of extcon device using first parameter of devm_extco_dev_allocate() to remove duplicate code on all of extcon provider drivers. Signed-off-by: Chanwoo Choi <[email protected]> Reported-by: Charles Keepax <[email protected]> Tested-by: Charles Keepax <[email protected]> Cc: Charles Keepax <[email protected]> Cc: Mark Brown <[email protected]> Cc: Graeme Gregory <[email protected]> Cc: Kishon Vijay Abraham I <[email protected]> Cc: Krzysztof Kozlowski <[email protected]>
2014-04-29extcon: gpio: Use devm_extcon_dev_allocate for extcon_devChanwoo Choi1-8/+15
This patch use devm_extcon_dev_allocate() to simplify the memory control of extcon device. Signed-off-by: Chanwoo Choi <[email protected]> Reviewed-by: Felipe Balbi <[email protected]>
2014-04-24extcon: gpio: Use devm_extcon_dev_register()Sangjung Woo1-12/+4
Use the resource-managed extcon device register function (i.e. devm_extcon_dev_register()) instead of extcon_dev_register(). If extcon device is attached with this function, that extcon device is automatically unregistered on driver detach. That reduces tiresome managing code. Signed-off-by: Sangjung Woo <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2014-03-19extcon: gpio: Use SIMPLE_DEV_PM_OPS macroJingoo Han1-3/+1
Use SIMPLE_DEV_PM_OPS macro in order to make the code simpler. Signed-off-by: Jingoo Han <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2014-01-09extcon: gpio: Add power resume supportRongjun Ying1-0/+21
When system on the suspend state, Some SoC can't get gpio interrupt. After system resume, need send extcon uevent to userspace. Signed-off-by: Rongjun Ying <[email protected]> Reviewed-by: Barry Song <[email protected]> Acked-by: Myungjoo Ham <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2014-01-07extcon: gpio: Request gpio pin before modifying its stateGuenter Roeck1-5/+6
Commit 338de0ca (extcon: gpio: Use gpio driver/chip debounce if supported) introduced a call to gpio_set_debounce() before actually requesting the respective gpio pin from the gpio subsystem. The gpio subsystem expects that a gpio pin was requested before modifying its state. Not doing so results in a warning from gpiolib, and the gpio pin is auto-requested. This in turn causes the subsequent devm_gpio_request_one() to fail. So devm_gpio_request_one() must be called prior to calling gpio_set_debounce(). Signed-off-by: Guenter Roeck <[email protected]> Acked-by: MyungJoo Ham <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2013-09-27extcon: Simplify extcon_dev_register() prototype by removing unnecessary ↵Chanwoo Choi1-1/+2
parameter This patch remove extcon_dev_register()'s second parameter which means the pointer of parent device to simplify prototype of this function. So, if extcon device has the parent device, it should set the pointer of parent device to edev.dev.parent in extcon device driver instead of in extcon_dev_register(). Cc: Graeme Gregory <[email protected]> Cc: Kishon Vijay Abraham I <[email protected]> Cc: Charles Keepax <[email protected]> Cc: Mark Brown <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[email protected]>
2013-09-27extcon: gpio: Add support for active-low presence to detect pinsGuenter Roeck1-0/+4
This patch add 'gpio_active_low' field to 'struct gpio_extcon_data' to check whether gpio active state is 1(high) or 0(low). Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2013-09-27extcon: use dev_get_platdata()Jingoo Han1-1/+1
Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. This is a cosmetic change to make the code simpler and enhance the readability. Signed-off-by: Jingoo Han <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2013-09-27extcon: gpio: Use gpio driver/chip debounce if supportedGuenter Roeck1-1/+7
This patch use gpio_set_debounce() API provided from gpiolib if SoC or device driver with gpio support gpio_set_debounce() function. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2013-09-27extcon: gpio: Do not unnecessarily initialize variablesGuenter Roeck1-1/+1
Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]>
2013-08-05extcon: gpio: Use power efficient workqueue for debounceMark Brown1-1/+1
The debounce timeout is generally quite long and the work not performance critical so allow the scheduler to run the work anywhere rather than in the normal per-CPU workqueue. Signed-off-by: Mark Brown <[email protected]> Acked-by: Viresh Kumar <[email protected]> Signed-off-by: Chanwoo Choi <[email protected]> Signed-off-by: Myungjoo Ham <[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]>
2012-11-26extcon: remove use of __devexit_pBill Pemberton1-1/+1
CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer needed. Signed-off-by: Bill Pemberton <[email protected]> Cc: MyungJoo Ham <[email protected]> Cc: Chanwoo Choi <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2012-11-26extcon: remove use of __devinitBill Pemberton1-1/+1
CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: Bill Pemberton <[email protected]> Cc: MyungJoo Ham <[email protected]> Cc: Chanwoo Choi <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2012-11-26extcon: remove use of __devexitBill Pemberton1-1/+1
CONFIG_HOTPLUG is going away as an option so __devexit is no longer needed. Signed-off-by: Bill Pemberton <[email protected]> Cc: MyungJoo Ham <[email protected]> Cc: Chanwoo Choi <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2012-10-22extcon: Remove duplicate inclusion of extcon.h header fileSachin Kamat1-1/+0
extcon.h header file was included twice. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: MyungJoo Ham <[email protected]>
2012-08-27Merge 3.6-rc3 into driver-core-nextGreg Kroah-Hartman1-1/+2
This picks up the printk fixes in 3.6-rc3 that are needed in this branch. Signed-off-by: Greg Kroah-Hartman <[email protected]>
2012-08-16Extcon: renamed files to comply with the standard naming.MyungJoo Ham1-0/+164
Replaced '_' with '-' in the extcon file names, which has been bogging since new drivers have been using the standard naming. Signed-off-by: MyungJoo Ham <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>