Commit 278f54c4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MFD updates from Lee Jones:
 "New Drivers
   - Add support for Intel's Platform Monitoring Technology (PMT)

  New Device Support:
   - Add support for PM660/PM660L to QCom SPMI PMIC
   - Add support for lots of new devices to Kontron Core

  New Functionality:
   - Provide syscon_regmap_lookup_by_phandle_optional() to SysCon API

  Fix-ups:
   - Constify; da9xxx-core; intel_*, tps65xxx, wm8xxx-core, lp8788,
     stmpe, sun4i-gpadc, 88pm800, hi655x-pmic, ioc3, etc
   - Remove superfluous code; madera, tps65910
   - Use raw APIs (rid abstractions); tps65911-comparator, tps65910
   - Whitespace/formatting fix-ups; tps65910
   - Device Tree changes/updates; bd71837-pmic, syscon
   - Use helpers/APIs (no hand rolling); altera-sysmgr
   - Mark of_match tables as __maybe_unused; twl6030-irq
   - Fix spelling; si476x-core

  Bug Fixes:
   - Reset on resume to ensure known state; madera-core
   - Correct ordering issues; madera-core, tps65910, kempld-core
   - Remove erroneous passing of of_compatible strings; at91-usart
   - Fix potential I2C adaptor leak; htc-i2cpld
   - Correct errorneous defines; rt5033-private
   - Resolve Kconfig issues; MFD_SL28CPLD, MFD_OMAP_USB_HOST
   - Fix dev_err_probe() handling; stmfx
   - Repair interrupt regression; motorola-cpcap
   - Allow ACPI matching of DT tables; bcm590xx, da9xx, ene-kb3930,
     fsl-imx25-tsadc, max77650, mt6397-core, rt5033, stmfx, max77686,
     sun4i-gpadc, wm8994-core, axp20x-i2c"

[ The PMT updates already came in through the x86 platform tree ]

* tag 'mfd-next-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (48 commits)
  mfd: kempld-core: Add support for additional devices
  mfd: si476x-core.h: Fix "regulator" spelling in comment
  mfd: twl6030: Mark of_device_id table as maybe unused
  mfd: axp20x: Skip of_device_id table when !CONFIG_OF
  mfd: wm8994: Drop of_match_ptr from of_device_id table
  mfd: sun4i: Drop of_match_ptr from of_device_id table
  mfd: max77686: Drop of_match_ptr from of_device_id table
  mfd: stmfx: Drop of_match_ptr from of_device_id table
  mfd: rt5033: Drop of_match_ptr from of_device_id table
  mfd: mt6397: Drop of_match_ptr from of_device_id table
  mfd: max77650: Drop of_match_ptr from of_device_id table
  mfd: fsl-imx25: Drop of_match_ptr from of_device_id table
  mfd: ene-kb3930: Drop of_match_ptr from of_device_id table
  mfd: da9150: Drop of_match_ptr from of_device_id table
  mfd: da9063: Drop of_match_ptr from of_device_id table
  mfd: da9062: Drop of_match_ptr from of_device_id table
  mfd: da9055: Drop of_match_ptr from of_device_id table
  mfd: bcm590xx: Drop of_match_ptr from of_device_id table
  mfd: omap-usb: Depend on COMMON_CLK to fix compile tests
  mfd: kempld-core: Check for DMI definition before ACPI
  ...
parents fff875a1 0cd3aa99
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -32,9 +32,15 @@ properties:
  clocks:
    maxItems: 1

  clock-names:
    const: osc

  "#clock-cells":
    const: 0

  clock-output-names:
    const: pmic_clk

