forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'mfd-next-5.3' of git://git.kernel.org/pub/scm/linux/kernel…
…/git/lee/mfd Pull MFD updates from Lee Jones: "Core Frameworks: - Set 'struct device' fwnode when registering a new device New Drivers: - Add support for ROHM BD70528 PMIC New Device Support: - Add support for LP87561 4-Phase Regulator to TI LP87565 PMIC - Add support for RK809 and RK817 to Rockchip RK808 - Add support for Lid Angle to ChromeOS core - Add support for CS47L15 CODEC to Madera core - Add support for CS47L92 CODEC to Madera core - Add support for ChromeOS (legacy) Accelerometers in ChromeOS core - Add support for Add Intel Elkhart Lake PCH to Intel LPSS New Functionality: - Provide regulator supply information when registering; madera-core - Additional Device Tree support; lp87565, madera, cros-ec, rohm,bd71837-pmic - Allow over-riding power button press via Device Tree; rohm-bd718x7 - Differentiate between running processors; cros_ec_dev Fix-ups: - Big header file update; cros_ec_commands.h - Split header per-subsystem; rohm-bd718x7 - Remove superfluous code; menelaus, cs5535-mfd, cs47lXX-tables - Trivial; sorting, coding style; intel-lpss-pci - Only remove Power Off functionality if set locally; rk808 - Make use for Power Off Prepare(); rk808 - Fix spelling mistake in header guards; stmfx - Properly free IDA resources - SPDX fixups; cs47lXX-tables, madera - Error path fixups; hi655x-pmic Bug Fixes: - Add missing break in case() statement - Repair undefined behaviour when not initialising variables; arizona-core, madera-core - Fix reference to Device Tree documentation; madera" * tag 'mfd-next-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (45 commits) mfd: hi655x-pmic: Fix missing return value check for devm_regmap_init_mmio_clk mfd: madera: Fixup SPDX headers mfd: madera: Remove some unused registers and fix some defaults mfd: intel-lpss: Release IDA resources mfd: intel-lpss: Add Intel Elkhart Lake PCH PCI IDs mfd: cs5535-mfd: Remove ifdef OLPC noise mfd: stmfx: Fix macro definition spelling dt-bindings: mfd: Add link to ROHM BD71847 Datasheet MAINAINERS: Swap words in INTEL PMIC MULTIFUNCTION DEVICE DRIVERS mfd: cros_ec_dev: Register cros_ec_accel_legacy driver as a subdevice mfd: rk808: Prepare rk805 for poweroff mfd: rk808: Check pm_power_off pointer mfd: cros_ec: differentiate SCP from EC by feature bit dt-bindings: Add binding for cros-ec-rpmsg mfd: madera: Add Madera core support for CS47L92 mfd: madera: Add Madera core support for CS47L15 mfd: madera: Update DT bindings to add additional CODECs mfd: madera: Add supply mapping for MICVDD mfd: madera: Fix potential uninitialised use of variable mfd: madera: Fix bad reference to pinctrl.txt file ...
- Loading branch information
Showing
57 changed files
with
7,524 additions
and
549 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
102 changes: 102 additions & 0 deletions
102
Documentation/devicetree/bindings/mfd/rohm,bd70528-pmic.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
* ROHM BD70528 Power Management Integrated Circuit bindings | ||
|
||
BD70528MWV is an ultra-low quiescent current general purpose, single-chip, | ||
power management IC for battery-powered portable devices. The IC | ||
integrates 3 ultra-low current consumption buck converters, 3 LDOs and 2 | ||
LED Drivers. Also included are 4 GPIOs, a real-time clock (RTC), a 32kHz | ||
clock gate, high-accuracy VREF for use with an external ADC, flexible | ||
dual-input power path, 10 bit SAR ADC for battery temperature monitor and | ||
1S battery charger with scalable charge currents. | ||
|
||
Required properties: | ||
- compatible : Should be "rohm,bd70528" | ||
- reg : I2C slave address. | ||
- interrupts : The interrupt line the device is connected to. | ||
- interrupt-controller : To indicate BD70528 acts as an interrupt controller. | ||
- #interrupt-cells : Should be 2. Usage is compliant to the 2 cells | ||
variant of ../interrupt-controller/interrupts.txt | ||
- gpio-controller : To indicate BD70528 acts as a GPIO controller. | ||
- #gpio-cells : Should be 2. The first cell is the pin number and | ||
the second cell is used to specify flags. See | ||
../gpio/gpio.txt for more information. | ||
- #clock-cells : Should be 0. | ||
- regulators: : List of child nodes that specify the regulators. | ||
Please see ../regulator/rohm,bd70528-regulator.txt | ||
|
||
Optional properties: | ||
- clock-output-names : Should contain name for output clock. | ||
|
||
Example: | ||
/* External oscillator */ | ||
osc: oscillator { | ||
compatible = "fixed-clock"; | ||
#clock-cells = <1>; | ||
clock-frequency = <32768>; | ||
clock-output-names = "osc"; | ||
}; | ||
|
||
pmic: pmic@4b { | ||
compatible = "rohm,bd70528"; | ||
reg = <0x4b>; | ||
interrupt-parent = <&gpio1>; | ||
interrupts = <29 GPIO_ACTIVE_LOW>; | ||
clocks = <&osc 0>; | ||
#clock-cells = <0>; | ||
clock-output-names = "bd70528-32k-out"; | ||
#gpio-cells = <2>; | ||
gpio-controller; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
|
||
regulators { | ||
buck1: BUCK1 { | ||
regulator-name = "buck1"; | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3400000>; | ||
regulator-boot-on; | ||
regulator-ramp-delay = <125>; | ||
}; | ||
buck2: BUCK2 { | ||
regulator-name = "buck2"; | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-boot-on; | ||
regulator-ramp-delay = <125>; | ||
}; | ||
buck3: BUCK3 { | ||
regulator-name = "buck3"; | ||
regulator-min-microvolt = <800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-boot-on; | ||
regulator-ramp-delay = <250>; | ||
}; | ||
ldo1: LDO1 { | ||
regulator-name = "ldo1"; | ||
regulator-min-microvolt = <1650000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-boot-on; | ||
}; | ||
ldo2: LDO2 { | ||
regulator-name = "ldo2"; | ||
regulator-min-microvolt = <1650000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-boot-on; | ||
}; | ||
|
||
ldo3: LDO3 { | ||
regulator-name = "ldo3"; | ||
regulator-min-microvolt = <1650000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
led_ldo1: LED_LDO1 { | ||
regulator-name = "led_ldo1"; | ||
regulator-min-microvolt = <200000>; | ||
regulator-max-microvolt = <300000>; | ||
}; | ||
led_ldo2: LED_LDO2 { | ||
regulator-name = "led_ldo2"; | ||
regulator-min-microvolt = <200000>; | ||
regulator-max-microvolt = <300000>; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8222,7 +8222,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel.git | |
F: drivers/gpio/gpio-*cove.c | ||
F: drivers/gpio/gpio-msic.c | ||
|
||
INTEL MULTIFUNCTION PMIC DEVICE DRIVERS | ||
INTEL PMIC MULTIFUNCTION DEVICE DRIVERS | ||
R: Andy Shevchenko <[email protected]> | ||
S: Maintained | ||
F: drivers/mfd/intel_msic.c | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,7 @@ | |
#include <linux/platform_device.h> | ||
#include <linux/slab.h> | ||
#include <linux/mfd/rohm-bd718x7.h> | ||
#include <linux/mfd/rohm-bd70528.h> | ||
#include <linux/clk-provider.h> | ||
#include <linux/clkdev.h> | ||
#include <linux/regmap.h> | ||
|
@@ -17,7 +18,7 @@ struct bd718xx_clk { | |
u8 reg; | ||
u8 mask; | ||
struct platform_device *pdev; | ||
struct bd718xx *mfd; | ||
struct rohm_regmap_dev *mfd; | ||
}; | ||
|
||
static int bd71837_clk_set(struct clk_hw *hw, int status) | ||
|
@@ -68,7 +69,7 @@ static int bd71837_clk_probe(struct platform_device *pdev) | |
int rval = -ENOMEM; | ||
const char *parent_clk; | ||
struct device *parent = pdev->dev.parent; | ||
struct bd718xx *mfd = dev_get_drvdata(parent); | ||
struct rohm_regmap_dev *mfd = dev_get_drvdata(parent); | ||
struct clk_init_data init = { | ||
.name = "bd718xx-32k-out", | ||
.ops = &bd71837_clk_ops, | ||
|
@@ -86,9 +87,20 @@ static int bd71837_clk_probe(struct platform_device *pdev) | |
dev_err(&pdev->dev, "No parent clk found\n"); | ||
return -EINVAL; | ||
} | ||
|
||
c->reg = BD718XX_REG_OUT32K; | ||
c->mask = BD718XX_OUT32K_EN; | ||
switch (mfd->chip_type) { | ||
case ROHM_CHIP_TYPE_BD71837: | ||
case ROHM_CHIP_TYPE_BD71847: | ||
c->reg = BD718XX_REG_OUT32K; | ||
c->mask = BD718XX_OUT32K_EN; | ||
break; | ||
case ROHM_CHIP_TYPE_BD70528: | ||
c->reg = BD70528_REG_CLK_OUT; | ||
c->mask = BD70528_CLK_OUT_EN_MASK; | ||
break; | ||
default: | ||
dev_err(&pdev->dev, "Unknown clk chip\n"); | ||
return -EINVAL; | ||
} | ||
c->mfd = mfd; | ||
c->pdev = pdev; | ||
c->hw.init = &init; | ||
|
@@ -119,5 +131,5 @@ static struct platform_driver bd71837_clk = { | |
module_platform_driver(bd71837_clk); | ||
|
||
MODULE_AUTHOR("Matti Vaittinen <[email protected]>"); | ||
MODULE_DESCRIPTION("BD71837 chip clk driver"); | ||
MODULE_DESCRIPTION("BD71837/BD71847/BD70528 chip clk driver"); | ||
MODULE_LICENSE("GPL"); |
Oops, something went wrong.