Merge tag 'mfd-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd

Pull MFD updates from Lee Jones:
 "New Device Support:
   - Add support for s2mps15; sec-core
   - Add support for Lewisburg; lpc_ich
   - Add support for cs47l24 and wm1831; arizona

  New Functionality:
   - Allow user to select syscon register width; syscon

  Fix-ups:
   - Lots of Checkpatch fixes
   - Rename -pmic/-regulator; s2mps11
   - Build driver components into a single module; wm8994-*
   - Better handing of IRQ during suspend/resume; as3722
   - Constify things; da903x
   - Remove unused code; ab8500-core
   - Improve error handing; qcom_rpm
   - Simplify code: wm831x-otp, sta2x11-mfd
   - Improve locking; cros_ec_spi
   - Fix incorrect DT binding filename reference; arizona, palmas,
     snps-dwapb-gpio, wm8994

  Bug Fixes:
   - Fix broken SYSFS 'show ID' call; wm831x-otp
   - Protect reads from non-existent registers; qcom-spmi-pmic
   - Repair build warnings; as3722
   - Fix IRQ request ordering; arizona-irq
   - Ensure return value is boolean; ucb1x00-core, tps65010, tc6393xb,
     htc-egpio, dm355evm_msp, asic3"

* tag 'mfd-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (58 commits)
  mfd: davinci_voicecodec: Remove pointless 'out of memory' error message
  mfd: da9052-irq: Fix trivial 'space before comma' error
  mfd: da9052-i2c: Fix tabbing/whitespace issue
  mfd: da903x: Fix white space and split string issues
  mfd: cs5535-mfd: Add missing line spacing and make local array static
  mfd: cros_ec_spi: Repair comparison ordering issue
  mfd: cros_ec_i2c: Fix trivial 'tabs before spaces' whitespace issue.
  mfd: asic3: Fix a plethora of Checkpatch errors and warnings
  mfd: as3711: Repair OOM and 'line over 80 chars' formatting warnings
  mfd: arizona-i2c: Add blank line formatting after declaration
  mfd: arizona-core: msleep() is unreliable for anything <20ms use usleep_range() instead
  mfd: adp5520: Some trivial 'no space before tab' fixes
  mfd: ab8500-sysctrl: Fix Constify, printk => pr_info and formatting issues
  mfd: ab8500-gpadc: Squash a whole bunch of Checkpatch warnings and one error
  mfd: ab8500-debugfs: Clean-up non-conforming commenting and print formatting
  mfd: ab8500-core: Fix many warnings reported by Checkpatch
  mfd: ab2100-otp: Remove pointless 'out of memory' error message
  mfd: ab3100-core.c: Fix multiple warnings reported by Checkpatch
  mfd: aat2870-core: Remove unnecessary 'out of memory' message
  mfd: 88pm860x-core: Fix commenting and declaration spacing
  ...
This commit is contained in:
Linus Torvalds
2016-01-14 10:53:15 -08:00
73 changed files with 2984 additions and 1231 deletions

View File

@@ -27,6 +27,8 @@ enum arizona_type {
WM8280 = 4,
WM8998 = 5,
WM1814 = 6,
WM1831 = 7,
CS47L24 = 8,
};
#define ARIZONA_IRQ_GP1 0
@@ -166,6 +168,7 @@ static inline int wm5102_patch(struct arizona *arizona)
#endif
int wm5110_patch(struct arizona *arizona);
int cs47l24_patch(struct arizona *arizona);
int wm8997_patch(struct arizona *arizona);
int wm8998_patch(struct arizona *arizona);

View File