# The BD718x7 supports two different HW states as reset target states. States
# are called as SNVS and READY. At READY state all the PMIC power outputs go
# down and OTP is reload. At the SNVS state all other logic and external
+4 −0
Original line number Diff line number Diff line
@@ -44,6 +44,10 @@ properties:
              - hisilicon,peri-subctrl
              - microchip,sparx5-cpu-syscon
              - mstar,msc313-pmsleep
              - rockchip,px30-qos
              - rockchip,rk3066-qos
              - rockchip,rk3288-qos
              - rockchip,rk3399-qos
              - samsung,exynos3-sysreg
              - samsung,exynos4-sysreg
              - samsung,exynos5-sysreg
+6 −6
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ static int tps65910_gpio_get(struct gpio_chip *gc, unsigned offset)
	struct tps65910 *tps65910 = tps65910_gpio->tps65910;
	unsigned int val;

	tps65910_reg_read(tps65910, TPS65910_GPIO0 + offset, &val);
	regmap_read(tps65910->regmap, TPS65910_GPIO0 + offset, &val);

	if (val & GPIO_STS_MASK)
		return 1;
@@ -43,10 +43,10 @@ static void tps65910_gpio_set(struct gpio_chip *gc, unsigned offset,
	struct tps65910 *tps65910 = tps65910_gpio->tps65910;

	if (value)
		tps65910_reg_set_bits(tps65910, TPS65910_GPIO0 + offset,
		regmap_set_bits(tps65910->regmap, TPS65910_GPIO0 + offset,
						GPIO_SET_MASK);
	else
		tps65910_reg_clear_bits(tps65910, TPS65910_GPIO0 + offset,
		regmap_clear_bits(tps65910->regmap, TPS65910_GPIO0 + offset,
						GPIO_SET_MASK);
}

@@ -59,7 +59,7 @@ static int tps65910_gpio_output(struct gpio_chip *gc, unsigned offset,
	/* Set the initial value */
	tps65910_gpio_set(gc, offset, value);

	return tps65910_reg_set_bits(tps65910, TPS65910_GPIO0 + offset,
	return regmap_set_bits(tps65910->regmap, TPS65910_GPIO0 + offset,
						GPIO_CFG_MASK);
}

@@ -68,7 +68,7 @@ static int tps65910_gpio_input(struct gpio_chip *gc, unsigned offset)
	struct tps65910_gpio *tps65910_gpio = gpiochip_get_data(gc);
	struct tps65910 *tps65910 = tps65910_gpio->tps65910;

	return tps65910_reg_clear_bits(tps65910, TPS65910_GPIO0 + offset,
	return regmap_clear_bits(tps65910->regmap, TPS65910_GPIO0 + offset,
						GPIO_CFG_MASK);
}

@@ -157,7 +157,7 @@ static int tps65910_gpio_probe(struct platform_device *pdev)
		if (!pdata->en_gpio_sleep[i])
			continue;

		ret = tps65910_reg_set_bits(tps65910,
		ret = regmap_set_bits(tps65910->regmap,
			TPS65910_GPIO0 + i, GPIO_SLEEP_MASK);
		if (ret < 0)
			dev_warn(tps65910->dev,
+1 −1
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ static const struct i2c_device_id pm80x_id_table[] = {
};
MODULE_DEVICE_TABLE(i2c, pm80x_id_table);

static struct resource rtc_resources[] = {
static const struct resource rtc_resources[] = {
	{
	 .name = "88pm80x-rtc",
	 .start = PM800_IRQ_RTC,
+25 −25
Original line number Diff line number Diff line
@@ -26,99 +26,99 @@

#define INT_STATUS_NUM			3

static struct resource bk0_resources[] = {
static const struct resource bk0_resources[] = {
	{2, 2, "duty cycle", IORESOURCE_REG, },
	{3, 3, "always on",  IORESOURCE_REG, },
	{3, 3, "current",    IORESOURCE_REG, },
};
static struct resource bk1_resources[] = {
static const struct resource bk1_resources[] = {
	{4, 4, "duty cycle", IORESOURCE_REG, },
	{5, 5, "always on",  IORESOURCE_REG, },
	{5, 5, "current",    IORESOURCE_REG, },
};
static struct resource bk2_resources[] = {
static const struct resource bk2_resources[] = {
	{6, 6, "duty cycle", IORESOURCE_REG, },
	{7, 7, "always on",  IORESOURCE_REG, },
	{5, 5, "current",    IORESOURCE_REG, },
};

static struct resource led0_resources[] = {
static const struct resource led0_resources[] = {
	/* RGB1 Red LED */
	{0xd, 0xd, "control", IORESOURCE_REG, },
	{0xc, 0xc, "blink",   IORESOURCE_REG, },
};
static struct resource led1_resources[] = {
static const struct resource led1_resources[] = {
	/* RGB1 Green LED */
	{0xe, 0xe, "control", IORESOURCE_REG, },
	{0xc, 0xc, "blink",   IORESOURCE_REG, },
};
static struct resource led2_resources[] = {
static const struct resource led2_resources[] = {
	/* RGB1 Blue LED */
	{0xf, 0xf, "control", IORESOURCE_REG, },
	{0xc, 0xc, "blink",   IORESOURCE_REG, },
};
static struct resource led3_resources[] = {
static const struct resource led3_resources[] = {
	/* RGB2 Red LED */
	{0x9, 0x9, "control", IORESOURCE_REG, },
	{0x8, 0x8, "blink",   IORESOURCE_REG, },
};
static struct resource led4_resources[] = {
static const struct resource led4_resources[] = {
	/* RGB2 Green LED */
	{0xa, 0xa, "control", IORESOURCE_REG, },
	{0x8, 0x8, "blink",   IORESOURCE_REG, },
};
static struct resource led5_resources[] = {
static const struct resource led5_resources[] = {
	/* RGB2 Blue LED */
	{0xb, 0xb, "control", IORESOURCE_REG, },
	{0x8, 0x8, "blink",   IORESOURCE_REG, },
};

static struct resource buck1_resources[] = {
static const struct resource buck1_resources[] = {
	{0x24, 0x24, "buck set", IORESOURCE_REG, },
};
static struct resource buck2_resources[] = {
static const struct resource buck2_resources[] = {
	{0x25, 0x25, "buck set", IORESOURCE_REG, },
};
static struct resource buck3_resources[] = {
static const struct resource buck3_resources[] = {
	{0x26, 0x26, "buck set", IORESOURCE_REG, },
};
static struct resource ldo1_resources[] = {
static const struct resource ldo1_resources[] = {
	{0x10, 0x10, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo2_resources[] = {
static const struct resource ldo2_resources[] = {
	{0x11, 0x11, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo3_resources[] = {
static const struct resource ldo3_resources[] = {
	{0x12, 0x12, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo4_resources[] = {
static const struct resource ldo4_resources[] = {
	{0x13, 0x13, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo5_resources[] = {
static const struct resource ldo5_resources[] = {
	{0x14, 0x14, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo6_resources[] = {
static const struct resource ldo6_resources[] = {
	{0x15, 0x15, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo7_resources[] = {
static const struct resource ldo7_resources[] = {
	{0x16, 0x16, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo8_resources[] = {
static const struct resource ldo8_resources[] = {
	{0x17, 0x17, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo9_resources[] = {
static const struct resource ldo9_resources[] = {
	{0x18, 0x18, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo10_resources[] = {
static const struct resource ldo10_resources[] = {
	{0x19, 0x19, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo12_resources[] = {
static const struct resource ldo12_resources[] = {
	{0x1a, 0x1a, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo_vibrator_resources[] = {
static const struct resource ldo_vibrator_resources[] = {
	{0x28, 0x28, "ldo set", IORESOURCE_REG, },
};
static struct resource ldo14_resources[] = {
static const struct resource ldo14_resources[] = {
	{0x1b, 0x1b, "ldo set", IORESOURCE_REG, },
};

Loading