mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
MFD changes due for the v3.14 merge window
New drivers
- Samsung Maxim 14577; Micro USB, Regulator, IRQ Controller and Battery Charger
- TI/National Semiconductor LP3943 I2C GPIO Expander and PWM Generator
Existing driver adaptions
- Expansion of Wolfson Arizona DSP and High-Pass filter controls
- TI TWL6040 default Regmap support and Regcache addition/bypass
- Some nice Smatch catch fixes
- Conversion of TI OMAP-USB and TI TWL6030 to endian neutralness
- ChromeOS EC timing (delay) adaptions and added dependency on OF
- Many constifications of 'struct {mfd_cell,regmap_irq,et. al}'
- Watchdog support added for NVIDIA AS3722
- Convert functions to static in TI AM335x
- Realigned previously defeated functionality in TI AM335x
- IIO ADC-TSC concurrency dead-lock/timeout resolution
- Addition of Power Management and Clock support for Samsung core
- DEFINE_PCI_DEVICE_TABLE macro removal from MFD Subsystem
- Greater use of irqdomain functionality in ST-E AB8500
- Removal of 'include/linux/mfd/abx500/ab8500-gpio.h'
- Wolfson WM831x PMIC Power Management changes s/poweroff/shutdown/
- Device Tree documentation added for TI/Nat Semi LP3943
- Version detection and voltage tables for TI TPS6586x PMIC devices
- Simplification of Freescale MC13XXX (de-)initialisation routines
- Clean-up and simplification of the Realtek parent driver
- Added support for RTL8402 Realtek PCI-Express card reader
- Resource leak fix for Maxim 77686
- Possible suspend BUG() fix in OMAP USB TLL
- Support for new Wolfson WM5110 Revision (D)
- Testing of automatic assignment of of_node in mfd_add_device()
- Reversion of the above when it started to cause issues
- Remove legacy Platform Data from;
TI TWL Core, Qualcomm SSBI and ST-E ABx500 Pinctrl
- Clean-ups; tabbing issues, function name changes, 'drvdata = NULL' removal,
unused uninitialised warning mitigation, error message clarity,
removal of redundant/duplicate checks, licensing (GPL -> GPL2),
coding consistency, duplicate function declaration, ret checks,
commit corrections, redundant of_match_ptr() helper removal,
spelling, #if-deffery removal and header guards name changes
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
iQIbBAABAgAGBQJS3pLGAAoJEFGvii+H/HdhmkkP93Hrd9FBjVpmUQcOrghFDd//
vte2LVDovXDcwm7i+BdZNG3+2aWtliTQXIw8PaAziUTwMlDNtT2B6GBFnIff4aXB
Em/Oh6Je7r1gom1gMPCuefRrInTk0xEXy9Oazp4Hn4in71T+8PHNlEHdxEojakEm
H5FnjAfgISEsA5twSyO9efVLNqPd3UQqg3O571oKwfuSED70YSCW2Yyaoiz4pnE5
0WwZ9cel+sP7CIuyuR4TumUSDeBIAnYnZWqjqXZ1ueMWcm2RNVqeFrt/w0uoZjOA
yBg8ZMfkBcePd6qnifqVqagRW/jW1bxmUeIHkp0bWeMqWN6Yyypitz8ZW+Qi7Swa
OcmgM9V7OW1WG9FF7HoLbYHIPzmBb6duGtcCfAir4m8HJjyPfTuJpOshBW1F3+VG
yEf5a1fj2NO34kvIbLec2f7MveIMmZxzWaoOx+ET9/WPknilifgyp7eDH24pQwI4
5Lo5Z5uAfBCT3roOzHxCLl2nVXQoC66iTwdnneiEOn4rB/ApjfGVvGGd0VT6TD+g
z3RqxpTdkd0AtjfeF778uTDBEKu7HZkqmlBP8HKWCBEAzqcKg7BpjYw0ajgmVwKr
QiuBuWcEZ/2vVt8Qot7y5Vx89Q4AQwOqc24SldtQLu46iPAuKt+GizzHRw3IxBiQ
VU9Aq/VoaTHBLS91tDE=
=PuTE
-----END PGP SIGNATURE-----
Merge tag 'mfd-3.14-1' of git://git.linaro.org/people/ljones/mfd
Pull MFD changes from Lee Jones:
"New drivers
- Samsung Maxim 14577; Micro USB, Regulator, IRQ Controller and
Battery Charger
- TI/National Semiconductor LP3943 I2C GPIO Expander and PWM
Generator
Existing driver adaptions
- Expansion of Wolfson Arizona DSP and High-Pass filter controls
- TI TWL6040 default Regmap support and Regcache addition/bypass
- Some nice Smatch catch fixes
- Conversion of TI OMAP-USB and TI TWL6030 to endian neutralness
- ChromeOS EC timing (delay) adaptions and added dependency on OF
- Many constifications of 'struct {mfd_cell,regmap_irq,et.al}'
- Watchdog support added for NVIDIA AS3722
- Convert functions to static in TI AM335x
- Realigned previously defeated functionality in TI AM335x
- IIO ADC-TSC concurrency dead-lock/timeout resolution
- Addition of Power Management and Clock support for Samsung core
- DEFINE_PCI_DEVICE_TABLE macro removal from MFD Subsystem
- Greater use of irqdomain functionality in ST-E AB8500
- Removal of 'include/linux/mfd/abx500/ab8500-gpio.h'
- Wolfson WM831x PMIC Power Management changes s/poweroff/shutdown/
- Device Tree documentation added for TI/Nat Semi LP3943
- Version detection and voltage tables for TI TPS6586x PMIC devices
- Simplification of Freescale MC13XXX (de-)initialisation routines
- Clean-up and simplification of the Realtek parent driver
- Added support for RTL8402 Realtek PCI-Express card reader
- Resource leak fix for Maxim 77686
- Possible suspend BUG() fix in OMAP USB TLL
- Support for new Wolfson WM5110 Revision (D)
- Testing of automatic assignment of of_node in mfd_add_device()
- Reversion of the above when it started to cause issues
- Remove legacy Platform Data from;
TI TWL Core, Qualcomm SSBI and ST-E ABx500 Pinctrl
- Clean-ups; tabbing issues, function name changes, 'drvdata = NULL'
removal, unused uninitialised warning mitigation, error
message clarity, removal of redundant/duplicate checks,
licensing (GPL -> GPL2), coding consistency, duplicate
function declaration, ret checks, commit corrections,
redundant of_match_ptr() helper removal, spelling,
#if-deffery removal and header guards name changes"
* tag 'mfd-3.14-1' of git://git.linaro.org/people/ljones/mfd: (78 commits)
mfd: wm5110: Add register patch for rev D chip
mfd: omap-usb-tll: Don't hold lock during pm_runtime_get/put_sync()
gpio: lp3943: Remove redundant of_match_ptr helper
mfd: sta2x11-mfd: Use named constants for pci_power_t values
Documentation: mfd: Fix LDO index in s2mps11.txt
mfd: Cleanup mfd-mcp-sa11x0.h header
mfd: max8997: Use "IS_ENABLED(CONFIG_OF)" for DT code.
mfd: twl6030: Fix endianness problem in IRQ handler
mfd: sec-core: Add cells for S5M8767-clocks
mfd: max14577: Remove redundant of_match_ptr helper
mfd: twl6040: Fix sparse non static symbol warning
mfd: Revert "mfd: Always assign of_node in mfd_add_device()"
mfd: rtsx: Fix sparse non static symbol warning
mfd: max77693: Set proper maximum register for MUIC regmap
mfd: max77686: Fix regmap resource leak on driver remove
mfd: Represent correct filenames in file headers
mfd: rtsx: Add support for card reader rtl8402
mfd: rtsx: Add set pull control macro and simplify rtl8411
mfd: max8997: Enforce mfd_add_devices() return value check
mfd: mc13xxx: Simplify probe() & remove()
...
This commit is contained in:
commit
ac26663572
106 changed files with 2343 additions and 653 deletions
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/bitops.h>
|
||||
#include <linux/mfd/abx500.h>
|
||||
#include <linux/mfd/abx500/ab8500.h>
|
||||
#include <linux/mfd/abx500/ab8500-gpio.h>
|
||||
#include <linux/pinctrl/pinctrl.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/pinctrl/pinmux.h>
|
||||
|
|
@ -1218,21 +1217,15 @@ static const struct of_device_id abx500_gpio_match[] = {
|
|||
|
||||
static int abx500_gpio_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct ab8500_platform_data *abx500_pdata =
|
||||
dev_get_platdata(pdev->dev.parent);
|
||||
struct abx500_gpio_platform_data *pdata = NULL;
|
||||
struct device_node *np = pdev->dev.of_node;
|
||||
const struct of_device_id *match;
|
||||
struct abx500_pinctrl *pct;
|
||||
const struct platform_device_id *platid = platform_get_device_id(pdev);
|
||||
unsigned int id = -1;
|
||||
int ret, err;
|
||||
int i;
|
||||
|
||||
if (abx500_pdata)
|
||||
pdata = abx500_pdata->gpio;
|
||||
|
||||
if (!(pdata || np)) {
|
||||
dev_err(&pdev->dev, "gpio dt and platform data missing\n");
|
||||
if (!np) {
|
||||
dev_err(&pdev->dev, "gpio dt node missing\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
|
|
@ -1248,17 +1241,14 @@ static int abx500_gpio_probe(struct platform_device *pdev)
|
|||
pct->parent = dev_get_drvdata(pdev->dev.parent);
|
||||
pct->chip = abx500gpio_chip;
|
||||
pct->chip.dev = &pdev->dev;
|
||||
pct->chip.base = (np) ? -1 : pdata->gpio_base;
|
||||
pct->chip.base = -1; /* Dynamic allocation */
|
||||
|
||||
if (platid)
|
||||
id = platid->driver_data;
|
||||
else if (np) {
|
||||
const struct of_device_id *match;
|
||||
|
||||
match = of_match_device(abx500_gpio_match, &pdev->dev);
|
||||
if (match)
|
||||
id = (unsigned long)match->data;
|
||||
match = of_match_device(abx500_gpio_match, &pdev->dev);
|
||||
if (!match) {
|
||||
dev_err(&pdev->dev, "gpio dt not matching\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
id = (unsigned long)match->data;
|
||||
|
||||
/* Poke in other ASIC variants here */
|
||||
switch (id) {
|
||||
|
|
@ -1349,14 +1339,6 @@ static int abx500_gpio_remove(struct platform_device *pdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct platform_device_id abx500_pinctrl_id[] = {
|
||||
{ "pinctrl-ab8500", PINCTRL_AB8500 },
|
||||
{ "pinctrl-ab8540", PINCTRL_AB8540 },
|
||||
{ "pinctrl-ab9540", PINCTRL_AB9540 },
|
||||
{ "pinctrl-ab8505", PINCTRL_AB8505 },
|
||||
{ },
|
||||
};
|
||||
|
||||
static struct platform_driver abx500_gpio_driver = {
|
||||
.driver = {
|
||||
.name = "abx500-gpio",
|
||||
|
|
@ -1365,7 +1347,6 @@ static struct platform_driver abx500_gpio_driver = {
|
|||
},
|
||||
.probe = abx500_gpio_probe,
|
||||
.remove = abx500_gpio_remove,
|
||||
.id_table = abx500_pinctrl_id,
|
||||
};
|
||||
|
||||
static int __init abx500_gpio_init(void)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,18 @@ enum abx500_pin_func {
|
|||
ABX500_ALT_C,
|
||||
};
|
||||
|
||||
enum abx500_gpio_pull_updown {
|
||||
ABX500_GPIO_PULL_DOWN = 0x0,
|
||||
ABX500_GPIO_PULL_NONE = 0x1,
|
||||
ABX500_GPIO_PULL_UP = 0x3,
|
||||
};
|
||||
|
||||
enum abx500_gpio_vinsel {
|
||||
ABX500_GPIO_VINSEL_VBAT = 0x0,
|
||||
ABX500_GPIO_VINSEL_VIN_1V8 = 0x1,
|
||||
ABX500_GPIO_VINSEL_VDD_BIF = 0x2,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct abx500_function - ABx500 pinctrl mux function
|
||||
* @name: The name of the function, exported to pinctrl core.
|
||||
|
|
|
|||
Loading…
Reference in a new issue