@@ -171,7 +171,7 @@ struct arizona_pdata {
int inmode[ARIZONA_MAX_INPUT];
/** Mode for outputs */
bool out_mono[ARIZONA_MAX_OUTPUT];
int out_mono[ARIZONA_MAX_OUTPUT];
/** PDM speaker mute setting */
unsigned int spk_mute[ARIZONA_MAX_PDM_SPK];

View File

@@ -44,6 +44,7 @@ enum sec_device_type {
S2MPS11X,
S2MPS13X,
S2MPS14X,
S2MPS15X,
S2MPU02,
};

View File

@@ -107,6 +107,8 @@ enum s2mps_rtc_reg {
#define S2MPS_RTC_WUDR_MASK (1 << S2MPS_RTC_WUDR_SHIFT)
#define S2MPS13_RTC_AUDR_SHIFT 1
#define S2MPS13_RTC_AUDR_MASK (1 << S2MPS13_RTC_AUDR_SHIFT)
#define S2MPS15_RTC_WUDR_SHIFT 1
#define S2MPS15_RTC_WUDR_MASK (1 << S2MPS15_RTC_WUDR_SHIFT)
#define S2MPS_RTC_RUDR_SHIFT 0
#define S2MPS_RTC_RUDR_MASK (1 << S2MPS_RTC_RUDR_SHIFT)
#define RTC_TCON_SHIFT 1

View File

@@ -0,0 +1,158 @@
/*
* Copyright (c) 2015 Samsung Electronics Co., Ltd
* http://www.samsung.com
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* 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.
*/
#ifndef __LINUX_MFD_S2MPS15_H
#define __LINUX_MFD_S2MPS15_H
/* S2MPS15 registers */
enum s2mps15_reg {
S2MPS15_REG_ID,
S2MPS15_REG_INT1,
S2MPS15_REG_INT2,
S2MPS15_REG_INT3,
S2MPS15_REG_INT1M,
S2MPS15_REG_INT2M,
S2MPS15_REG_INT3M,
S2MPS15_REG_ST1,
S2MPS15_REG_ST2,
S2MPS15_REG_PWRONSRC,
S2MPS15_REG_OFFSRC,
S2MPS15_REG_BU_CHG,
S2MPS15_REG_RTC_BUF,
S2MPS15_REG_CTRL1,
S2MPS15_REG_CTRL2,
S2MPS15_REG_RSVD1,
S2MPS15_REG_RSVD2,
S2MPS15_REG_RSVD3,
S2MPS15_REG_RSVD4,
S2MPS15_REG_RSVD5,
S2MPS15_REG_RSVD6,
S2MPS15_REG_CTRL3,
S2MPS15_REG_RSVD7,
S2MPS15_REG_RSVD8,
S2MPS15_REG_RSVD9,
S2MPS15_REG_B1CTRL1,
S2MPS15_REG_B1CTRL2,
S2MPS15_REG_B2CTRL1,
S2MPS15_REG_B2CTRL2,
S2MPS15_REG_B3CTRL1,
S2MPS15_REG_B3CTRL2,
S2MPS15_REG_B4CTRL1,
S2MPS15_REG_B4CTRL2,
S2MPS15_REG_B5CTRL1,
S2MPS15_REG_B5CTRL2,
S2MPS15_REG_B6CTRL1,
S2MPS15_REG_B6CTRL2,
S2MPS15_REG_B7CTRL1,
S2MPS15_REG_B7CTRL2,
S2MPS15_REG_B8CTRL1,
S2MPS15_REG_B8CTRL2,
S2MPS15_REG_B9CTRL1,
S2MPS15_REG_B9CTRL2,
S2MPS15_REG_B10CTRL1,
S2MPS15_REG_B10CTRL2,
S2MPS15_REG_BBCTRL1,
S2MPS15_REG_BBCTRL2,
S2MPS15_REG_BRAMP,
S2MPS15_REG_LDODVS1,
S2MPS15_REG_LDODVS2,
S2MPS15_REG_LDODVS3,
S2MPS15_REG_LDODVS4,
S2MPS15_REG_L1CTRL,
S2MPS15_REG_L2CTRL,
S2MPS15_REG_L3CTRL,
S2MPS15_REG_L4CTRL,
S2MPS15_REG_L5CTRL,
S2MPS15_REG_L6CTRL,
S2MPS15_REG_L7CTRL,
S2MPS15_REG_L8CTRL,
S2MPS15_REG_L9CTRL,
S2MPS15_REG_L10CTRL,
S2MPS15_REG_L11CTRL,
S2MPS15_REG_L12CTRL,
S2MPS15_REG_L13CTRL,
S2MPS15_REG_L14CTRL,
S2MPS15_REG_L15CTRL,
S2MPS15_REG_L16CTRL,
S2MPS15_REG_L17CTRL,
S2MPS15_REG_L18CTRL,
S2MPS15_REG_L19CTRL,
S2MPS15_REG_L20CTRL,
S2MPS15_REG_L21CTRL,
S2MPS15_REG_L22CTRL,
S2MPS15_REG_L23CTRL,
S2MPS15_REG_L24CTRL,
S2MPS15_REG_L25CTRL,
S2MPS15_REG_L26CTRL,
S2MPS15_REG_L27CTRL,
S2MPS15_REG_LDODSCH1,
S2MPS15_REG_LDODSCH2,
S2MPS15_REG_LDODSCH3,
S2MPS15_REG_LDODSCH4,
};
/* S2MPS15 regulator ids */
enum s2mps15_regulators {
S2MPS15_LDO1,
S2MPS15_LDO2,
S2MPS15_LDO3,
S2MPS15_LDO4,
S2MPS15_LDO5,
S2MPS15_LDO6,
S2MPS15_LDO7,
S2MPS15_LDO8,
S2MPS15_LDO9,
S2MPS15_LDO10,
S2MPS15_LDO11,
S2MPS15_LDO12,
S2MPS15_LDO13,
S2MPS15_LDO14,
S2MPS15_LDO15,
S2MPS15_LDO16,
S2MPS15_LDO17,
S2MPS15_LDO18,
S2MPS15_LDO19,
S2MPS15_LDO20,
S2MPS15_LDO21,
S2MPS15_LDO22,
S2MPS15_LDO23,
S2MPS15_LDO24,
S2MPS15_LDO25,
S2MPS15_LDO26,
S2MPS15_LDO27,
S2MPS15_BUCK1,
S2MPS15_BUCK2,
S2MPS15_BUCK3,
S2MPS15_BUCK4,
S2MPS15_BUCK5,
S2MPS15_BUCK6,
S2MPS15_BUCK7,
S2MPS15_BUCK8,
S2MPS15_BUCK9,
S2MPS15_BUCK10,
S2MPS15_BUCK11,
S2MPS15_REGULATOR_MAX,
};
#define S2MPS15_LDO_VSEL_MASK (0x3F)
#define S2MPS15_BUCK_VSEL_MASK (0xFF)
#define S2MPS15_ENABLE_SHIFT (0x06)
#define S2MPS15_ENABLE_MASK (0x03 << S2MPS15_ENABLE_SHIFT)
#define S2MPS15_LDO_N_VOLTAGES (S2MPS15_LDO_VSEL_MASK + 1)
#define S2MPS15_BUCK_N_VOLTAGES (S2MPS15_BUCK_VSEL_MASK + 1)
#endif /* __LINUX_MFD_S2MPS15_H */