]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'mfd/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 25 Jul 2012 01:18:47 +0000 (11:18 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 25 Jul 2012 01:18:47 +0000 (11:18 +1000)
Conflicts:
arch/arm/configs/tegra_defconfig
drivers/mfd/mc13xxx-spi.c
drivers/regulator/s5m8767.c
include/linux/mfd/s5m87xx/s5m-core.h

15 files changed:
1  2 
Documentation/devicetree/bindings/mfd/tps65910.txt
MAINTAINERS
arch/arm/configs/tegra_defconfig
arch/arm/mach-exynos/mach-nuri.c
arch/arm/mach-exynos/mach-origen.c
arch/arm/mach-ux500/board-mop500.c
arch/arm/mach-ux500/cpu-db8500.c
drivers/gpio/Kconfig
drivers/input/misc/ab8500-ponkey.c
drivers/regulator/Kconfig
drivers/regulator/ab8500.c
drivers/regulator/s5m8767.c
include/linux/mfd/abx500/ab8500.h
include/linux/mfd/tps65910.h
sound/soc/codecs/twl6040.c

index d2802d4717bcfe70c146c95a1bc430807feae514,0f5d9b74f4b9509137a5f5348d88f7b82f4fb90a..db03599ae4dcf268f0410d0b1373c3369f67351d
@@@ -81,25 -55,11 +81,25 @@@ Example
  
                ti,vmbch-threshold = 0;
                ti,vmbch2-threshold = 0;
