Merge tag 'mfd-next-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 3 Feb 2020 14:51:57 +0000 (14:51 +0000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 3 Feb 2020 14:51:57 +0000 (14:51 +0000)
Pull MFD updates from Lee Jones:
 "New Drivers:
   - Add support for ROHM BD71828 PMICs and GPIOs
   - Add support for Qualcomm Aqstic Audio Codecs WCD9340 and WCD9341

  New Device Support:
   - Add support for BD71828 to BD70528 RTC driver
   - Add support for Intel's Jasper Lake to LPSS PCI

  New Functionality:
   - Add support for Power Key to ROHM BD71828
   - Add support for Clocks to ROHM BD71828
   - Add support for GPIOs to Dialog DA9062
   - Add support for USB PD Notify to ChromiumOS EC
   - Allow callers to specify args when requesting regmap lookup; syscon

  Fix-ups:
   - Improve error handling and sanity checking; atmel-hlcdc, dln2
   - Device Tree support/documentation; bd71828, da9062, xylon,logicvc,
     ab8500, max14577, atmel-usart
   - Match devices using platform IDs; bd7xxxx
   - Refactor BD718x7 regulator component; bd718x7-regulator
   - Use standard interfaces/helpers; syscon, sm501
   - Trivial (whitespace, spelling, etc); ab8500-core, Kconfig
   - Remove unused code; db8500-prcmu, tqmx86
   - Wait until boot has finished before accessing registers;
     madera-core
   - Provide missing register value defaults; cs47l15-tables
   - Allow more time for hardware to reset; madera-core

  Bug Fixes:
   - Fix erroneous register values; rohm-bd70528
   - Fix register volatility; axp20x, rn5t618
   - Fix Kconfig dependencies; MFD_MAX77650
   - Fix incorrect compatible string; da9062-core
   - Fix syscon_regmap_lookup_by_phandle_args() stub; syscon"

* tag 'mfd-next-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (41 commits)
  mfd: syscon: Fix syscon_regmap_lookup_by_phandle_args() dummy
  mfd: wcd934x: Add support to wcd9340/wcd9341 codec
  mfd: syscon: Add arguments support for syscon reference
  mfd: rn5t618: Mark ADC control register volatile
  dt-bindings: atmel-usart: Add microchip,sam9x60-{usart, dbgu}
  dt-bindings: atmel-usart: Remove wildcard
  mfd: cros_ec: Add cros-usbpd-notify subdevice
  mfd: da9062: Fix watchdog compatible string
  mfd: madera: Allow more time for hardware reset
  mfd: cs47l15: Add missing register default
  mfd: madera: Wait for boot done before accessing any other registers
  mfd: Kconfig: Rename Samsung to lowercase
  mfd: tqmx86: remove set but not used variable 'i2c_ien'
  mfd: dbx500-prcmu: Drop DSI pll clock functions
  mfd: dbx500-prcmu: Drop set_display_clocks()
  mfd: max77650: Select REGMAP_IRQ in Kconfig
  mfd: axp20x: Mark AXP20X_VBUS_IPSOUT_MGMT as volatile
  mfd: ab8500: Fix ab8500-clk typo
  mfd: intel-lpss: Add Intel Jasper Lake PCI IDs
  dt-bindings: mfd: max14577: Add reference to max14040_battery.txt descriptions
  ...

1  2 
drivers/gpio/Kconfig
drivers/gpio/Makefile
drivers/mfd/Kconfig
drivers/mfd/Makefile
drivers/regulator/Kconfig
drivers/regulator/Makefile
drivers/regulator/bd718x7-regulator.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1146,10 -1078,20 +1073,11 @@@ static int bd718xx_probe(struct platfor
  {
        struct bd718xx *mfd;
        struct regulator_config config = { 0 };
 -      struct bd718xx_pmic_inits pmic_regulators[ROHM_CHIP_TYPE_AMOUNT] = {
 -              [ROHM_CHIP_TYPE_BD71837] = {
 -                      .r_datas = bd71837_regulators,
 -                      .r_amount = ARRAY_SIZE(bd71837_regulators),
 -              },
 -              [ROHM_CHIP_TYPE_BD71847] = {
 -                      .r_datas = bd71847_regulators,
 -                      .r_amount = ARRAY_SIZE(bd71847_regulators),
 -              },
 -      };
 -
        int i, j, err;
        bool use_snvs;
 +      const struct bd718xx_regulator_data *reg_data;
 +      unsigned int num_reg_data;
+       enum rohm_chip_type chip = platform_get_device_id(pdev)->driver_data;
  
        mfd = dev_get_drvdata(pdev->dev.parent);
        if (!mfd) {
                goto err;
        }
  
-       switch (mfd->chip.chip_type) {
 -      if (chip >= ROHM_CHIP_TYPE_AMOUNT || chip < 0 ||
 -          !pmic_regulators[chip].r_datas) {
++      switch (chip) {
 +      case ROHM_CHIP_TYPE_BD71837:
 +              reg_data = bd71837_regulators;
 +              num_reg_data = ARRAY_SIZE(bd71837_regulators);
 +              break;
 +      case ROHM_CHIP_TYPE_BD71847:
 +              reg_data = bd71847_regulators;
 +              num_reg_data = ARRAY_SIZE(bd71847_regulators);
 +              break;
 +      default:
                dev_err(&pdev->dev, "Unsupported chip type\n");
                err = -EINVAL;
                goto err;