Thomas Weißschuh
6ca6a63e96
mfd: cros_ec: Register hardware monitoring subdevice
...
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-04 17:08:02 +01:00
Thomas Weißschuh
555b5fcdb8
mfd: cros_ec: Register charge control subdevice
...
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-04 17:08:02 +01:00
Abel Vesa
b5f743b122
dt-bindings: mfd: qcom-spmi-pmic: Document SMB2360 PMIC
...
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-04 17:08:02 +01:00
Hans de Goede
ddeeca1300
mfd: intel_soc_pmic_crc: Use PWM_LOOKUP_WITH_MODULE() for the PWM lookup
...
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-04 17:08:02 +01:00
Krzysztof Kozlowski
bd1ae9bbc4
dt-bindings: mfd: mediatek,mt8195-scpsys: Add mediatek,mt8365-scpsys
...
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-04 17:08:02 +01:00
AngeloGioacchino Del Regno
0577ca9750
dt-bindings: mfd: mediatek,mt8195-scpsys: Add support for MT8188
...
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-04 17:08:02 +01:00
Aradhya Bhatia
8aa950491d
dt-bindings: mfd: syscon: Add ti,am625-dss-oldi-io-ctrl compatible
...
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-04 17:08:02 +01:00
Uwe Kleine-König
5e9ea43c63
mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0
...
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-04 17:08:02 +01:00
Andy Shevchenko
93411db518
mfd: menelaus: Remove unused linux/gpio.h
...
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-04 17:08:02 +01:00
Andy Shevchenko
22ff67ad8c
mfd: omap-usb-host: Remove unused linux/gpio.h
...
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-04 17:08:02 +01:00
Simon Horman
326ae03d77
mfd: idt8a340_reg: Start comments with '/*'
...
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-04 17:08:01 +01:00
Lee Jones
f1c6a7e0f0
Merge branch 'ib-mfd-soc-samsung-6.11' into ibs-for-mfd-merged
2024-07-04 17:07:34 +01:00
Lee Jones
2a2ca717ce
Merge branch 'ib-mfd-regulator-watchdog-6.11' into ibs-for-mfd-merged
2024-07-04 17:07:26 +01:00
Lee Jones
04f3893327
Merge branch 'ib-mfd-regulator-pm8008-6.11' into ibs-for-mfd-merged
2024-07-04 17:07:21 +01:00
Lee Jones
5ffe70d81e
Merge branch 'ib-mfd-leds-platform-6.11' into ibs-for-mfd-merged
2024-07-04 17:07:01 +01:00
Lee Jones
f5ace55524
Merge branch 'ib-mfd-input-regulator-6.11' into ibs-for-mfd-merged
2024-07-04 17:06:42 +01:00
Lee Jones
2d21e9745f
Merge branch 'ib-mfd-firmware-input-sound-soc-6.11' into ibs-for-mfd-merged
2024-07-04 17:06:36 +01:00
Lee Jones
ecad8fb868
Merge branch 'ib-mfd-dt-soc-6.11' into ibs-for-mfd-merged
2024-07-04 17:06:22 +01:00
Karel Balej
f53d3efa36
MAINTAINERS: Add myself for Marvell 88PM886 PMIC
...
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-28 15:41:29 +01:00
Karel Balej
914089db30
input: Add onkey driver for Marvell 88PM886 PMIC
...
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-28 15:41:20 +01:00
Karel Balej
5d1a514439
regulator: Add regulators driver for Marvell 88PM886 PMIC
...
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-28 15:41:11 +01:00
Karel Balej
860f8e3bea
mfd: Add driver for Marvell 88PM886 PMIC
...
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-28 15:41:05 +01:00
Karel Balej
c4725350a9
dt-bindings: mfd: Add entry for Marvell 88PM886 PMIC
...
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-28 15:40:55 +01:00
James Ogletree
c486def5b3
ASoC: cs40l50: Support I2S streaming to CS40L50
...
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-28 15:36:15 +01:00
James Ogletree
c38fe1bb5d
Input: cs40l50 - Add support for the CS40L50 haptic driver
...
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-28 15:36:11 +01:00
James Ogletree
cb626376cb
mfd: cs40l50: Add support for CS40L50 core driver
...
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-28 15:36:05 +01:00
James Ogletree
2fab5abad1
dt-bindings: input: cirrus,cs40l50: Add initial DT binding
...
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-28 15:36:02 +01:00
James Ogletree
205fdba5d0
firmware: cs_dsp: Add write sequence interface
...
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-28 15:35:57 +01:00
Matti Vaittinen
fcf1f960a6
MAINTAINERS: Add ROHM BD96801 'scalable PMIC' entries
...
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-27 09:24:45 +01:00
Matti Vaittinen
09dad69757
watchdog: ROHM BD96801 PMIC WDG driver
...
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-27 09:24:45 +01:00
Matti Vaittinen
a9b7ce28fd
regulator: bd96801: ROHM BD96801 PMIC regulators
...
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-27 09:24:44 +01:00
Matti Vaittinen
7276f425b7
mfd: support ROHM BD96801 PMIC core
...
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-27 09:24:44 +01:00
Matti Vaittinen
8b1a39362b
dt-bindings: mfd: bd96801 PMIC core
...
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-27 09:24:44 +01:00
Matti Vaittinen
fd6e053d23
dt-bindings: ROHM BD96801 PMIC regulators
...
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-27 09:24:44 +01:00
Krzysztof Kozlowski
174614d889
dt-bindings: soc: ti: am654-serdes-ctrl: Move to dedicated schema
...
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-27 09:16:36 +01:00
Krzysztof Kozlowski
430ed952ed
dt-bindings: soc: microchip: sparx5-cpu-syscon: Move to dedicated schema
...
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-27 09:15:47 +01:00
Krzysztof Kozlowski
c94ee67abd
dt-bindings: soc: intel: lgm-syscon: Move to dedicated schema
...
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-27 09:14:42 +01:00
Krzysztof Kozlowski
cf87496ba2
dt-bindings: soc: sprd: sc9863a-glbregs: Document SC9863A syscon
...
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-27 09:14:08 +01:00
Krzysztof Kozlowski
7661e68069
dt-bindings: mfd: syscon: Drop hwlocks
...
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-27 09:14:08 +01:00
Peter Griffin
35d6b98c62
soc: samsung: exynos-pmu: update to use of_syscon_register_regmap()
...
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-26 16:47:05 +01:00
Peter Griffin
769cb63166
mfd: syscon: Add of_syscon_register_regmap() API
...
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-26 16:46:50 +01:00
Thomas Weißschuh
b107093f43
mfd: cros_ec: Register LED subdevice
...
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-21 11:41:51 +01:00
Thomas Weißschuh
8d6ce6f3ec
leds: Add ChromeOS EC driver
...
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-21 11:41:46 +01:00
Thomas Weißschuh
493179e692
leds: core: Unexport led_colors[] array
...
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-21 11:41:39 +01:00
Thomas Weißschuh
9cb6de2d2c
leds: multicolor: Use led_get_color_name() function
...
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 >
2024-06-21 11:41:36 +01:00
Thomas Weißschuh
5f2e950755
leds: core: Introduce led_get_color_name() function
...
This is similar to the existing led_colors[] array but is safer to use and
usable by everyone.
Getting string representations of color ids is useful for drivers
which are handling color IDs anyways, for example for the multicolor API.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Link: https://lore.kernel.org/r/20240613-cros_ec-led-v3-1-500b50f41e0f@weissschuh.net
Signed-off-by: Lee Jones <lee@kernel.org >
2024-06-21 11:41:32 +01:00
Thomas Weißschuh
970c3a6b7a
mfd: cros_ec: Register keyboard backlight subdevice
...
Load cros_kbd_led_backlight when the EC reports EC_FEATURE_PWM_KEYB.
This makes cros_kbd_led_backlight work on machines without specific
ACPI or OF support for the keyboard backlight.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Link: https://lore.kernel.org/r/20240526-cros_ec-kbd-led-framework-v3-4-ee577415a521@weissschuh.net
Signed-off-by: Lee Jones <lee@kernel.org >
2024-06-14 10:09:40 +01:00
Thomas Weißschuh
baa19b6507
platform/chrome: cros_kbd_led_backlight: allow binding through MFD
...
The ChromeOS EC used in Framework laptops supports the standard CrOS EC
keyboard backlight protocol.
However the firmware on these laptops doesn't implement the ACPI ID
GOOG0002 that is recognized by cros_kbd_led_backlight and they also
don't use device tree.
Prepare the existing cros_kbd_led_backlight driver to be probed through
the CrOS EC MFD device which works without ACPI or OF support.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Acked-by: Tzung-Bi Shih <tzungbi@kernel.org >
Link: https://lore.kernel.org/r/20240526-cros_ec-kbd-led-framework-v3-3-ee577415a521@weissschuh.net
Signed-off-by: Lee Jones <lee@kernel.org >
2024-06-14 10:09:40 +01:00
Thomas Weißschuh
6b0d3355e5
leds: class: Add flag to avoid automatic renaming of LED devices
...
Add a mechanism for drivers to opt-out of the automatic device renaming
on conflicts.
Those drivers will provide their own conflict resolution.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Link: https://lore.kernel.org/r/20240526-cros_ec-kbd-led-framework-v3-2-ee577415a521@weissschuh.net
Signed-off-by: Lee Jones <lee@kernel.org >
2024-06-14 10:09:40 +01:00
Thomas Weißschuh
bfefbecdea
leds: class: Warn about name collisions earlier
...
Other warnings refer to the name after renaming, which is clearer when
that name is mentioned first.
It is also clearer where "ret" comes from.
While at it, also add the necessary newline to the message and fix the
parameter alignment.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Link: https://lore.kernel.org/r/20240526-cros_ec-kbd-led-framework-v3-1-ee577415a521@weissschuh.net
Signed-off-by: Lee Jones <lee@kernel.org >
2024-06-14 10:09:34 +01:00