mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge branch 'for-mfd-next' of https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git
This commit is contained in:
@@ -6,7 +6,7 @@ DT_MK_SCHEMA ?= dt-mk-schema
|
||||
DT_SCHEMA_LINT = $(shell which yamllint || \
|
||||
echo "warning: python package 'yamllint' not installed, skipping" >&2)
|
||||
|
||||
DT_SCHEMA_MIN_VERSION = 2023.9
|
||||
DT_SCHEMA_MIN_VERSION = 2024.4
|
||||
|
||||
PHONY += check_dtschema_version
|
||||
check_dtschema_version:
|
||||
|
||||
@@ -29,7 +29,7 @@ properties:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
patternProperties:
|
||||
"^(ldo(1[0-6]|[1-9])|buck[1-5])$":
|
||||
"^(ldo(1[0-6]|[1-9])|buck[1-5]|vbus)$":
|
||||
type: object
|
||||
$ref: /schemas/regulator/regulator.yaml#
|
||||
description: LDO or buck regulator.
|
||||
|
||||
@@ -26,6 +26,7 @@ properties:
|
||||
- mediatek,mt8183-scpsys
|
||||
- mediatek,mt8186-scpsys
|
||||
- mediatek,mt8188-scpsys
|
||||
- mediatek,mt8189-scpsys
|
||||
- mediatek,mt8192-scpsys
|
||||
- mediatek,mt8195-scpsys
|
||||
- mediatek,mt8365-scpsys
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
OMAP HS USB Host TLL (Transceiver-Less Interface)
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be "ti,usbhs-tll"
|
||||
- reg : should contain one register range i.e. start and length
|
||||
- interrupts : should contain the TLL module's interrupt
|
||||
- ti,hwmod : must contain "usb_tll_hs"
|
||||
|
||||
Optional properties:
|
||||
|
||||
- clocks: a list of phandles and clock-specifier pairs, one for each entry in
|
||||
clock-names.
|
||||
|
||||
- clock-names: should include:
|
||||
* "usb_tll_hs_usb_ch0_clk" - USB TLL channel 0 clock
|
||||
* "usb_tll_hs_usb_ch1_clk" - USB TLL channel 1 clock
|
||||
* "usb_tll_hs_usb_ch2_clk" - USB TLL channel 2 clock
|
||||
|
||||
Example:
|
||||
|
||||
usbhstll: usbhstll@4a062000 {
|
||||
compatible = "ti,usbhs-tll";
|
||||
reg = <0x4a062000 0x1000>;
|
||||
interrupts = <78>;
|
||||
ti,hwmods = "usb_tll_hs";
|
||||
};
|
||||
@@ -80,6 +80,7 @@ properties:
|
||||
- qcom,pmcx0102
|
||||
- qcom,pmd8028
|
||||
- qcom,pmd9635
|
||||
- qcom,pmg1110
|
||||
- qcom,pmh0101
|
||||
- qcom,pmh0104
|
||||
- qcom,pmh0110
|
||||
|
||||
@@ -17,6 +17,8 @@ properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- qcom,hawi-tcsr
|
||||
- qcom,maili-tcsr
|
||||
- qcom,msm8976-tcsr
|
||||
- qcom,msm8998-tcsr
|
||||
- qcom,nord-tcsr
|
||||
@@ -34,6 +36,7 @@ properties:
|
||||
- qcom,sdx55-tcsr
|
||||
- qcom,sdx65-tcsr
|
||||
- qcom,sdx75-tcsr
|
||||
- qcom,shikra-tcsr
|
||||
- qcom,sm4450-tcsr
|
||||
- qcom,sm6115-tcsr
|
||||
- qcom,sm8150-tcsr
|
||||
|
||||
@@ -20,7 +20,7 @@ allOf:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- st,stmpe601
|
||||
- st,stmpe610
|
||||
- st,stmpe801
|
||||
- st,stmpe811
|
||||
- st,stmpe1600
|
||||
|
||||
@@ -32,6 +32,7 @@ properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: syscon
|
||||
# Always require a specific compatible for syscon
|
||||
minItems: 2
|
||||
maxItems: 5 # Should be enough
|
||||
|
||||
@@ -52,11 +53,44 @@ allOf:
|
||||
contains:
|
||||
const: simple-mfd
|
||||
then:
|
||||
# Always require a specific compatible for syscon with simple-mfd
|
||||
properties:
|
||||
compatible:
|
||||
minItems: 3
|
||||
maxItems: 5
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: simple-bus
|
||||
then:
|
||||
# simple-bus conflicts with syscon - if a device is a system controller
|
||||
# with miscellaneous registers, then it has at least one dedicated
|
||||
# function thus it is not a simple bus. Allow existing exceptions.
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
not:
|
||||
contains:
|
||||
# This list CANNOT grow
|
||||
enum:
|
||||
- cznic,turris1x-cpld
|
||||
- img,pistachio-cr-periph
|
||||
- ti,am3352-scm-conf
|
||||
- ti,am4372-scm-conf
|
||||
- ti,dm814-scm-conf
|
||||
- ti,dm8168-scm-conf
|
||||
- ti,dra7-scm-conf
|
||||
- ti,omap2-scm-conf
|
||||
- ti,omap3-scm-conf
|
||||
- ti,omap4-sysc-padconf-global
|
||||
- ti,omap5-scm-wkup-conf
|
||||
- ti,omap5-sysc-padconf-global
|
||||
then:
|
||||
required:
|
||||
- incorrect-usage-of-simple-bus-and-syscon
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
examples:
|
||||
|
||||
@@ -19,122 +19,6 @@ description: |
|
||||
maintainers:
|
||||
- Lee Jones <lee@kernel.org>
|
||||
|
||||
# Need a select with all compatibles listed for compatibility with older
|
||||
# dtschema (<2024.02), so this will not be selected for other schemas having
|
||||
# syscon fallback.
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- airoha,en7581-pbus-csr
|
||||
- al,alpine-sysfabric-service
|
||||
- allwinner,sun8i-a83t-system-controller
|
||||
- allwinner,sun8i-h3-system-controller
|
||||
- allwinner,sun8i-v3s-system-controller
|
||||
- allwinner,sun50i-a64-system-controller
|
||||
- altr,l3regs
|
||||
- altr,sdr-ctl
|
||||
- amd,pensando-elba-syscon
|
||||
- amlogic,meson-mx-assist
|
||||
- amlogic,meson-mx-bootrom
|
||||
- amlogic,meson8-analog-top
|
||||
- amlogic,meson8b-analog-top
|
||||
- amlogic,meson8-pmu
|
||||
- amlogic,meson8b-pmu
|
||||
- apm,merlin-poweroff-mailbox
|
||||
- apm,mustang-poweroff-mailbox
|
||||
- apm,xgene-csw
|
||||
- apm,xgene-efuse
|
||||
- apm,xgene-mcb
|
||||
- apm,xgene-rb
|
||||
- apm,xgene-scu
|
||||
- atmel,sama5d2-sfrbu
|
||||
- atmel,sama5d3-nfc-io
|
||||
- atmel,sama5d3-sfrbu
|
||||
- atmel,sama5d4-sfrbu
|
||||
- axis,artpec6-syscon
|
||||
- brcm,cru-clkset
|
||||
- brcm,sr-cdru
|
||||
- brcm,sr-mhb
|
||||
- cirrus,ep7209-syscon1
|
||||
- cirrus,ep7209-syscon2
|
||||
- cirrus,ep7209-syscon3
|
||||
- cnxt,cx92755-uc
|
||||
- econet,en751221-chip-scu
|
||||
- freecom,fsg-cs2-system-controller
|
||||
- fsl,imx93-aonmix-ns-syscfg
|
||||
- fsl,imx93-wakeupmix-syscfg
|
||||
- fsl,ls1088a-reset
|
||||
- fsl,vf610-anatop
|
||||
- fsl,vf610-mscm-cpucfg
|
||||
- hisilicon,dsa-subctrl
|
||||
- hisilicon,hi6220-sramctrl
|
||||
- hisilicon,hip04-ppe
|
||||
- hisilicon,pcie-sas-subctrl
|
||||
- hisilicon,peri-subctrl
|
||||
- hpe,gxp-sysreg
|
||||
- loongson,ls1b-syscon
|
||||
- loongson,ls1c-syscon
|
||||
- lsi,axxia-syscon
|
||||
- marvell,armada-3700-cpu-misc
|
||||
- marvell,armada-3700-nb-pm
|
||||
- marvell,armada-3700-avs
|
||||
- marvell,armada-3700-usb2-host-device-misc
|
||||
- marvell,armada-3700-usb2-host-misc
|
||||
- marvell,dove-global-config
|
||||
- mediatek,mt2701-pctl-a-syscfg
|
||||
- mediatek,mt2712-pctl-a-syscfg
|
||||
- mediatek,mt6397-pctl-pmic-syscfg
|
||||
- mediatek,mt7981-topmisc
|
||||
- mediatek,mt7988-topmisc
|
||||
- mediatek,mt8135-pctl-a-syscfg
|
||||
- mediatek,mt8135-pctl-b-syscfg
|
||||
- mediatek,mt8173-pctl-a-syscfg
|
||||
- mediatek,mt8365-syscfg
|
||||
- microchip,lan966x-cpu-syscon
|
||||
- microchip,mpfs-control-scb
|
||||
- microchip,mpfs-sysreg-scb
|
||||
- microchip,sam9x60-sfr
|
||||
- microchip,sama7d65-ddr3phy
|
||||
- microchip,sama7d65-sfrbu
|
||||
- microchip,sama7g5-ddr3phy
|
||||
- mscc,ocelot-cpu-syscon
|
||||
- mstar,msc313-pmsleep
|
||||
- nuvoton,ma35d1-sys
|
||||
- nuvoton,wpcm450-shm
|
||||
- nxp,s32g2-gpr
|
||||
- nxp,s32g3-gpr
|
||||
- qcom,apq8064-mmss-sfpb
|
||||
- qcom,apq8064-sps-sic
|
||||
- rockchip,px30-qos
|
||||
- rockchip,rk3036-qos
|
||||
- rockchip,rk3066-qos
|
||||
- rockchip,rk3128-qos
|
||||
- rockchip,rk3228-qos
|
||||
- rockchip,rk3288-qos
|
||||
- rockchip,rk3368-qos
|
||||
- rockchip,rk3399-qos
|
||||
- rockchip,rk3528-qos
|
||||
- rockchip,rk3562-qos
|
||||
- rockchip,rk3568-qos
|
||||
- rockchip,rk3576-qos
|
||||
- rockchip,rk3588-qos
|
||||
- rockchip,rv1126-qos
|
||||
- st,spear1340-misc
|
||||
- stericsson,nomadik-pmu
|
||||
- starfive,jh7100-sysmain
|
||||
- ti,am62-opp-efuse-table
|
||||
- ti,am62-usb-phy-ctrl
|
||||
- ti,am625-dss-oldi-io-ctrl
|
||||
- ti,am62p-cpsw-mac-efuse
|
||||
- ti,am654-dss-oldi-io-ctrl
|
||||
- ti,j784s4-acspcie-proxy-ctrl
|
||||
- ti,j784s4-pcie-ctrl
|
||||
- ti,keystone-pllctrl
|
||||
required:
|
||||
- compatible
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/ti,usbhs-tll.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: OMAP HS USB Host TLL (Transceiver-Less Interface)
|
||||
|
||||
maintainers:
|
||||
- Eduard Bostina <egbostina@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ti,usbhs-tll
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
ti,hwmods:
|
||||
description: Name of the hwmod associated with the USB TLL.
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
const: usb_tll_hs
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
description: A list of phandles and clock-specifier pairs.
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: usb_tll_hs_usb_ch0_clk
|
||||
- const: usb_tll_hs_usb_ch1_clk
|
||||
- const: usb_tll_hs_usb_ch2_clk
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb-tll@4a062000 {
|
||||
compatible = "ti,usbhs-tll";
|
||||
reg = <0x4a062000 0x1000>;
|
||||
interrupts = <78>;
|
||||
ti,hwmods = "usb_tll_hs";
|
||||
};
|
||||
@@ -1684,6 +1684,8 @@ patternProperties:
|
||||
description: Technologic Systems
|
||||
"^techstar,.*":
|
||||
description: Shenzhen Techstar Electronics Co., Ltd.
|
||||
"^techvision,.*":
|
||||
description: Techvision Intelligent Technology Co., Ltd
|
||||
"^techwell,.*":
|
||||
description: Techwell, Inc.
|
||||
"^teejet,.*":
|
||||
|
||||
+13
@@ -13265,6 +13265,17 @@ F: drivers/spi/spi-ljca.c
|
||||
F: drivers/usb/misc/usb-ljca.c
|
||||
F: include/linux/usb/ljca.h
|
||||
|
||||
INTEL LPSS (Low Power SubSystem) DRIVERS
|
||||
R: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||||
S: Supported
|
||||
F: drivers/dma/idma64*
|
||||
F: drivers/i2c/busses/i2c-designware-*
|
||||
F: drivers/mfd/intel-lpss*
|
||||
F: drivers/pwm/pwm-lpss*
|
||||
F: drivers/tty/serial/8250/8250_dw.c
|
||||
F: drivers/tty/serial/8250/8250_dwlib.*
|
||||
F: drivers/spi/spi-pxa2xx*
|
||||
|
||||
INTEL MANAGEMENT ENGINE (mei)
|
||||
M: Alexander Usyskin <alexander.usyskin@intel.com>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
@@ -23629,6 +23640,8 @@ F: drivers/mfd/rohm-bd71828.c
|
||||
F: drivers/mfd/rohm-bd718x7.c
|
||||
F: drivers/mfd/rohm-bd9576.c
|
||||
F: drivers/mfd/rohm-bd96801.c
|
||||
F: drivers/mfd/rohm-pwrbutton.c
|
||||
F: drivers/mfd/rohm-pwrbutton.h
|
||||
F: drivers/regulator/bd71815-regulator.c
|
||||
F: drivers/regulator/bd71828-regulator.c
|
||||
F: drivers/regulator/bd718x7-regulator.c
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <linux/irq.h>
|
||||
#include <linux/irqchip.h>
|
||||
#include <linux/irqchip/arm-gic.h>
|
||||
#include <linux/mfd/dbx500-prcmu.h>
|
||||
#include <linux/mfd/db8500-prcmu.h>
|
||||
#include <linux/platform_data/arm-ux500-pm.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
@@ -81,7 +81,7 @@ static void __init ux500_init_irq(void)
|
||||
struct resource r;
|
||||
|
||||
irqchip_init();
|
||||
prcmu_early_init();
|
||||
db8500_prcmu_early_init();
|
||||
np = of_find_compatible_node(NULL, NULL, "stericsson,db8500-prcmu");
|
||||
of_address_to_resource(np, 0, &r);
|
||||
of_node_put(np);
|
||||
@@ -101,7 +101,7 @@ static void ux500_restart(enum reboot_mode mode, const char *cmd)
|
||||
local_irq_disable();
|
||||
local_fiq_disable();
|
||||
|
||||
prcmu_system_reset(0);
|
||||
db8500_prcmu_system_reset(0);
|
||||
}
|
||||
|
||||
static const struct of_device_id u8500_local_bus_nodes[] = {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mfd/dbx500-prcmu.h>
|
||||
#include <linux/mfd/db8500-prcmu.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/err.h>
|
||||
@@ -35,13 +35,13 @@ static int clk_prcmu_prepare(struct clk_hw *hw)
|
||||
{
|
||||
struct clk_prcmu *clk = to_clk_prcmu(hw);
|
||||
|
||||
return prcmu_request_clock(clk->cg_sel, true);
|
||||
return db8500_prcmu_request_clock(clk->cg_sel, true);
|
||||
}
|
||||
|
||||
static void clk_prcmu_unprepare(struct clk_hw *hw)
|
||||
{
|
||||
struct clk_prcmu *clk = to_clk_prcmu(hw);
|
||||
if (prcmu_request_clock(clk->cg_sel, false))
|
||||
if (db8500_prcmu_request_clock(clk->cg_sel, false))
|
||||
pr_err("clk_prcmu: %s failed to disable %s.\n", __func__,
|
||||
clk_hw_get_name(hw));
|
||||
}
|
||||
@@ -86,7 +86,7 @@ static int clk_prcmu_opp_prepare(struct clk_hw *hw)
|
||||
clk->opp_requested = 1;
|
||||
}
|
||||
|
||||
err = prcmu_request_clock(clk->cg_sel, true);
|
||||
err = db8500_prcmu_request_clock(clk->cg_sel, true);
|
||||
if (err) {
|
||||
prcmu_qos_remove_requirement(PRCMU_QOS_APE_OPP,
|
||||
(char *)clk_hw_get_name(hw));
|
||||
@@ -101,7 +101,7 @@ static void clk_prcmu_opp_unprepare(struct clk_hw *hw)
|
||||
{
|
||||
struct clk_prcmu *clk = to_clk_prcmu(hw);
|
||||
|
||||
if (prcmu_request_clock(clk->cg_sel, false)) {
|
||||
if (db8500_prcmu_request_clock(clk->cg_sel, false)) {
|
||||
pr_err("clk_prcmu: %s failed to disable %s.\n", __func__,
|
||||
clk_hw_get_name(hw));
|
||||
return;
|
||||
@@ -120,7 +120,7 @@ static int clk_prcmu_opp_volt_prepare(struct clk_hw *hw)
|
||||
struct clk_prcmu *clk = to_clk_prcmu(hw);
|
||||
|
||||
if (!clk->opp_requested) {
|
||||
err = prcmu_request_ape_opp_100_voltage(true);
|
||||
err = db8500_prcmu_request_ape_opp_100_voltage(true);
|
||||
if (err) {
|
||||
pr_err("clk_prcmu: %s fail req APE OPP VOLT for %s.\n",
|
||||
__func__, clk_hw_get_name(hw));
|
||||
@@ -129,9 +129,9 @@ static int clk_prcmu_opp_volt_prepare(struct clk_hw *hw)
|
||||
clk->opp_requested = 1;
|
||||
}
|
||||
|
||||
err = prcmu_request_clock(clk->cg_sel, true);
|
||||
err = db8500_prcmu_request_clock(clk->cg_sel, true);
|
||||
if (err) {
|
||||
prcmu_request_ape_opp_100_voltage(false);
|
||||
db8500_prcmu_request_ape_opp_100_voltage(false);
|
||||
clk->opp_requested = 0;
|
||||
return err;
|
||||
}
|
||||
@@ -143,14 +143,14 @@ static void clk_prcmu_opp_volt_unprepare(struct clk_hw *hw)
|
||||
{
|
||||
struct clk_prcmu *clk = to_clk_prcmu(hw);
|
||||
|
||||
if (prcmu_request_clock(clk->cg_sel, false)) {
|
||||
if (db8500_prcmu_request_clock(clk->cg_sel, false)) {
|
||||
pr_err("clk_prcmu: %s failed to disable %s.\n", __func__,
|
||||
clk_hw_get_name(hw));
|
||||
return;
|
||||
}
|
||||
|
||||
if (clk->opp_requested) {
|
||||
prcmu_request_ape_opp_100_voltage(false);
|
||||
db8500_prcmu_request_ape_opp_100_voltage(false);
|
||||
clk->opp_requested = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mfd/dbx500-prcmu.h>
|
||||
#include <linux/mfd/db8500-prcmu.h>
|
||||
|
||||
#include "clk.h"
|
||||
#include "prcc.h"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/mfd/dbx500-prcmu.h>
|
||||
#include <linux/mfd/db8500-prcmu.h>
|
||||
#include <linux/platform_data/arm-ux500-pm.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
@@ -66,7 +66,7 @@ static inline int ux500_enter_idle(struct cpuidle_device *dev,
|
||||
/* Go to the retention state, the prcmu will wait for the
|
||||
* cpu to go WFI and this is what happens after exiting this
|
||||
* 'master' critical section */
|
||||
if (prcmu_set_power_state(PRCMU_AP_IDLE, true, true))
|
||||
if (db8500_prcmu_set_power_state(PRCMU_AP_IDLE, true, true))
|
||||
goto out;
|
||||
|
||||
/* When we switch to retention, the prcmu is in charge
|
||||
@@ -109,7 +109,7 @@ static struct cpuidle_driver ux500_idle_driver = {
|
||||
static int dbx500_cpuidle_probe(struct platform_device *pdev)
|
||||
{
|
||||
/* Configure wake up reasons */
|
||||
prcmu_enable_wakeups(PRCMU_WAKEUP(ARM) | PRCMU_WAKEUP(RTC) |
|
||||
db8500_prcmu_enable_wakeups(PRCMU_WAKEUP(ARM) | PRCMU_WAKEUP(RTC) |
|
||||
PRCMU_WAKEUP(ABB));
|
||||
|
||||
return cpuidle_register(&ux500_idle_driver, NULL);
|
||||
|
||||
+20
-1
@@ -16,6 +16,12 @@ static const struct regmap_config pm886_regmap_config = {
|
||||
.max_register = PM886_REG_RTC_SPARE6,
|
||||
};
|
||||
|
||||
static const struct regmap_config pm886_regmap_battery_config = {
|
||||
.reg_bits = 8,
|
||||
.val_bits = 8,
|
||||
.max_register = PM886_REG_CLS_CONFIG1,
|
||||
};
|
||||
|
||||
static const struct regmap_irq pm886_regmap_irqs[] = {
|
||||
REGMAP_IRQ_REG(PM886_IRQ_ONKEY, 0, PM886_INT_ENA1_ONKEY),
|
||||
};
|
||||
@@ -85,10 +91,11 @@ static int pm886_setup_irq(struct pm886_chip *chip,
|
||||
|
||||
static int pm886_probe(struct i2c_client *client)
|
||||
{
|
||||
struct regmap *regmap, *regmap_battery;
|
||||
struct regmap_irq_chip_data *irq_data;
|
||||
struct device *dev = &client->dev;
|
||||
struct i2c_client *battery_page;
|
||||
struct pm886_chip *chip;
|
||||
struct regmap *regmap;
|
||||
unsigned int chip_id;
|
||||
int err;
|
||||
|
||||
@@ -112,6 +119,18 @@ static int pm886_probe(struct i2c_client *client)
|
||||
if (chip->chip_id != chip_id)
|
||||
return dev_err_probe(dev, -EINVAL, "Unsupported chip: 0x%x\n", chip_id);
|
||||
|
||||
battery_page = devm_i2c_new_dummy_device(dev, client->adapter,
|
||||
client->addr + PM886_PAGE_OFFSET_BATTERY);
|
||||
if (IS_ERR(battery_page))
|
||||
return dev_err_probe(dev, PTR_ERR(battery_page),
|
||||
"Failed to initialize battery page\n");
|
||||
|
||||
regmap_battery = devm_regmap_init_i2c(battery_page, &pm886_regmap_battery_config);
|
||||
if (IS_ERR(regmap_battery))
|
||||
return dev_err_probe(dev, PTR_ERR(regmap_battery),
|
||||
"Failed to initialize battery regmap\n");
|
||||
chip->regmap_battery = regmap_battery;
|
||||
|
||||
err = pm886_setup_irq(chip, &irq_data);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
+6
-1
@@ -1461,7 +1461,6 @@ config MFD_SEC_I2C
|
||||
config MFD_SI476X_CORE
|
||||
tristate "Silicon Laboratories 4761/64/68 AM/FM radio."
|
||||
depends on I2C
|
||||
depends on GPIOLIB_LEGACY
|
||||
select MFD_CORE
|
||||
select REGMAP_I2C
|
||||
help
|
||||
@@ -2208,6 +2207,10 @@ config MFD_STW481X
|
||||
in various ST Microelectronics and ST-Ericsson embedded
|
||||
Nomadik series.
|
||||
|
||||
config MFD_ROHM_PWRBUTTON
|
||||
tristate
|
||||
select MFD_CORE
|
||||
|
||||
config MFD_ROHM_BD718XX
|
||||
tristate "ROHM BD71837 Power Management IC"
|
||||
depends on I2C=y
|
||||
@@ -2215,6 +2218,7 @@ config MFD_ROHM_BD718XX
|
||||
select REGMAP_I2C
|
||||
select REGMAP_IRQ
|
||||
select MFD_CORE
|
||||
select MFD_ROHM_PWRBUTTON
|
||||
help
|
||||
Select this option to get support for the ROHM BD71837
|
||||
Power Management ICs. BD71837 is designed to power processors like
|
||||
@@ -2228,6 +2232,7 @@ config MFD_ROHM_BD71828
|
||||
select REGMAP_I2C
|
||||
select REGMAP_IRQ
|
||||
select MFD_CORE
|
||||
select MFD_ROHM_PWRBUTTON
|
||||
help
|
||||
Select this option to get support for the ROHM BD71815, BD71828,
|
||||
BD71879, BD72720 and BD73900 Power Management ICs (PMICs). These are
|
||||
|
||||
@@ -273,6 +273,7 @@ obj-$(CONFIG_MFD_STM32_TIMERS) += stm32-timers.o
|
||||
obj-$(CONFIG_MFD_MXS_LRADC) += mxs-lradc.o
|
||||
obj-$(CONFIG_MFD_SC27XX_PMIC) += sprd-sc27xx-spi.o
|
||||
obj-$(CONFIG_RAVE_SP_CORE) += rave-sp.o
|
||||
obj-$(CONFIG_MFD_ROHM_PWRBUTTON) += rohm-pwrbutton.o
|
||||
obj-$(CONFIG_MFD_ROHM_BD71828) += rohm-bd71828.o
|
||||
obj-$(CONFIG_MFD_ROHM_BD718XX) += rohm-bd718x7.o
|
||||
obj-$(CONFIG_MFD_ROHM_BD957XMUF) += rohm-bd9576.o
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/abx500.h>
|
||||
#include <linux/mfd/abx500/ab8500.h>
|
||||
#include <linux/mfd/dbx500-prcmu.h>
|
||||
#include <linux/mfd/db8500-prcmu.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
/*
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user