summaryrefslogtreecommitdiffstats
path: root/drivers/mfd
AgeCommit message (Collapse)AuthorFilesLines
2021-06-02mfd: pm8008: Add driver for QCOM PM8008 PMICGuru Das Srinagesh3-0/+275
Qualcomm Technologies, Inc. PM8008 is a dedicated camera PMIC that integrates all the necessary power management, housekeeping, and interface support functions into a single IC. Its key features include overtemperature protection, low-dropout linear regulators, GPIOs, and an I2C interface. Add an MFD driver to support it. Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: da9063: Propagate errno when I2C mode failsWolfram Sang1-1/+1
Don't hardocde EIO but use the obtained value. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Reviewed-by: Mark Jonas <mark.jonas@de.bosch.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: hisilicon: Use the correct HiSilicon copyrightHao Fang1-1/+1
s/Hisilicon/HiSilicon/ It should use capital S, according to the official website https://www.hisilicon.com/en. Signed-off-by: Hao Fang <fanghao11@huawei.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: cpcap: Fix cpcap dmamask not set warningsTony Lindgren1-0/+4
We have started to get a bunch of pointless dmamask not set warnings that makes the output of dmesg -l err,warn hard to read with many extra warnings: cpcap-regulator cpcap-regulator.0: DMA mask not set cpcap_adc cpcap_adc.0: DMA mask not set cpcap_battery cpcap_battery.0: DMA mask not set cpcap-charger cpcap-charger.0: DMA mask not set cpcap-pwrbutton cpcap-pwrbutton.0: DMA mask not set cpcap-led cpcap-led.0: DMA mask not set cpcap-led cpcap-led.1: DMA mask not set cpcap-led cpcap-led.2: DMA mask not set cpcap-led cpcap-led.3: DMA mask not set cpcap-led cpcap-led.4: DMA mask not set cpcap-rtc cpcap-rtc.0: DMA mask not set cpcap-usb-phy cpcap-usb-phy.0: DMA mask not set This seems to have started with commit 4d8bde883bfb ("OF: Don't set default coherent DMA mask"). We have the parent SPI controller use DMA, while CPCAP driver and it's children do not. For audio, the DMA is handled over I2S bus with the McBSP driver. Cc: Carl Philipp Klemm <philipp@uvos.xyz> Cc: Ivan Jelincic <parazyd@dyne.org> Cc: Merlijn Wajer <merlijn@wizzup.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Sebastian Reichel <sre@kernel.org> Cc: Sicelo A. Mhlongo <absicsz@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: arizona: Allow building arizona MFD-core as moduleHans de Goede3-8/+10
There is no reason why the arizona core,irq and codec model specific regmap bits cannot be build as a module. All they do is export symbols which are used by the arizona-spi/i2c and arizona-codec modules, which themselves can be built as module. Change the Kconfig and Makefile arizona bits so that the arizona MFD-core can be built as a module. This is especially useful on x86 platforms with a WM5102 codec, this allows the arizona MFD driver necessary for the WM5102 codec to be enabled in generic distro-kernels without growing the base kernel-image size. Note this also adds an explicit "depends on MFD_ARIZONA" to all the arizona codec Kconfig options. The codec drivers use functions from mfd arizona-core. These new depends are necessary to disallow the codec drivers being builtin when the arizona-core is build as a module, otherwise we end up with missing symbol errors when building vmlinuz. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: si476x-i2c: Fix incorrectly documented function namesLee Jones1-5/+5
Fixes the following W=1 kernel build warning(s): drivers/mfd/si476x-i2c.c:360: warning: expecting prototype for si476x_drain_rds_fifo(). Prototype was for si476x_core_drain_rds_fifo() instead drivers/mfd/si476x-i2c.c:467: warning: expecting prototype for si476x_get_status(). Prototype was for si476x_core_get_status() instead drivers/mfd/si476x-i2c.c:484: warning: expecting prototype for si476x_get_and_signal_status(). Prototype was for si476x_core_get_and_signal_status() instead drivers/mfd/si476x-i2c.c:555: warning: expecting prototype for si476x_firmware_version_to_revision(). Prototype was for si476x_core_fwver_to_revision() instead drivers/mfd/si476x-i2c.c:619: warning: expecting prototype for si476x_get_revision_info(). Prototype was for si476x_core_get_revision_info() instead Cc: Lee Jones <lee.jones@linaro.org> Cc: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: si476x-cmd: Fix a bunch of incorrectly documented function namesLee Jones1-12/+12
Fixes the following W=1 kernel build warning(s): drivers/mfd/si476x-cmd.c:406: warning: expecting prototype for si476x_cmd_func_info(). Prototype was for si476x_core_cmd_func_info() instead drivers/mfd/si476x-cmd.c:437: warning: expecting prototype for si476x_cmd_set_property(). Prototype was for si476x_core_cmd_set_property() instead drivers/mfd/si476x-cmd.c:463: warning: expecting prototype for si476x_cmd_get_property(). Prototype was for si476x_core_cmd_get_property() instead drivers/mfd/si476x-cmd.c:525: warning: expecting prototype for si476x_cmd_dig_audio_pin_cfg(). Prototype was for si476x_core_cmd_dig_audio_pin_cfg() instead drivers/mfd/si476x-cmd.c:574: warning: expecting prototype for si476x_cmd_zif_pin_cfg(). Prototype was for si476x_core_cmd_zif_pin_cfg() instead drivers/mfd/si476x-cmd.c:631: warning: expecting prototype for si476x_cmd_ic_link_gpo_ctl_pin_cfg(). Prototype was for si476x_core_cmd_ic_link_gpo_ctl_pin_cfg() instead drivers/mfd/si476x-cmd.c:662: warning: expecting prototype for si476x_cmd_ana_audio_pin_cfg(). Prototype was for si476x_core_cmd_ana_audio_pin_cfg() instead drivers/mfd/si476x-cmd.c:697: warning: expecting prototype for si476x_cmd_intb_pin_cfg(). Prototype was for si476x_core_cmd_intb_pin_cfg_a10() instead drivers/mfd/si476x-cmd.c:742: warning: expecting prototype for si476x_cmd_am_rsq_status(). Prototype was for si476x_core_cmd_am_rsq_status() instead drivers/mfd/si476x-cmd.c:874: warning: expecting prototype for si476x_cmd_fm_seek_start(). Prototype was for si476x_core_cmd_fm_seek_start() instead drivers/mfd/si476x-cmd.c:905: warning: expecting prototype for si476x_cmd_fm_rds_status(). Prototype was for si476x_core_cmd_fm_rds_status() instead drivers/mfd/si476x-cmd.c:1050: warning: expecting prototype for si476x_cmd_am_seek_start(). Prototype was for si476x_core_cmd_am_seek_start() instead Cc: Lee Jones <lee.jones@linaro.org> Cc: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: omap-usb-tll: File headers are not good candidates for kernel-docLee Jones1-1/+1
Fixes the following W=1 kernel build warning(s): drivers/mfd/omap-usb-tll.c:24: warning: expecting prototype for omap(). Prototype was for USBTLL_DRIVER_NAME() instead Cc: Tony Lindgren <tony@atomide.com> Cc: Lee Jones <lee.jones@linaro.org> Cc: Keshava Munegowda <keshava_mgowda@ti.com> Cc: Roger Quadros <rogerq@ti.com> Cc: linux-omap@vger.kernel.org Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: omap-usb-host: File headers are not good candidates for kernel-docLee Jones1-1/+1
Fixes the following W=1 kernel build warning(s): drivers/mfd/omap-usb-host.c:26: warning: expecting prototype for omap(). Prototype was for USBHS_DRIVER_NAME() instead Cc: Tony Lindgren <tony@atomide.com> Cc: Lee Jones <lee.jones@linaro.org> Cc: Keshava Munegowda <keshava_mgowda@ti.com> Cc: Roger Quadros <rogerq@ti.com> Cc: linux-omap@vger.kernel.org Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: db8500-prcmu: Fix multiple incorrectly documented function namesLee Jones1-3/+3
Fixes the following W=1 kernel build warning(s): drivers/mfd/db8500-prcmu.c:624: warning: expecting prototype for prcmu_get_current_mode(). Prototype was for prcmu_get_xp70_current_state() instead drivers/mfd/db8500-prcmu.c:908: warning: expecting prototype for db8500_set_ape_opp(). Prototype was for db8500_prcmu_set_ape_opp() instead drivers/mfd/db8500-prcmu.c:2303: warning: expecting prototype for db8500_prcmu_reset_modem(). Prototype was for db8500_prcmu_modem_reset() instead Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Lee Jones <lee.jones@linaro.org> Cc: Kumar Sanghvi <kumar.sanghvi@stericsson.com> Cc: Sundar Iyer <sundar.iyer@stericsson.com> Cc: Mattias Nilsson <mattias.i.nilsson@stericsson.com> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: twl-core: Fix incorrect function name twl_regcache_bypass()Lee Jones1-1/+1
Fixes the following W=1 kernel build warning(s): drivers/mfd/twl-core.c:496: warning: expecting prototype for twl_regcache_bypass(). Prototype was for twl_set_regcache_bypass() instead Cc: Tony Lindgren <tony@atomide.com> Cc: Lee Jones <lee.jones@linaro.org> Cc: Kai Svahn <kai.svahn@nokia.com> Cc: syed khasim <x0khasim@ti.com> Cc: linux-omap@vger.kernel.org Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: wm831x-core: Fix incorrect function name wm831x_reg_unlock()Lee Jones1-1/+1
Fixes the following W=1 kernel build warning(s): drivers/mfd/wm831x-core.c:121: warning: expecting prototype for wm831x_reg_unlock(). Prototype was for wm831x_reg_lock() instead Cc: Lee Jones <lee.jones@linaro.org> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: patches@opensource.cirrus.com Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: ioc3: Directly include linux/irqdomain.hMarc Zyngier1-0/+1
This driver include linux/irqdomain.h via a bizarre set of indirection, which we are about to break. Directly include the required file. Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: axp20x: Allow AXP 806 chips without interrupt linesAndre Przywara1-7/+17
Currently the AXP chip requires to have its IRQ line connected to some interrupt controller, and will fail probing when this is not the case. On a new Allwinner SoC (H616) there is no NMI pin anymore, and at least one board does not connect the AXP's IRQ pin to anything else, so the interrupt functionality of the AXP chip is simply not available. Check whether the interrupt line number returned by the platform code is valid, before trying to register the irqchip. If not, we skip this registration, to avoid the driver to bail out completely. Also we need to skip the power key functionality, as this relies on a valid IRQ as well. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Merge different sub-devices I2C read/writeGene Chen2-23/+181
Merge different sub-devices I2C read/write functions into one Regmap, because PMIC and LDO part need CRC bits for access protection. Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Merge header file into driver and remove unuse register defineGene Chen1-1/+47
Merge header file into driver and remove unuse register define Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Fix flow which is used to check ic existGene Chen1-11/+21
Fix flow which is used to check ic exist. Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Remove handle_post_irq callback functionGene Chen1-13/+4
Remove handle_post_irq which is used to retrigger IRQ. Set IRQ level low trigger in dtsi to keep IRQ always be handled. Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Rename mt6360_pmu by mt6360Gene Chen1-21/+20
Rename mt6360_pmu by mt6360, because of including not only PMU part, but also entire MT6360 IC Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Rename mt6360_pmu_data by mt6360_ddataGene Chen1-22/+22
Rename mt6360_pmu_data by mt6360_ddata because of including not only PMU part, but also entire MT6360 IC. Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Combine mt6360 pmic/ldo resources into mt6360 regulator resourcesGene Chen1-8/+2
Combine mt6360 pmic/ldo resources into mt6360 regulator resources to simplify the similar resources object. Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Indicate sub-dev compatible name by using "-"Gene Chen1-12/+12
Indicate sub-dev compatible name by using "-". Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Remove redundant brackets around raw numbersGene Chen1-86/+86
Remove redundant brackets around raw numbers. Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6360: Rearrange include fileGene Chen1-2/+3
Rearrange include file without sorting by alphabet. Signed-off-by: Gene Chen <gene_chen@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: rt4831: Adds support for Richtek RT4831ChiYuan Huang3-0/+126
This adds support Richtek RT4831 core. It includes four channel WLED driver and Display Bias Voltage outputs. Signed-off-by: ChiYuan Huang <cy_huang@richtek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: rn5t618: Fix IRQ trigger by changing it to level modeAndreas Kemnade1-1/+1
During more massive generation of interrupts, the IRQ got stuck, and the subdevices did not see any new interrupts. That happens especially at wonky USB supply in combination with ADC reads. To fix that trigger the IRQ at level low instead of falling edge. Fixes: 0c81604516af ("mfd: rn5t618: Add IRQ support") Signed-off-by: Andreas Kemnade <andreas@kemnade.info> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: max8907: Move to use request_irq by IRQF_NO_AUTOEN flagTian Tao1-4/+2
This change is just to simplify the code, no actual functional changes. Signed-off-by: Tian Tao <tiantao6@hisilicon.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: lp87565: Handle optional reset pinLuca Ceresoli1-0/+27
Optionally handle the NRST pin (active low reset) in order to start from a known state during boot and to shut down the chip when rebooting. Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLEZou Wei2-1/+2
This patch adds/modifies MODULE_DEVICE_TABLE definition which generates correct modalias for automatic loading of this driver when it is built as an external module. Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Zou Wei <zou_wei@huawei.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: syscon: Free the allocated name field of struct regmap_configLimeng1-1/+1
The commit 529a1101212a("mfd: syscon: Don't free allocated name for regmap_config") doesn't free the allocated name field of struct regmap_config, but introduce a memory leak. There is another commit 94cc89eb8fa5("regmap: debugfs: Fix handling of name string for debugfs init delays") fixing this debugfs init issue from root cause. With this fixing, the name field in struct regmap_debugfs_node is removed. When initialize debugfs for syscon driver, the name field of struct regmap_config is not used anymore. So, the allocated name field of struct regmap_config is need to be freed directly after regmap initialization to avoid memory leak. Cc: stable@vger.kernel.org Fixes: 529a1101212a("mfd: syscon: Don't free allocated name for regmap_config") Signed-off-by: Meng Li <Meng.Li@windriver.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: Remove software node conditionally and locate at right placeAndy Shevchenko1-6/+9
Currently the software node is removed in error case and at ->remove() stage unconditionally, that ruins the symmetry. Besides, in some cases, when mfd_add_device() fails, the device_remove_software_node() call may lead to NULL pointer dereference: BUG: kernel NULL pointer dereference, address: 00000000 ... EIP: strlen+0x12/0x20 ... kernfs_name_hash+0x13/0x70 kernfs_find_ns+0x32/0xc0 kernfs_remove_by_name_ns+0x2a/0x90 sysfs_remove_link+0x16/0x30 software_node_notify.cold+0x34/0x6b device_remove_software_node+0x5a/0x90 mfd_add_device.cold+0x30a/0x427 Fix all these by guarding device_remove_software_node() with a conditional and locating it at the right place. Fixes: 42e59982917a ("mfd: core: Add support for software nodes") Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: wcd934x: Add additional interrupts required for MBHC supportSrinivas Kandagatla1-0/+7
WCD934x supports Multi Button Headset control which enable headset detection along with headset button detection. This patch adds interrupts required for MBHC functionality. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: wcd934x: Add macro for adding new interruptsSrinivas Kandagatla1-26/+17
Currently only two interrupts supported is added in wcd934x interrupt controller, however if we are adding more interrupts the file will become too much unreadable. So add a macro to make adding new interrupts easy and also convert existing slim and soundwire interrupts to use it. This is in preparation to enable Multi Button Headset Control support on this codec. WCD934x supports Multi Button Headset control which enable headset detection along with headset button detection. This patch adds interrupts required for MBHC functionality. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: si476x-cmd: Fix two typos of 'returned'Jian Dong1-2/+2
Fix two typos retured --> returned Signed-off-by: Jian Dong <dongjian@yulong.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6397: Add PMIC keys for MT6358Mattijs Korpershoek1-0/+12
Add compatible strings and interrupts for pmic keys which serves as child device of MFD. MT6358 has two interrupts per key: one for press, another one for release (_R) Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mt6397: Use named IRQs instead of index (keys)Mattijs Korpershoek1-4/+4
Some pmics of the mt6397 family (such as MT6358), have two IRQs per physical key: one for press event, another for release event. The mtk-pmic-keys driver assumes that each key only has one IRQ. The key index and the RES_IRQ resource index have a 1/1 mapping. This won't work for MT6358, as we have multiple resources (2) for one key. To prepare mtk-pmic-keys to support MT6358, retrieve IRQs by name instead of by index. Note: The keys_resources are not part of the device-tree bindings so this won't break any DT schemas. Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: mp2629: Select MFD_CORE to fix build errorRandy Dunlap1-0/+1
MFD_MP2629 should select MFD_CORE to a prevent build error: ERROR: modpost: "devm_mfd_add_devices" [drivers/mfd/mp2629.ko] undefined! Fixes: 06081646450e ("mfd: mp2629: Add support for mps battery charger") Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02mfd: intel-lpss: Add Intel Alder Lake-M PCI IDsAndy Shevchenko1-0/+13
Add Intel Alder Lake-M LPSS PCI IDs. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-02Merge tags 'tb-mfd-asoc-v5.14-1', 'tb-mfd-gpio-regulator-v5.14' and ↵Lee Jones2-27/+86
'tb-mfd-regulator-rtc-v5.14' into ibs-for-mfd-merged Immutable branch between MFD and ASoC due for the v5.14 merge window Immutable branch between MFD, GPIO and Regulator due for the v5.14 merge window Immutable branch between MFD, Regulator and RTC due for the v5.14 merge window
2021-06-01mfd: Add support for the MediaTek MT6359 PMICHsin-Hsiung Wang2-0/+48
This adds support for the MediaTek MT6359 PMIC. This is a multifunction device with the following sub modules: - Codec - Interrupt - Regulator - RTC It is interfaced to the host controller using SPI interface by a proprietary hardware called PMIC wrapper or pwrap. MT6359 MFD is a child device of the pwrap. Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-01mfd: mt6358: Refine interrupt codeHsin-Hsiung Wang1-27/+38
This patch refines the interrupt related code to support new chips. Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-06-01mfd: Add Rockchip rk817 audio CODEC supportChris Morgan1-0/+81
Add rk817 codec support cell to rk808 mfd driver. Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Tested-by: Maciej Matuszczyk <maccraft123mc@gmail.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-04-28Merge tag 'mfd-next-5.13' of ↵Linus Torvalds30-1542/+1468
git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD updates from Lee Jones: "Core Framework: - Add support for Software Nodes to MFD Core - Remove support for Device Properties from MFD Core - Use standard APIs in MFD Core New Drivers: - Add support for ROHM BD9576MUF and BD9573MUF PMICs - Add support for Netronix Embedded Controller, PWM and RTC - Add support for Actions Semi ATC260x PMICs and OnKey New Device Support: - Add support for DG1 PCIe Graphics Card to Intel PMT - Add support for ROHM BD71815 PMIC to ROHM BD71828 - Add support for Tolino Shine 2 HD to Netronix Embedded Controller - Add support for AX10 BMC Secure Updates to Intel M10 BMC Removed Device Support: - Remove Arizona Extcon support from MFD - Remove ST-E AB8500 Power Supply code from MFD - Remove AB3100 altogether New Functionality: - Add support for SMBus and I2C modes to Dialog DA9063 - Switch to using Software Nodes in Intel (various) New/converted Device Tree bindings: - rohm bd71815-pmic, rohm bd9576-pmic, netronix ntxec, actions atc260x, ricoh rn5t618, qcom pm8xxx - Fix-ups: - Fix error handling/path; intel_pmt - Simplify code; rohm-bd718x7, ab8500-core, intel-m10-bmc - Trivial clean-ups (reordering, spelling); rohm-generic, rn5t618, max8997 - Use correct data-type; db8500-prcmu - Remove superfluous code; lp87565, intel_quark_i2c_gpi, lpc_sch, twl - Use generic APIs/defines; lm3533-core, intel_quark_i2c_gpio - Regmap related fix-ups; intel-m10-bmc, sec-core - Reorder resource freeing during remove; intel_quark_i2c_gpio - Make table indexing more robust; intel_quark_i2c_gpio - Fix reference imbalances; arizona-irq - Staticify and (un)constify things; arizona-spi, stmpe, ene-kb3930, intel-lpss-acpi, intel-lpss-pci, atc260x-i2c, intel_quark_i2c_gpio Bug Fixes: - Fix incorrect (register) values; intel-m10-bmc - Kconfig related fixes; ABX500_CORE - Do not clear the Auto Reload Register; stm32-timers" * tag 'mfd-next-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (84 commits) mfd: intel-m10-bmc: Add support for MAX10 BMC Secure Updates Revert "mfd: max8997: Add of_compatible to Extcon and Charger mfd_cell" mfd: twl: Remove unused inline function twl4030charger_usb_en() dt-bindings: mfd: Convert pm8xxx bindings to yaml dt-bindings: mfd: Add compatible for pmk8350 rtc i2c: designware: Get rid of legacy platform data mfd: intel_quark_i2c_gpio: Convert I²C to use software nodes mfd: lpc_sch: Partially revert "Add support for Intel Quark X1000" mfd: arizona: Fix rumtime PM imbalance on error mfd: max8997: Replace 8998 with 8997 mfd: core: Use acpi_find_child_device() for child devices lookup mfd: intel_quark_i2c_gpio: Don't play dirty trick with const mfd: intel_quark_i2c_gpio: Enable MSI interrupt mfd: intel_quark_i2c_gpio: Reuse BAR definitions for MFD cell indexing mfd: ntxec: Support for EC in Tolino Shine 2 HD mfd: stm32-timers: Avoid clearing auto reload register mfd: intel_quark_i2c_gpio: Replace I²C speeds with descriptive definitions mfd: intel_quark_i2c_gpio: Remove unused struct device member mfd: intel_quark_i2c_gpio: Unregister resources in reversed order mfd: Kconfig: ABX500_CORE should depend on ARCH_U8500 ...
2021-04-28Merge tag 'for-v5.13' of ↵Linus Torvalds1-9/+8
git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply Pull power supply and reset updates from Sebastian Reichel: "battery/charger driver changes: - core: - provide function stubs if CONFIG_POWER_SUPPLY=n - reduce loglevel for probe defer info - surface: - new battery and charger drivers for Surface - bq27xxx: - add bq78z100 support - fix current_now/power_avg for newer chips - cw2015: - add CHARGE_NOW support - ab8500: - drop pdata support - convert most DT bindings to YAML - lots of minor fixes and cleanups reset drivers: - ltc2952-poweroff: - make trigger delay configurable from DT - minor fixes and cleanups" * tag 'for-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (97 commits) power: supply: cpcap-battery: fix invalid usage of list cursor power: supply: bq256xx: add kerneldoc for structure members power: supply: act8945a: correct kerneldoc power: supply: max17040: remove unneeded double cast power: supply: max17040: handle device_property_read_u8_array() failure power: supply: max14577: remove unneeded variable initialization power: supply: surface-charger: Make symbol 'surface_ac_pm_ops' static power: supply: surface-battery: Make some symbols static power: reset: restart-poweroff: Add missing MODULE_DEVICE_TABLE power: reset: hisi-reboot: add missing MODULE_DEVICE_TABLE power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove() power: supply: generic-adc-battery: fix possible use-after-free in gab_remove() power: supply: Add AC driver for Surface Aggregator Module power: supply: Add battery driver for Surface Aggregator Module power: supply: bq25980: Move props from battery node power: supply: core: Use true and false for bool variable power: supply: goldfish: Remove the GOLDFISH dependency power: reset: ltc2952: make trigger delay configurable power: supply: cpcap-charger: Simplify bool conversion power: supply: cpcap-charger: Add usleep to cpcap charger to avoid usb plug bounce ...
2021-04-26Merge tag 'hwmon-for-v5.13' of ↵Linus Torvalds1-0/+10
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon updates from Guenter Roeck: "The most notable change is the removal of the amd_energy driver. It was rendered all but unusable by making its attributes privileged-only to work around a security issue. A suggested remedy was rejected by AMD, so the only real solution was to remove the driver. For the future, we'll have to make sure that no privileged-access-only drivers are accepted into the hwmon subsystem in the first place. The hwmon ABI document was updated accordingly. Other changes: PMBus drivers: - Added driver for MAX15301 - Added driver for BluTek BPA-RS600 - Added driver for fsp-3y PSUs and PDUs - Added driver for Infineon IR36021 - Added driver for ST STPDDC60 - Added support for TI TPS53676 to tps53679 driver - Introduced PMBUS symbol namespace. This was made necessary by a suggestion to use its exported functions from outside the hwmon subsystem. - Minor improvements and bug fixes New drivers: - Driver for NZXT Kraken X42/X52/X62/X72 Driver enhancements: - Added support for Intel D5005 to intel-m10-bmc-hwmon driver - Added support for NCT6686D to nct6683 driver Other: - Converted sch5627 and amd9240 drivers to hwmon_device_register_with_info() - Added support for fan drawers capability and present registers to mlxreg-fan driver - Added Dell Latitude E7440 to fan control whitelist in dell-smm driver - Replaced snprintf in show functions with sysfs_emit. Done with coccinelle script for all drivers to preempt endless per-driver submissions of the same change. - Use kobj_to_dev(). Another coccinelle based change to preempt endless per-driver submissions of the same change. - Various minor fixes and improvements" * tag 'hwmon-for-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (38 commits) hwmon: Remove amd_energy driver hwmon: Clarify scope of attribute access hwmon: (pmbus) Introduce PMBUS symbol namespace hwmon: (pmbus) Add pmbus driver for MAX15301 hwmon: (sch5627) Remove unnecessary error path hwmon: (sch5627) Use devres function hwmon: (pmbus/pxe1610) don't bail out when not all pages are active hwmon: Add driver for fsp-3y PSUs and PDUs hwmon: (intel-m10-bmc-hwmon) add sensor support of Intel D5005 card hwmon: (sch5627) Split sch5627_update_device() hwmon: (sch5627) Convert to hwmon_device_register_with_info() hwmon: (nct6683) remove useless function hwmon: (dell-smm) Add Dell Latitude E7440 to fan control whitelist MAINTAINERS: Add keyword pattern for hwmon registration functions hwmon: (mlxreg-fan) Add support for fan drawers capability and present registers hwmon: (pmbus/tps53679) Add support for TI TPS53676 dt-bindings: Add trivial device entry for TPS53676 hwmon: (ftsteutates) Rudimentary typo fixes hwmon: (pmbus) Add driver for BluTek BPA-RS600 dt-bindings: Add vendor prefix and trivial device for BluTek BPA-RS600 ...
2021-04-26Merge tag 'arm-drivers-5.13' of ↵Linus Torvalds1-2/+2
git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC driver updates from Arnd Bergmann: "Updates for SoC specific drivers include a few subsystems that have their own maintainers but send them through the soc tree: TEE/OP-TEE: - Add tracepoints around calls to secure world Memory controller drivers: - Minor fixes for Renesas, Exynos, Mediatek and Tegra platforms - Add debug statistics to Tegra20 memory controller - Update Tegra bindings and convert to dtschema ARM SCMI Firmware: - Support for modular SCMI protocols and vendor specific extensions - New SCMI IIO driver - Per-cpu DVFS The other driver changes are all from the platform maintainers directly and reflect the drivers that don't fit into any other subsystem as well as treewide changes for a particular platform. SoCFPGA: - Various cleanups contributed by Krzysztof Kozlowski Mediatek: - add MT8183 support to mutex driver - MMSYS: use per SoC array to describe the possible routing - add MMSYS support for MT8183 and MT8167 - add support for PMIC wrapper with integrated arbiter - add support for MT8192/MT6873 Tegra: - Bug fixes to PMC and clock drivers NXP/i.MX: - Update SCU power domain driver to keep console domain power on. - Add missing ADC1 power domain to SCU power domain driver. - Update comments for single global power domain in SCU power domain driver. - Add i.MX51/i.MX53 unique id support to i.MX SoC driver. NXP/FSL SoC driver updates for v5.13 - Add ACPI support for RCPM driver - Use generic io{read,write} for QE drivers after performance optimized for PowerPC - Fix QBMAN probe to cleanup HW states correctly for kexec - Various cleanup and style fix for QBMAN/QE/GUTS drivers OMAP: - Preparation to use devicetree for genpd - ti-sysc needs iorange check improved when the interconnect target module has no control registers listed - ti-sysc needs to probe l4_wkup and l4_cfg interconnects first to avoid issues with missing resources and unnecessary deferred probe - ti-sysc debug option can now detect more devices - ti-sysc now warns if an old incomplete devicetree data is found as we now rely on it being complete for am3 and 4 - soc init code needs to check for prcm and prm nodes for omap4/5 and dra7 - omap-prm driver needs to enable autoidle retention support for omap4 - omap5 clocks are missing gpmc and ocmc clock registers - pci-dra7xx now needs to use builtin_platform_driver instead of using builtin_platform_driver_probe for deferred probe to work Raspberry Pi: - Fix-up all RPi firmware drivers so as for unbind to happen in an orderly fashion - Support for RPi's PoE hat PWM bus Qualcomm - Improved detection for SCM calling conventions - Support for OEM specific wifi firmware path - Added drivers for SC7280/SM8350: RPMH, LLCC< AOSS QMP" * tag 'arm-drivers-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (165 commits) soc: aspeed: fix a ternary sign expansion bug memory: mtk-smi: Add device-link between smi-larb and smi-common memory: samsung: exynos5422-dmc: handle clk_set_parent() failure memory: renesas-rpc-if: fix possible NULL pointer dereference of resource clk: socfpga: fix iomem pointer cast on 64-bit soc: aspeed: Adapt to new LPC device tree layout pinctrl: aspeed-g5: Adapt to new LPC device tree layout ipmi: kcs: aspeed: Adapt to new LPC DTS layout ARM: dts: Remove LPC BMC and Host partitions dt-bindings: aspeed-lpc: Remove LPC partitioning soc: fsl: enable acpi support in RCPM driver soc: qcom: mdt_loader: Detect truncated read of segments soc: qcom: mdt_loader: Validate that p_filesz < p_memsz soc: qcom: pdr: Fix error return code in pdr_register_listener firmware: qcom_scm: Fix kernel-doc function names to match firmware: qcom_scm: Suppress sysfs bind attributes firmware: qcom_scm: Workaround lack of "is available" call on SC7180 firmware: qcom_scm: Reduce locking section for __get_convention() firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool Revert "soc: fsl: qe: introduce qe_io{read,write}* wrappers" ...
2021-04-26Merge tag 'platform-drivers-x86-v5.13-1' of ↵Linus Torvalds1-37/+75
git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 Pull x86 platform driver updates freom Hans de Goede: - lots of Microsoft Surface work - platform-profile support for HP and Microsoft Surface devices - new WMI Gigabyte motherboard temperature monitoring driver - Intel PMC improvements for Tiger Lake and Alder Lake - misc bugfixes, improvements and quirk additions all over * tag 'platform-drivers-x86-v5.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (87 commits) platform/x86: gigabyte-wmi: add support for B550M AORUS PRO-P platform/x86: intel_pmc_core: Uninitialized data in pmc_core_lpm_latch_mode_write() platform/x86: intel_pmc_core: add ACPI dependency platform/surface: aggregator: fix a bit test platform/x86: intel_pmc_core: Fix "unsigned 'ret' is never less than zero" smatch warning platform/x86: touchscreen_dmi: Add info for the Teclast Tbook 11 tablet platform/x86: intel_pmc_core: Add support for Alder Lake PCH-P platform/x86: intel_pmc_core: Add LTR registers for Tiger Lake platform/x86: intel_pmc_core: Add option to set/clear LPM mode platform/x86: intel_pmc_core: Add requirements file to debugfs platform/x86: intel_pmc_core: Get LPM requirements for Tiger Lake platform/x86: intel_pmc_core: Show LPM residency in microseconds platform/x86: intel_pmc_core: Handle sub-states generically platform/x86: intel_pmc_core: Remove global struct pmc_dev platform/x86: intel_pmc_core: Don't use global pmcdev in quirks platform/x86: intel_chtdc_ti_pwrbtn: Fix missing IRQF_ONESHOT as only threaded handler platform/x86: gigabyte-wmi: add X570 AORUS ELITE platform/x86: thinkpad_acpi: Add labels to the first 2 temperature sensors platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with critclk_systems DMI table platform/x86: add Gigabyte WMI temperature driver ...
2021-04-20hwmon: (intel-m10-bmc-hwmon) add sensor support of Intel D5005 cardMatthew Gerlach1-0/+10
Like the Intel N3000 card, the Intel D5005 has a MAX10 based BMC. This commit adds support for the D5005 sensors that are monitored by the MAX10 BMC. Signed-off-by: Matthew Gerlach <matthew.gerlach@linux.intel.com> Signed-off-by: Russ Weight <russell.h.weight@linux.intel.com> Acked-by: Lee Jones <lee.jones@linaro.org> Reviewed-by: Tom Rix <trix@redhat.com> Link: https://lore.kernel.org/r/20210413225835.459662-3-matthew.gerlach@linux.intel.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2021-04-14Revert "mfd: max8997: Add of_compatible to Extcon and Charger mfd_cell"Timon Baetz1-2/+2
This reverts commit 9c03008da125c1007919a9186628af3cc105f526. commit 41a8a027f4d3 ("regulator: dt-bindings: Document charger-supply for max8997") introduced a binding which uses a property of the max8997 pmic node to configure charger supply, making subnodes for MFD cells obsolete. Signed-off-by: Timon Baetz <timon.baetz@protonmail.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-04-14mfd: intel_quark_i2c_gpio: Convert I²C to use software nodesAndy Shevchenko1-15/+26
The driver can provide a software node group instead of passing legacy platform data. This will allow to drop the legacy platform data structures along with unifying a child device driver to use same interface for all property providers, i.e. Device Tree, ACPI, and board files. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>