summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-07-04mfd: intel-lpss: Rename SPI intel_lpss_platform_info structsIlpo Järvinen1-81/+81
The driver has intel_lpss_platform_info structs for I2C, SPI, and UART. The I2C and UART structs are named with "i2c" and "uart" in the variable name, whereas SPI ones do not mention "spi". Rename the SPI related info structs to include "spi" in their names for consistency and to make it obvious in the device ID list what kind of device the line relates to. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20240531142505.1888-1-ilpo.jarvinen@linux.intel.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: core: Make use of device_set_node()Andy Shevchenko1-3/+2
Use device_set_node() instead of assigning pdev->dev.of_node directly because it also sets the firmware node. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Herve Codina <herve.codina@bootlin.com> Link: https://lore.kernel.org/r/20240530115147.1112498-1-andriy.shevchenko@linux.intel.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: mt6397-core: Add support for AUXADCs on MT6357/58/59 PMICsAngeloGioacchino Del Regno1-0/+10
Add the relevant AUXADC driver entries to the MFD cells of the MT6357, MT6358, MT6359 PMICs to support their Auxiliary ADCs. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://lore.kernel.org/r/20240530093410.112716-4-angelogioacchino.delregno@collabora.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04dt-bindings: mfd: qcom,spmi-pmic: Document PMC8380Konrad Dybcio1-0/+1
These are just some more PMICs adjacent to X1 SoCs. Document them. Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240529-topic-x1e_pmic-v1-1-9de0506179eb@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: rsmu: Split core code into separate moduleArnd Bergmann2-4/+4
Linking a file into two modules can have unintended side-effects and produces a W=1 warning: scripts/Makefile.build:236: drivers/mfd/Makefile: rsmu_core.o is added to multiple modules: rsmu-i2c rsmu-spi Make this one a separate module instead. Fixes: a1867f85e06e ("mfd: Add Renesas Synchronization Management Unit (SMU) support") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Link: https://lore.kernel.org/r/20240529094856.1869543-1-arnd@kernel.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: cros_ec: Register hardware monitoring subdeviceThomas Weißschuh1-0/+1
Add ChromeOS EC-based hardware monitoring as EC subdevice. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20240529-cros_ec-hwmon-v4-3-5cdf0c5db50a@weissschuh.net Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: cros_ec: Register charge control subdeviceThomas Weißschuh1-0/+1
Add ChromeOS EC-based charge control as EC subdevice. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20240528-cros_ec-charge-control-v2-3-81fb27e1cff4@weissschuh.net Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04dt-bindings: mfd: qcom-spmi-pmic: Document SMB2360 PMICAbel Vesa1-0/+1
Add bindings for SMB2360 PMIC. This PMIC is found in boards like X1 Elite CRD and QCP. Signed-off-by: Abel Vesa <abel.vesa@linaro.org> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://lore.kernel.org/r/20240527-smb2360-bindings-mfd-qcom-spmi-pmic-v1-1-31a2c051529c@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: intel_soc_pmic_crc: Use PWM_LOOKUP_WITH_MODULE() for the PWM lookupHans de Goede1-1/+3
The primary use of the CRC PMIC's PWM is for LCD panel backlight control by the i915 driver. Due to its complexity the probe() function of the i915 driver does not support -EPROBE_DEFER handling. So far the pwm-crc driver must be built into the kernel to ensure that the pwm_get() done by the i915 driver succeeds at once (rather then returning -EPROBE_DEFER). But the PWM core can load the module from pwm_get() if a module-name is provided in the pwm_lookup associated with the consumer device. Switch to using PWM_LOOKUP_WITH_MODULE() for the lookup added for the Intel integrated GPU, so that the PWM core can load the module from pwm_get() as needed allowing the pwm-crc driver to be safely built as module. This has been successfully tested on an Asus T100TAM with pwm-crc build as a module. Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11081 Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Andy Shevchenko <andy@kernel.org> Link: https://lore.kernel.org/r/20240527114950.326659-1-hdegoede@redhat.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04dt-bindings: mfd: mediatek,mt8195-scpsys: Add mediatek,mt8365-scpsysKrzysztof Kozlowski1-0/+1
Add a new mediatek,mt8365-scpsys compatible, for the SCPSYS syscon block having power controller. Previously the DTS was re-using SYSCFG compatible, but that does not seem right, because SYSCFG does not have children. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Link: https://lore.kernel.org/r/20240518211159.142920-1-krzysztof.kozlowski@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04dt-bindings: mfd: mediatek,mt8195-scpsys: Add support for MT8188AngeloGioacchino Del Regno1-0/+1
Add a compatible string for the scpsys block found in the MediaTek MT8188 SoC. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240527093908.97574-2-angelogioacchino.delregno@collabora.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04dt-bindings: mfd: syscon: Add ti,am625-dss-oldi-io-ctrl compatibleAradhya Bhatia1-0/+1
Add TI DSS OLDI-IO control registers compatible for AM625 DSS. This is a region of 10 32bit registers found in the TI AM625 CTRL_MMR0 register space[0]. They are used to control the characteristics of the OLDI DATA/CLK IO as needed by the OLDI TXes controller node. [0]: https://www.ti.com/lit/pdf/spruiv7 Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240512143824.1862290-1-a-bhatia1@ti.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0Uwe Kleine-König29-54/+54
These drivers don't use the driver_data member of struct i2c_device_id, so don't explicitly initialize this member. This prepares putting driver_data in an anonymous union which requires either no initialization or named designators. But it's also a nice cleanup on its own. While add it, also remove commas after the sentinel entries. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Link: https://lore.kernel.org/r/20240510211011.2273978-2-u.kleine-koenig@pengutronix.de Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: menelaus: Remove unused linux/gpio.hAndy Shevchenko1-1/+0
linux/gpio.h is deprecated and subject to remove. The driver doesn't use it, simply remove the unused header. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20240508114033.952578-1-andriy.shevchenko@linux.intel.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: omap-usb-host: Remove unused linux/gpio.hAndy Shevchenko1-1/+0
linux/gpio.h is deprecated and subject to remove. The driver doesn't use it, simply remove the unused header. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20240508114321.964374-1-andriy.shevchenko@linux.intel.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04mfd: idt8a340_reg: Start comments with '/*'Simon Horman1-4/+4
Several comments in idt8a340_reg.h start with '/**', which denotes the start of a Kernel doc, but are otherwise not Kernel docs. Resolve this conflict by starting these comments with '/*' instead. Flagged by ./scripts/kernel-doc -none Signed-off-by: Simon Horman <horms@kernel.org> Link: https://lore.kernel.org/r/20240507-clockmatrix-kernel-doc-v2-1-3138d74192dd@kernel.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-07-04Merge branch 'ib-mfd-soc-samsung-6.11' into ibs-for-mfd-mergedLee Jones3-24/+70
2024-07-04Merge branch 'ib-mfd-regulator-watchdog-6.11' into ibs-for-mfd-mergedLee Jones14-0/+2094
2024-07-04Merge branch 'ib-mfd-regulator-pm8008-6.11' into ibs-for-mfd-mergedLee Jones7-130/+409
2024-07-04Merge branch 'ib-mfd-leds-platform-6.11' into ibs-for-mfd-mergedLee Jones5-7/+54
2024-07-04Merge branch 'ib-mfd-input-regulator-6.11' into ibs-for-mfd-mergedLee Jones12-0/+820
2024-07-04Merge branch 'ib-mfd-firmware-input-sound-soc-6.11' into ibs-for-mfd-mergedLee Jones16-0/+2148
2024-07-04Merge branch 'ib-mfd-dt-soc-6.11' into ibs-for-mfd-mergedLee Jones5-8/+203
2024-06-28MAINTAINERS: Add myself for Marvell 88PM886 PMICKarel Balej1-0/+9
Add an entry to MAINTAINERS for the Marvell 88PM886 PMIC MFD, onkey and regulator drivers. Signed-off-by: Karel Balej <balejk@matfyz.cz> Link: https://lore.kernel.org/r/20240531175109.15599-6-balejk@matfyz.cz Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28input: Add onkey driver for Marvell 88PM886 PMICKarel Balej3-0/+106
Marvell 88PM886 PMIC provides onkey among other things. Add client driver to handle it. The driver currently only provides a basic support omitting additional functions found in the vendor version, such as long onkey and GPIO integration. Signed-off-by: Karel Balej <balejk@matfyz.cz> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Link: https://lore.kernel.org/r/20240531175109.15599-5-balejk@matfyz.cz Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28regulator: Add regulators driver for Marvell 88PM886 PMICKarel Balej3-0/+399
Support the LDO and buck regulators of the Marvell 88PM886 PMIC. Signed-off-by: Karel Balej <balejk@matfyz.cz> Reviewed-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20240531175109.15599-4-balejk@matfyz.cz Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28mfd: Add driver for Marvell 88PM886 PMICKarel Balej4-0/+230
Marvell 88PM886 is a PMIC which provides various functions such as onkey, battery, charger and regulators. It is found for instance in the samsung,coreprimevelte smartphone with which this was tested. Implement basic support to allow for the use of regulators and onkey. Signed-off-by: Karel Balej <balejk@matfyz.cz> Link: https://lore.kernel.org/r/20240531175109.15599-3-balejk@matfyz.cz Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28dt-bindings: mfd: Add entry for Marvell 88PM886 PMICKarel Balej1-0/+76
Marvell 88PM886 is a PMIC with several subdevices such as onkey, regulators or battery and charger. It comes in at least two revisions, A0 and A1 -- only A1 is described here at the moment. Signed-off-by: Karel Balej <balejk@matfyz.cz> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240531175109.15599-2-balejk@matfyz.cz Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28ASoC: cs40l50: Support I2S streaming to CS40L50James Ogletree4-0/+321
Introduce support for Cirrus Logic Device CS40L50: a haptic driver with waveform memory, integrated DSP, and closed-loop algorithms. The ASoC driver enables I2S streaming to the device. Reviewed-by: David Rhodes <drhodes@opensource.cirrus.com> Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com> Reviewed-by: Jeff LaBundy <jeff@labundy.com> Reviewed-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com> Reviewed-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20240620161745.2312359-6-jogletre@opensource.cirrus.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28Input: cs40l50 - Add support for the CS40L50 haptic driverJames Ogletree4-0/+567
Introduce support for Cirrus Logic Device CS40L50: a haptic driver with waveform memory, integrated DSP, and closed-loop algorithms. The input driver provides the interface for control of haptic effects through the device. Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com> Reviewed-by: Jeff LaBundy <jeff@labundy.com> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Link: https://lore.kernel.org/r/20240620161745.2312359-5-jogletre@opensource.cirrus.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28mfd: cs40l50: Add support for CS40L50 core driverJames Ogletree7-0/+879
Introduce support for Cirrus Logic Device CS40L50: a haptic driver with waveform memory, integrated DSP, and closed-loop algorithms. The MFD component registers and initializes the device. Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com> Reviewed-by: Jeff LaBundy <jeff@labundy.com> Link: https://lore.kernel.org/r/20240620161745.2312359-4-jogletre@opensource.cirrus.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28dt-bindings: input: cirrus,cs40l50: Add initial DT bindingJames Ogletree2-0/+76
CS40L50 is a haptic driver with waveform memory, integrated DSP, and closed-loop algorithms. Add a YAML DT binding document for this device. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com> Reviewed-by: Jeff LaBundy <jeff@labundy.com> Link: https://lore.kernel.org/r/20240620161745.2312359-3-jogletre@opensource.cirrus.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28firmware: cs_dsp: Add write sequence interfaceJames Ogletree2-0/+305
A write sequence is a sequence of register addresses and values executed by some Cirrus DSPs following certain power state transitions. Add support for Cirrus drivers to update or add to a write sequence present in firmware. Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com> Reviewed-by: Jeff LaBundy <jeff@labundy.com> Link: https://lore.kernel.org/r/20240620161745.2312359-2-jogletre@opensource.cirrus.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27MAINTAINERS: Add ROHM BD96801 'scalable PMIC' entriesMatti Vaittinen1-0/+4
Add maintainer entries for ROHM BD96801 a.k.a 'scalable PMIC' drivers to be reviewed by ROHM people. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Link: https://lore.kernel.org/r/5ff9616567983611ea0b07a91403ea848451a339.1719473802.git.mazziesaccount@gmail.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27watchdog: ROHM BD96801 PMIC WDG driverMatti Vaittinen3-0/+430
Introduce driver for WDG block on ROHM BD96801 scalable PMIC. This driver only supports watchdog with I2C feeding and delayed response detection. Whether the watchdog toggles PRSTB pin or just causes an interrupt can be configured via device-tree. The BD96801 PMIC HW supports also window watchdog (too early feeding detection) and Q&A mode. These are not supported by this driver. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/bb3a49d606e793a61b0c033170ff2a9f30f3c2a5.1719473802.git.mazziesaccount@gmail.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27regulator: bd96801: ROHM BD96801 PMIC regulatorsMatti Vaittinen3-0/+921
The ROHM BD96801 "Scalable PMIC" is an automotive grade PMIC which can scale to different applications by allowing chaining of PMICs. The PMIC also supports various protection features which can be configured either to fire IRQs - or to shut down power outputs when failure is detected. The driver implements basic voltage control and sending error notifications. NOTE: The driver does not support doing configuration which require the PMIC to be in STBY state. The omitted feature set includes setting safety limit values, changing LDO voltages and controlling enable state for some regulators. Also, the ERRB IRQ is not handled. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Reviewed-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/50cf02b046df218a21a0f9c4820531d821fc20d4.1719473802.git.mazziesaccount@gmail.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27mfd: support ROHM BD96801 PMIC coreMatti Vaittinen5-0/+503
The ROHM BD96801 PMIC is highly customizable automotive grade PMIC which integrates regulator and watchdog funtionalities. Provide INTB IRQ and register accesses for regulator/watchdog drivers. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Link: https://lore.kernel.org/r/c5260e2dd222e3c64cdf410802bba195637ccb93.1719473802.git.mazziesaccount@gmail.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27dt-bindings: mfd: bd96801 PMIC coreMatti Vaittinen1-0/+173
ROHM BD96801 is a highly configurable automotive grade PMIC. Introduce DT bindings for the BD96801 core. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://lore.kernel.org/r/9fa3f30dede2b85871a89b20fe1eb13549418489.1719473802.git.mazziesaccount@gmail.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27dt-bindings: ROHM BD96801 PMIC regulatorsMatti Vaittinen1-0/+63
ROHM BD96801 is a highly configurable automotive grade PMIC. Introduce DT bindings for the BD96801 regulators. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://lore.kernel.org/r/53a05b77833cb3f06ecada906411c2f46eecea64.1719473802.git.mazziesaccount@gmail.com Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27dt-bindings: soc: ti: am654-serdes-ctrl: Move to dedicated schemaKrzysztof Kozlowski2-1/+42
ti,am654-serdes-ctrl is not a simple syscon device - it has children - thus it should be fully documented in its own binding. Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240626-dt-bindings-mfd-syscon-split-v3-5-3409903bb99b@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27dt-bindings: soc: microchip: sparx5-cpu-syscon: Move to dedicated schemaKrzysztof Kozlowski2-1/+49
microchip,sparx5-cpu-syscon is not a simple syscon device - it has children and implements simple-mfd compatible - thus it should be fully documented in its own binding. Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240626-dt-bindings-mfd-syscon-split-v3-4-3409903bb99b@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27dt-bindings: soc: intel: lgm-syscon: Move to dedicated schemaKrzysztof Kozlowski2-1/+57
intel,lgm-syscon is not a simple syscon device - it has children - thus it should be fully documented in its own binding. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240626-dt-bindings-mfd-syscon-split-v3-3-3409903bb99b@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27dt-bindings: soc: sprd: sc9863a-glbregs: Document SC9863A sysconKrzysztof Kozlowski1-0/+55
Document sprd,sc9863a-glbregs compatible already used in DTS and other bindings example. Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240626-dt-bindings-mfd-syscon-split-v3-2-3409903bb99b@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-27dt-bindings: mfd: syscon: Drop hwlocksKrzysztof Kozlowski1-5/+0
Apparently there is no in-tree DTS syscon node having hwlocks, so drop the property to simplify the binding. Acked-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240626-dt-bindings-mfd-syscon-split-v3-1-3409903bb99b@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-26soc: samsung: exynos-pmu: update to use of_syscon_register_regmap()Peter Griffin1-24/+14
For SoCs like gs101 that need a special regmap, register this with of_syscon_register_regmap api, so it can be returned by syscon_regmap_lookup_by_phandle() and friends. For SoCs that don't require a custom regmap, revert back to syscon creating the mmio regmap rather than duplicating the logic here. exynos_get_pmu_regmap_by_phandle() api is also updated to retrieve the regmap via syscon. The exynos_get_pmu_regmap_by_phandle() api is kept around until fw_devlink support for syscon property is added for the pinctrl-samsung driver that also runs at postcore_initcall level. All other exynos client drivers can revert back to syscon_regmap_lookup_by_phandle(). Signed-off-by: Peter Griffin <peter.griffin@linaro.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Tested-by: Will McVicker <willmcvicker@google.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240621115544.1655458-3-peter.griffin@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-26mfd: syscon: Add of_syscon_register_regmap() APIPeter Griffin2-0/+56
The of_syscon_register_regmap() API allows an externally created regmap to be registered with syscon. This regmap can then be returned to client drivers using the syscon_regmap_lookup_by_phandle() APIs. The API is used by platforms where mmio access to the syscon registers is not possible, and a underlying soc driver like exynos-pmu provides a SoC specific regmap that can issue a SMC or hypervisor call to write the register. This approach keeps the SoC complexities out of syscon, but allows common drivers such as syscon-poweroff, syscon-reboot and friends that are used by many SoCs already to be re-used. Signed-off-by: Peter Griffin <peter.griffin@linaro.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Tested-by: Will McVicker <willmcvicker@google.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20240621115544.1655458-2-peter.griffin@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-21mfd: cros_ec: Register LED subdeviceThomas Weißschuh1-0/+9
Add ChromeOS EC-based LED control as EC subdevice. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20240613-cros_ec-led-v3-5-500b50f41e0f@weissschuh.net Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-21leds: Add ChromeOS EC driverThomas Weißschuh4-0/+298
The ChromeOS Embedded Controller exposes an LED control command. Expose its functionality through the leds subsystem. The LEDs are exposed as multicolor devices. A hardware trigger, which is active by default, is provided to let the EC itself take over control over the LED. The driver is designed to be probed via the cros_ec mfd device. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20240613-cros_ec-led-v3-4-500b50f41e0f@weissschuh.net Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-21leds: core: Unexport led_colors[] arrayThomas Weißschuh2-3/+1
There are no external users left, make the array static. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20240613-cros_ec-led-v3-3-500b50f41e0f@weissschuh.net Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-21leds: multicolor: Use led_get_color_name() functionThomas Weißschuh1-1/+1
led_get_color_name() is a safer alternative to led_colors. led-class-multicolor.c is the only external user of led_colors and its removal allows unexporting the array. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20240613-cros_ec-led-v3-2-500b50f41e0f@weissschuh.net Signed-off-by: Lee Jones <lee@kernel.org>