+               ti,en-ck32k-xtal;
                ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
  
 +              vcc1-supply = <&reg_parent>;
 +              vcc2-supply = <&some_reg>;
 +              vcc3-supply = <...>;
 +              vcc4-supply = <...>;
 +              vcc5-supply = <...>;
 +              vcc6-supply = <...>;
 +              vcc7-supply = <...>;
 +              vccio-supply = <...>;
 +
                regulators {
 -                      vdd1_reg: vdd1 {
 +                      #address-cells = <1>;
 +                      #size-cells = <0>;
 +
 +                      vdd1_reg: regulator@0 {
 +                              regulator-compatible = "vdd1";
 +                              reg = <0>;
                                regulator-min-microvolt = < 600000>;
                                regulator-max-microvolt = <1500000>;
                                regulator-always-on;
diff --cc MAINTAINERS
Simple merge
index 4be9c1e80ee63aac2c5d8239222ec1dcf147e683,7c0d11588a93eb5f7a73d2ac182d4d18a186d78b..5ae388967309f1c2fe69efda76b284469be0fc80
@@@ -105,7 -106,7 +105,8 @@@ CONFIG_I2C_MUX_PINCTRL=
  CONFIG_I2C_TEGRA=y
  CONFIG_SPI=y
  CONFIG_SPI_TEGRA=y
+ CONFIG_GPIO_TPS6586X=y
 +CONFIG_GPIO_TPS65910=y
  CONFIG_POWER_SUPPLY=y
  CONFIG_BATTERY_SBS=y
  CONFIG_SENSORS_LM90=y
Simple merge
Simple merge
index 8f421c0ca45cd19f7dc991436d66509d4d849a5e,833903e428a8a8d424cacb2dc004a7ec74cb1126..8674a890fd1c7071ae2efce55a3a7c888a97c091
@@@ -208,27 -195,8 +208,9 @@@ static struct ab8500_platform_data ab85
        .regulator      = ab8500_regulators,
        .num_regulator  = ARRAY_SIZE(ab8500_regulators),
        .gpio           = &ab8500_gpio_pdata,
 +      .codec          = &ab8500_codec_pdata,
  };
  
- static struct resource ab8500_resources[] = {
-       [0] = {
-               .start  = IRQ_DB8500_AB8500,
-               .end    = IRQ_DB8500_AB8500,
-               .flags  = IORESOURCE_IRQ
-       }
- };
- struct platform_device ab8500_device = {
-       .name = "ab8500-core",
-       .id = 0,
-       .dev = {
-               .platform_data = &ab8500_platdata,
-       },
-       .num_resources = 1,
-       .resource = ab8500_resources,
- };
  /*
   * TPS61052
   */
@@@ -605,9 -603,13 +586,8 @@@ static struct platform_device *snowball
        &snowball_led_dev,
        &snowball_key_dev,
        &snowball_sbnet_dev,
-       &ab8500_device,
  };
  
 -static struct platform_device *snowball_of_platform_devs[] __initdata = {
 -      &snowball_led_dev,
 -      &snowball_key_dev,
 -};
 -
  static void __init mop500_init_machine(void)
  {
        struct device *parent = NULL;
Simple merge
Simple merge
Simple merge
index f34c3be6c9fed92bdaf227016f4540b8edda0f89,12c0c0ee989d5b47e599ee94b0a4fcc0c046217f..4e932cc695e9311e811c9be2942798c4ecad5077
@@@ -262,17 -233,9 +262,17 @@@ config REGULATOR_RC5T58
          through regulator interface. The device supports multiple DCDC/LDO
          outputs which can be controlled by i2c communication.
  
 +config REGULATOR_S2MPS11
 +      tristate "Samsung S2MPS11 voltage regulator"
 +      depends on MFD_SEC_CORE
 +      help
 +       This driver supports a Samsung S2MPS11 voltage output regulator
 +       via I2C bus. S2MPS11 is comprised of high efficient Buck converters
 +       including Dual-Phase Buck converter, Buck-Boost converter, various LDOs.
 +
  config REGULATOR_S5M8767
        tristate "Samsung S5M8767A voltage regulator"
-       depends on MFD_S5M_CORE
+       depends on MFD_SEC_CORE
        help
         This driver supports a Samsung S5M8767A voltage output regulator
         via I2C bus. S5M8767A have 9 Bucks and 28 LDOs output and
Simple merge
index 102287fa7ecb48df1aae1de76c484b3fe683051d,aeea91b56852b3ef342ab9913a17c42499766e43..abe64a32aedf3a4b38ee05ea7c59849b4959642c
@@@ -407,8 -431,14 +407,8 @@@ static int s5m8767_set_voltage_sel(stru
                if (ret)
                        return ret;
  
-               return s5m_reg_update(s5m8767->iodev, reg, selector, mask);
 -              sec_reg_read(s5m8767->iodev, reg, &val);
 -              val = (val & ~mask) | sel;
 -
 -              ret = sec_reg_write(s5m8767->iodev, reg, val);
++              return sec_reg_update(s5m8767->iodev, reg, selector, mask);
        }
 -
 -      *selector = sel;
 -      return ret;
  }
  
  static int s5m8767_set_voltage_time_sel(struct regulator_dev *rdev,
@@@ -567,27 -579,6 +567,27 @@@ static __devinit int s5m8767_pmic_probe
        s5m8767->buck4_ramp = pdata->buck4_ramp_enable;
        s5m8767->opmode = pdata->opmode;
  
-       s5m_reg_write(s5m8767->iodev, S5M8767_REG_BUCK2DVS2, buck_init);
 +      buck_init = s5m8767_convert_voltage_to_sel(&buck_voltage_val2,
 +                                              pdata->buck2_init,
 +                                              pdata->buck2_init +
 +                                              buck_voltage_val2.step);
 +
-       s5m_reg_write(s5m8767->iodev, S5M8767_REG_BUCK3DVS2, buck_init);
++      sec_reg_write(s5m8767->iodev, S5M8767_REG_BUCK2DVS2, buck_init);
 +
 +      buck_init = s5m8767_convert_voltage_to_sel(&buck_voltage_val2,
 +                                              pdata->buck3_init,
 +                                              pdata->buck3_init +
 +                                              buck_voltage_val2.step);
 +
-       s5m_reg_write(s5m8767->iodev, S5M8767_REG_BUCK4DVS2, buck_init);
++      sec_reg_write(s5m8767->iodev, S5M8767_REG_BUCK3DVS2, buck_init);
 +
 +      buck_init = s5m8767_convert_voltage_to_sel(&buck_voltage_val2,
 +                                              pdata->buck4_init,
 +                                              pdata->buck4_init +
 +                                              buck_voltage_val2.step);
 +
++      sec_reg_write(s5m8767->iodev, S5M8767_REG_BUCK4DVS2, buck_init);
 +
        for (i = 0; i < 8; i++) {
                if (s5m8767->buck2_gpiodvs) {
                        s5m8767->buck2_vol[i] =
                }
        }
  
 -      if (pdata->buck2_gpiodvs || pdata->buck3_gpiodvs ||
 -              pdata->buck4_gpiodvs) {
 -              if (gpio_is_valid(pdata->buck_gpios[0]) &&
 -                      gpio_is_valid(pdata->buck_gpios[1]) &&
 -                      gpio_is_valid(pdata->buck_gpios[2])) {
 -                      ret = gpio_request(pdata->buck_gpios[0],
 -                                              "S5M8767 SET1");
 -                      if (ret == -EBUSY)
 -                              dev_warn(&pdev->dev, "Duplicated gpio request for SET1\n");
 -
 -                      ret = gpio_request(pdata->buck_gpios[1],
 -                                         "S5M8767 SET2");
 -                      if (ret == -EBUSY)
 -                              dev_warn(&pdev->dev, "Duplicated gpio request for SET2\n");
 -
 -                      ret = gpio_request(pdata->buck_gpios[2],
 -                                         "S5M8767 SET3");
 -                      if (ret == -EBUSY)
 -                              dev_warn(&pdev->dev, "Duplicated gpio request for SET3\n");
 -                      /* SET1 GPIO */
 -                      gpio_direction_output(pdata->buck_gpios[0],
 -                                      (s5m8767->buck_gpioindex >> 2) & 0x1);
 -                      /* SET2 GPIO */
 -                      gpio_direction_output(pdata->buck_gpios[1],
 -                                      (s5m8767->buck_gpioindex >> 1) & 0x1);
 -                      /* SET3 GPIO */
 -                      gpio_direction_output(pdata->buck_gpios[2],
 -                                      (s5m8767->buck_gpioindex >> 0) & 0x1);
 -                      ret = 0;
 -              } else {
 -                      dev_err(&pdev->dev, "GPIO NOT VALID\n");
 -                      ret = -EINVAL;
 +      if (gpio_is_valid(pdata->buck_gpios[0]) &&
 +              gpio_is_valid(pdata->buck_gpios[1]) &&
 +              gpio_is_valid(pdata->buck_gpios[2])) {
 +              ret = devm_gpio_request(&pdev->dev, pdata->buck_gpios[0],
 +                                      "S5M8767 SET1");
 +              if (ret)
                        return ret;
 -              }
 +
 +              ret = devm_gpio_request(&pdev->dev, pdata->buck_gpios[1],
 +                                      "S5M8767 SET2");
 +              if (ret)
 +                      return ret;
 +
 +              ret = devm_gpio_request(&pdev->dev, pdata->buck_gpios[2],
 +                                      "S5M8767 SET3");
 +              if (ret)
 +                      return ret;
 +
 +              /* SET1 GPIO */
 +              gpio_direction_output(pdata->buck_gpios[0],
 +                              (s5m8767->buck_gpioindex >> 2) & 0x1);
 +              /* SET2 GPIO */
 +              gpio_direction_output(pdata->buck_gpios[1],
 +                              (s5m8767->buck_gpioindex >> 1) & 0x1);
 +              /* SET3 GPIO */
 +              gpio_direction_output(pdata->buck_gpios[2],
 +                              (s5m8767->buck_gpioindex >> 0) & 0x1);
 +      } else {
 +              dev_err(&pdev->dev, "GPIO NOT VALID\n");
 +              ret = -EINVAL;
 +              return ret;
        }
  
 -      sec_reg_update(s5m8767->iodev, S5M8767_REG_BUCK2CTRL,
 -                      (pdata->buck2_gpiodvs) ? (1 << 1) : (0 << 1), 1 << 1);
 -      sec_reg_update(s5m8767->iodev, S5M8767_REG_BUCK3CTRL,
 -                      (pdata->buck3_gpiodvs) ? (1 << 1) : (0 << 1), 1 << 1);
 -      sec_reg_update(s5m8767->iodev, S5M8767_REG_BUCK4CTRL,
 -                      (pdata->buck4_gpiodvs) ? (1 << 1) : (0 << 1), 1 << 1);
 +      ret = devm_gpio_request(&pdev->dev, pdata->buck_ds[0], "S5M8767 DS2");
 +      if (ret)
 +              return ret;
 +
 +      ret = devm_gpio_request(&pdev->dev, pdata->buck_ds[1], "S5M8767 DS3");
 +      if (ret)
 +              return ret;
 +
 +      ret = devm_gpio_request(&pdev->dev, pdata->buck_ds[2], "S5M8767 DS4");
 +      if (ret)
 +              return ret;
 +
 +      /* DS2 GPIO */
 +      gpio_direction_output(pdata->buck_ds[0], 0x0);
 +      /* DS3 GPIO */
 +      gpio_direction_output(pdata->buck_ds[1], 0x0);
 +      /* DS4 GPIO */
 +      gpio_direction_output(pdata->buck_ds[2], 0x0);
 +
 +      if (pdata->buck2_gpiodvs || pdata->buck3_gpiodvs ||
 +         pdata->buck4_gpiodvs) {
-               s5m_reg_update(s5m8767->iodev, S5M8767_REG_BUCK2CTRL,
++              sec_reg_update(s5m8767->iodev, S5M8767_REG_BUCK2CTRL,
 +                              (pdata->buck2_gpiodvs) ? (1 << 1) : (0 << 1),
 +                              1 << 1);
-               s5m_reg_update(s5m8767->iodev, S5M8767_REG_BUCK3CTRL,
++              sec_reg_update(s5m8767->iodev, S5M8767_REG_BUCK3CTRL,
 +                              (pdata->buck3_gpiodvs) ? (1 << 1) : (0 << 1),
 +                              1 << 1);
-               s5m_reg_update(s5m8767->iodev, S5M8767_REG_BUCK4CTRL,
++              sec_reg_update(s5m8767->iodev, S5M8767_REG_BUCK4CTRL,
 +                              (pdata->buck4_gpiodvs) ? (1 << 1) : (0 << 1),
 +                              1 << 1);
 +      }
  
        /* Initialize GPIO DVS registers */
        for (i = 0; i < 8; i++) {
                                           s5m8767->buck4_vol[i]);
                }
        }
 -      sec_reg_update(s5m8767->iodev, S5M8767_REG_BUCK2CTRL, 0x78, 0xff);
 -      sec_reg_update(s5m8767->iodev, S5M8767_REG_BUCK3CTRL, 0x58, 0xff);
 -      sec_reg_update(s5m8767->iodev, S5M8767_REG_BUCK4CTRL, 0x78, 0xff);
  
        if (s5m8767->buck2_ramp)
-               s5m_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP, 0x08, 0x08);
+               sec_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP, 0x08, 0x08);
  
        if (s5m8767->buck3_ramp)
-               s5m_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP, 0x04, 0x04);
+               sec_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP, 0x04, 0x04);
  
        if (s5m8767->buck4_ramp)
-               s5m_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP, 0x02, 0x02);
+               sec_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP, 0x02, 0x02);
  
        if (s5m8767->buck2_ramp || s5m8767->buck3_ramp
                || s5m8767->buck4_ramp) {
                switch (s5m8767->ramp_delay) {
 -              case 15:
 +              case 5:
-                       s5m_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP,
+                       sec_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP,
 -                                      0xc0, 0xf0);
 +                                      0x40, 0xf0);
 +                      break;
 +              case 10:
-                       s5m_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP,
++                      sec_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP,
 +                                      0x90, 0xf0);
                        break;
                case 25:
-                       s5m_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP,
+                       sec_reg_update(s5m8767->iodev, S5M8767_REG_DVSRAMP,
                                        0xd0, 0xf0);
                        break;
                case 50:
Simple merge
Simple merge
Simple merge