* [PATCH v1 03/10] dt-bindings: iio: adc: cpcap-adc: document Mot ADC
From: Svyatoslav Ryhel @ 2026-01-25 13:42 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Svyatoslav Ryhel, Dixit Parmar, Tony Lindgren
Cc: linux-iio, devicetree, linux-kernel, linux-input, linux-leds,
linux-rtc
In-Reply-To: <20260125134302.45958-1-clamor95@gmail.com>
Add compatible for ADC used in Mot board. Separate compatible is required
since ADC in the Mot board uses a unique set of configurations.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
.../devicetree/bindings/iio/adc/motorola,cpcap-adc.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/iio/adc/motorola,cpcap-adc.yaml b/Documentation/devicetree/bindings/iio/adc/motorola,cpcap-adc.yaml
index 9ceb6f18c854..1f77da7f8e06 100644
--- a/Documentation/devicetree/bindings/iio/adc/motorola,cpcap-adc.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/motorola,cpcap-adc.yaml
@@ -19,6 +19,7 @@ properties:
enum:
- motorola,cpcap-adc
- motorola,mapphone-cpcap-adc
+ - motorola,mot-cpcap-adc
interrupts:
maxItems: 1
--
2.51.0
^ permalink raw reply related
* [PATCH v1 04/10] iio: adc: cpcap-adc: add support for Mot ADC
From: Svyatoslav Ryhel @ 2026-01-25 13:42 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Svyatoslav Ryhel, Dixit Parmar, Tony Lindgren
Cc: linux-iio, devicetree, linux-kernel, linux-input, linux-leds,
linux-rtc
In-Reply-To: <20260125134302.45958-1-clamor95@gmail.com>
Add support for ADC found in Motorola Mot board, used as a base for
Atrix 4G and Droid X2 smartphones.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
drivers/iio/adc/cpcap-adc.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/iio/adc/cpcap-adc.c b/drivers/iio/adc/cpcap-adc.c
index d9ee2ea116a7..c25c22a1c03a 100644
--- a/drivers/iio/adc/cpcap-adc.c
+++ b/drivers/iio/adc/cpcap-adc.c
@@ -934,6 +934,17 @@ static const struct cpcap_adc_ato mapphone_adc = {
.atox_ps_factor_out = 0,
};
+static const struct cpcap_adc_ato mot_adc = {
+ .ato_in = 0x0300,
+ .atox_in = 0,
+ .adc_ps_factor_in = 0x0200,
+ .atox_ps_factor_in = 0,
+ .ato_out = 0x0780,
+ .atox_out = 0,
+ .adc_ps_factor_out = 0x0600,
+ .atox_ps_factor_out = 0,
+};
+
static const struct of_device_id cpcap_adc_id_table[] = {
{
.compatible = "motorola,cpcap-adc",
@@ -942,7 +953,11 @@ static const struct of_device_id cpcap_adc_id_table[] = {
.compatible = "motorola,mapphone-cpcap-adc",
.data = &mapphone_adc,
},
- { }
+ {
+ .compatible = "motorola,mot-cpcap-adc",
+ .data = &mot_adc,
+ },
+ { /* sentinel */ },
};
MODULE_DEVICE_TABLE(of, cpcap_adc_id_table);
--
2.51.0
^ permalink raw reply related
* [PATCH v1 05/10] dt-bindings: leds: leds-cpcap: convert to schema
From: Svyatoslav Ryhel @ 2026-01-25 13:42 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Svyatoslav Ryhel, Dixit Parmar, Tony Lindgren
Cc: linux-iio, devicetree, linux-kernel, linux-input, linux-leds,
linux-rtc
In-Reply-To: <20260125134302.45958-1-clamor95@gmail.com>
Convert leds devicetree bindings for the Motorola CPCAP MFD from TXT to
YAML format. This patch does not change any functionality; the bindings
remain the same.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
.../devicetree/bindings/leds/leds-cpcap.txt | 29 -------------
.../bindings/leds/motorola,cpcap-leds.yaml | 42 +++++++++++++++++++
2 files changed, 42 insertions(+), 29 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/leds/leds-cpcap.txt
create mode 100644 Documentation/devicetree/bindings/leds/motorola,cpcap-leds.yaml
diff --git a/Documentation/devicetree/bindings/leds/leds-cpcap.txt b/Documentation/devicetree/bindings/leds/leds-cpcap.txt
deleted file mode 100644
index ebf7cdc7f70c..000000000000
--- a/Documentation/devicetree/bindings/leds/leds-cpcap.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Motorola CPCAP PMIC LEDs
-------------------------
-
-This module is part of the CPCAP. For more details about the whole
-chip see Documentation/devicetree/bindings/mfd/motorola-cpcap.txt.
-
-Requires node properties:
-- compatible: should be one of
- * "motorola,cpcap-led-mdl" (Main Display Lighting)
- * "motorola,cpcap-led-kl" (Keyboard Lighting)
- * "motorola,cpcap-led-adl" (Aux Display Lighting)
- * "motorola,cpcap-led-red" (Red Triode)
- * "motorola,cpcap-led-green" (Green Triode)
- * "motorola,cpcap-led-blue" (Blue Triode)
- * "motorola,cpcap-led-cf" (Camera Flash)
- * "motorola,cpcap-led-bt" (Bluetooth)
- * "motorola,cpcap-led-cp" (Camera Privacy LED)
-- label: see Documentation/devicetree/bindings/leds/common.txt
-- vdd-supply: A phandle to the regulator powering the LED
-
-Example:
-
-&cpcap {
- cpcap_led_red: red-led {
- compatible = "motorola,cpcap-led-red";
- label = "cpcap:red";
- vdd-supply = <&sw5>;
- };
-};
diff --git a/Documentation/devicetree/bindings/leds/motorola,cpcap-leds.yaml b/Documentation/devicetree/bindings/leds/motorola,cpcap-leds.yaml
new file mode 100644
index 000000000000..8dfc98a1ef99
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/motorola,cpcap-leds.yaml
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/motorola,cpcap-leds.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Motorola CPCAP PMIC leds
+
+maintainers:
+ - Svyatoslav Ryhel <clamor95@gmail.com>
+
+description:
+ This module is part of the Motorola CPCAP MFD device. For more details
+ see Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml. Leds are
+ represented as sub-nodes of the PMIC node on the device tree.
+
+allOf:
+ - $ref: /schemas/leds/common.yaml#
+
+properties:
+ compatible:
+ enum:
+ - motorola,cpcap-led-adl # Display Lighting
+ - motorola,cpcap-led-blue # Blue Triode
+ - motorola,cpcap-led-bt # Bluetooth
+ - motorola,cpcap-led-cf # Camera Flash
+ - motorola,cpcap-led-cp # Camera Privacy LED
+ - motorola,cpcap-led-green # Green Triode
+ - motorola,cpcap-led-kl # Keyboard Lighting
+ - motorola,cpcap-led-mdl # Main Display Lighting
+ - motorola,cpcap-led-red # Red Triode
+
+ vdd-supply: true
+
+required:
+ - compatible
+ - label
+ - vdd-supply
+
+unevaluatedProperties: false
+
+...
--
2.51.0
^ permalink raw reply related
* [PATCH v1 09/10] mfd: motorola-cpcap: diverge configuration per-board
From: Svyatoslav Ryhel @ 2026-01-25 13:43 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Svyatoslav Ryhel, Dixit Parmar, Tony Lindgren
Cc: linux-iio, devicetree, linux-kernel, linux-input, linux-leds,
linux-rtc
In-Reply-To: <20260125134302.45958-1-clamor95@gmail.com>
MFD have rigid subdevice structure which does not allow flexible dynamic
subdevice linking. Address this by diverging CPCAP subdevice composition
to take into account board specific configuration.
Create a common default subdevice composition, rename existing subdevice
composition into cpcap_mapphone_mfd_devices since it targets mainly
Mapphone board.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
drivers/mfd/motorola-cpcap.c | 89 +++++++++++++++++++++++++++++++-----
1 file changed, 78 insertions(+), 11 deletions(-)
diff --git a/drivers/mfd/motorola-cpcap.c b/drivers/mfd/motorola-cpcap.c
index d8243b956f87..ebe525153c33 100644
--- a/drivers/mfd/motorola-cpcap.c
+++ b/drivers/mfd/motorola-cpcap.c
@@ -12,6 +12,7 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
+#include <linux/of.h>
#include <linux/regmap.h>
#include <linux/sysfs.h>
@@ -24,10 +25,16 @@
#define CPCAP_REGISTER_SIZE 4
#define CPCAP_REGISTER_BITS 16
+struct cpcap_chip_data {
+ const struct mfd_cell *mfd_devices;
+ unsigned int num_devices;
+};
+
struct cpcap_ddata {
struct spi_device *spi;
struct regmap_irq *irqs;
struct regmap_irq_chip_data *irqdata[CPCAP_NR_IRQ_CHIPS];
+ const struct cpcap_chip_data *cdata;
const struct regmap_config *regmap_conf;
struct regmap *regmap;
};
@@ -195,16 +202,10 @@ static int cpcap_init_irq(struct cpcap_ddata *cpcap)
return 0;
}
-static const struct of_device_id cpcap_of_match[] = {
- { .compatible = "motorola,cpcap", },
- { .compatible = "st,6556002", },
- {},
-};
-MODULE_DEVICE_TABLE(of, cpcap_of_match);
-
static const struct spi_device_id cpcap_spi_ids[] = {
{ .name = "cpcap", },
{ .name = "6556002", },
+ { .name = "mapphone-cpcap", },
{},
};
MODULE_DEVICE_TABLE(spi, cpcap_spi_ids);
@@ -241,7 +242,56 @@ static int cpcap_resume(struct device *dev)
static DEFINE_SIMPLE_DEV_PM_OPS(cpcap_pm, cpcap_suspend, cpcap_resume);
-static const struct mfd_cell cpcap_mfd_devices[] = {
+static const struct mfd_cell cpcap_default_mfd_devices[] = {
+ {
+ .name = "cpcap_adc",
+ .of_compatible = "motorola,cpcap-adc",
+ }, {
+ .name = "cpcap_battery",
+ .of_compatible = "motorola,cpcap-battery",
+ }, {
+ .name = "cpcap-regulator",
+ .of_compatible = "motorola,cpcap-regulator",
+ }, {
+ .name = "cpcap-rtc",
+ .of_compatible = "motorola,cpcap-rtc",
+ }, {
+ .name = "cpcap-pwrbutton",
+ .of_compatible = "motorola,cpcap-pwrbutton",
+ }, {
+ .name = "cpcap-usb-phy",
+ .of_compatible = "motorola,cpcap-usb-phy",
+ }, {
+ .name = "cpcap-led",
+ .id = 0,
+ .of_compatible = "motorola,cpcap-led-red",
+ }, {
+ .name = "cpcap-led",
+ .id = 1,
+ .of_compatible = "motorola,cpcap-led-green",
+ }, {
+ .name = "cpcap-led",
+ .id = 2,
+ .of_compatible = "motorola,cpcap-led-blue",
+ }, {
+ .name = "cpcap-led",
+ .id = 3,
+ .of_compatible = "motorola,cpcap-led-adl",
+ }, {
+ .name = "cpcap-led",
+ .id = 4,
+ .of_compatible = "motorola,cpcap-led-cp",
+ }, {
+ .name = "cpcap-codec",
+ },
+};
+
+static const struct cpcap_chip_data cpcap_default_data = {
+ .mfd_devices = cpcap_default_mfd_devices,
+ .num_devices = ARRAY_SIZE(cpcap_default_mfd_devices),
+};
+
+static const struct mfd_cell cpcap_mapphone_mfd_devices[] = {
{
.name = "cpcap_adc",
.of_compatible = "motorola,mapphone-cpcap-adc",
@@ -285,7 +335,12 @@ static const struct mfd_cell cpcap_mfd_devices[] = {
.of_compatible = "motorola,cpcap-led-cp",
}, {
.name = "cpcap-codec",
- }
+ },
+};
+
+static const struct cpcap_chip_data cpcap_mapphone_data = {
+ .mfd_devices = cpcap_mapphone_mfd_devices,
+ .num_devices = ARRAY_SIZE(cpcap_mapphone_mfd_devices),
};
static int cpcap_probe(struct spi_device *spi)
@@ -297,6 +352,10 @@ static int cpcap_probe(struct spi_device *spi)
if (!cpcap)
return -ENOMEM;
+ cpcap->cdata = of_device_get_match_data(&spi->dev);
+ if (!cpcap->cdata)
+ return -ENODEV;
+
cpcap->spi = spi;
spi_set_drvdata(spi, cpcap);
@@ -331,10 +390,18 @@ static int cpcap_probe(struct spi_device *spi)
spi->dev.coherent_dma_mask = 0;
spi->dev.dma_mask = &spi->dev.coherent_dma_mask;
- return devm_mfd_add_devices(&spi->dev, 0, cpcap_mfd_devices,
- ARRAY_SIZE(cpcap_mfd_devices), NULL, 0, NULL);
+ return devm_mfd_add_devices(&spi->dev, 0, cpcap->cdata->mfd_devices,
+ cpcap->cdata->num_devices, NULL, 0, NULL);
}
+static const struct of_device_id cpcap_of_match[] = {
+ { .compatible = "motorola,cpcap", .data = &cpcap_default_data },
+ { .compatible = "st,6556002", .data = &cpcap_default_data },
+ { .compatible = "motorola,mapphone-cpcap", .data = &cpcap_mapphone_data },
+ { /* sentinel */ },
+};
+MODULE_DEVICE_TABLE(of, cpcap_of_match);
+
static struct spi_driver cpcap_driver = {
.driver = {
.name = "cpcap-core",
--
2.51.0
^ permalink raw reply related
* [PATCH v1 10/10] mfd: motorola-cpcap: add support for Mot CPCAP composition
From: Svyatoslav Ryhel @ 2026-01-25 13:43 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Svyatoslav Ryhel, Dixit Parmar, Tony Lindgren
Cc: linux-iio, devicetree, linux-kernel, linux-input, linux-leds,
linux-rtc
In-Reply-To: <20260125134302.45958-1-clamor95@gmail.com>
Add a MFD subdevice composition used in Tegra20 based Mot board
(Motorola Atrix 4G and Droid X2).
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
drivers/mfd/motorola-cpcap.c | 45 ++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/drivers/mfd/motorola-cpcap.c b/drivers/mfd/motorola-cpcap.c
index ebe525153c33..c475eef30f22 100644
--- a/drivers/mfd/motorola-cpcap.c
+++ b/drivers/mfd/motorola-cpcap.c
@@ -206,6 +206,7 @@ static const struct spi_device_id cpcap_spi_ids[] = {
{ .name = "cpcap", },
{ .name = "6556002", },
{ .name = "mapphone-cpcap", },
+ { .name = "mot-cpcap", },
{},
};
MODULE_DEVICE_TABLE(spi, cpcap_spi_ids);
@@ -343,6 +344,49 @@ static const struct cpcap_chip_data cpcap_mapphone_data = {
.num_devices = ARRAY_SIZE(cpcap_mapphone_mfd_devices),
};
+/*
+ * Mot has usb-phy and charger similar to one in mapphone, but
+ * since Mot is based on Tegra20 it is incompatible with existing
+ * implementation.
+ */
+static const struct mfd_cell cpcap_mot_mfd_devices[] = {
+ {
+ .name = "cpcap_adc",
+ .of_compatible = "motorola,mot-cpcap-adc",
+ }, {
+ .name = "cpcap_battery",
+ .of_compatible = "motorola,cpcap-battery",
+ }, {
+ .name = "cpcap-regulator",
+ .of_compatible = "motorola,mot-cpcap-regulator",
+ }, {
+ .name = "cpcap-rtc",
+ .of_compatible = "motorola,cpcap-rtc",
+ }, {
+ .name = "cpcap-pwrbutton",
+ .of_compatible = "motorola,cpcap-pwrbutton",
+ }, {
+ .name = "cpcap-led",
+ .id = 0,
+ .of_compatible = "motorola,cpcap-led-red",
+ }, {
+ .name = "cpcap-led",
+ .id = 1,
+ .of_compatible = "motorola,cpcap-led-green",
+ }, {
+ .name = "cpcap-led",
+ .id = 2,
+ .of_compatible = "motorola,cpcap-led-blue",
+ }, {
+ .name = "cpcap-codec",
+ },
+};
+
+static const struct cpcap_chip_data cpcap_mot_data = {
+ .mfd_devices = cpcap_mot_mfd_devices,
+ .num_devices = ARRAY_SIZE(cpcap_mot_mfd_devices),
+};
+
static int cpcap_probe(struct spi_device *spi)
{
struct cpcap_ddata *cpcap;
@@ -398,6 +442,7 @@ static const struct of_device_id cpcap_of_match[] = {
{ .compatible = "motorola,cpcap", .data = &cpcap_default_data },
{ .compatible = "st,6556002", .data = &cpcap_default_data },
{ .compatible = "motorola,mapphone-cpcap", .data = &cpcap_mapphone_data },
+ { .compatible = "motorola,mot-cpcap", .data = &cpcap_mot_data },
{ /* sentinel */ },
};
MODULE_DEVICE_TABLE(of, cpcap_of_match);
--
2.51.0
^ permalink raw reply related
* [PATCH v1 08/10] dt-bindings: mfg: motorola-cpcap: convert to schema
From: Svyatoslav Ryhel @ 2026-01-25 13:43 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Svyatoslav Ryhel, Dixit Parmar, Tony Lindgren
Cc: linux-iio, devicetree, linux-kernel, linux-input, linux-leds,
linux-rtc
In-Reply-To: <20260125134302.45958-1-clamor95@gmail.com>
Convert devicetree bindings for the Motorola CPCAP MFD from TXT to YAML.
Audio codec bindings adjusted with common ports node for port@0 and
port@1. Added compatible for Mot board CPCAP. Other bindings remain the
same.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
.../bindings/mfd/motorola,cpcap.yaml | 389 ++++++++++++++++++
.../bindings/mfd/motorola-cpcap.txt | 78 ----
2 files changed, 389 insertions(+), 78 deletions(-)
create mode 100644 Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/motorola-cpcap.txt
diff --git a/Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml b/Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
new file mode 100644
index 000000000000..f75f884c7b3e
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
@@ -0,0 +1,389 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/motorola,cpcap.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Motorola CPCAP PMIC MFD
+
+maintainers:
+ - Svyatoslav Ryhel <clamor95@gmail.com>
+
+allOf:
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+ compatible:
+ enum:
+ - motorola,cpcap
+ - st,6556002
+ - motorola,mapphone-cpcap
+ - motorola,mot-cpcap
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ interrupt-controller: true
+
+ "#interrupt-cells":
+ const: 2
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ spi-max-frequency:
+ maximum: 8000000
+
+ spi-cs-high: true
+
+ adc:
+ $ref: /schemas/iio/adc/motorola,cpcap-adc.yaml
+
+ audio-codec:
+ type: object
+
+ properties:
+ interrupts:
+ items:
+ - description: headset detect interrupt
+ - description: microphone bias 2 detect interrupt
+
+ interrupt-names:
+ items:
+ - const: hs
+ - const: mb2
+
+ "#sound-dai-cells":
+ const: 1
+
+ ports:
+ $ref: /schemas/graph.yaml#/properties/ports
+ description: The audio-codec provides two DAIs. The first one is
+ connected to the Stereo HiFi DAC and the second one is connected
+ to the Voice DAC.
+
+ required:
+ - interrupts
+ - interrupt-names
+ - "#sound-dai-cells"
+
+ battery:
+ $ref: /schemas/power/supply/cpcap-battery.yaml
+
+ charger:
+ $ref: /schemas/power/supply/cpcap-charger.yaml
+
+ key-power:
+ $ref: /schemas/input/motorola,cpcap-pwrbutton.yaml
+
+ phy:
+ $ref: /schemas/phy/motorola,cpcap-usb-phy.yaml
+
+ regulator:
+ $ref: /schemas/regulator/motorola,cpcap-regulator.yaml
+
+ rtc:
+ $ref: /schemas/rtc/motorola,cpcap-rtc.yaml
+
+patternProperties:
+ "^led(-[a-z]+)?$":
+ $ref: /schemas/leds/motorola,cpcap-leds.yaml
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - "#address-cells"
+ - "#size-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/input/linux-event-codes.h>
+
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpcap: pmic@0 {
+ compatible = "motorola,cpcap";
+ reg = <0>; /* cs0 */
+
+ interrupt-parent = <&gpio1>;
+ interrupts = <7 IRQ_TYPE_EDGE_RISING>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ spi-max-frequency = <3000000>;
+ spi-cs-high;
+
+ cpcap_adc: adc {
+ compatible = "motorola,cpcap-adc";
+
+ interrupt-parent = <&cpcap>;
+ interrupts = <8 IRQ_TYPE_NONE>;
+ interrupt-names = "adcdone";
+
+ #io-channel-cells = <1>;
+ };
+
+ cpcap_audio: audio-codec {
+ interrupt-parent = <&cpcap>;
+ interrupts = <9 IRQ_TYPE_NONE>, <10 IRQ_TYPE_NONE>;
+ interrupt-names = "hs", "mb2";
+
+ #sound-dai-cells = <1>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* HiFi */
+ port@0 {
+ reg = <0>;
+ cpcap_audio_codec0: endpoint {
+ };
+ };
+
+ /* Voice */
+ port@1 {
+ reg = <1>;
+ cpcap_audio_codec1: endpoint {
+ };
+ };
+ };
+ };
+
+ cpcap_battery: battery {
+ compatible = "motorola,cpcap-battery";
+
+ interrupt-parent = <&cpcap>;
+ interrupts = <6 IRQ_TYPE_NONE>, <5 IRQ_TYPE_NONE>,
+ <3 IRQ_TYPE_NONE>, <20 IRQ_TYPE_NONE>,
+ <54 IRQ_TYPE_NONE>, <57 IRQ_TYPE_NONE>;
+ interrupt-names = "eol", "lowbph", "lowbpl",
+ "chrgcurr1", "battdetb", "cccal";
+
+ io-channels = <&cpcap_adc 0>, <&cpcap_adc 1>,
+ <&cpcap_adc 5>, <&cpcap_adc 6>;
+ io-channel-names = "battdetb", "battp",
+ "chg_isense", "batti";
+ power-supplies = <&cpcap_charger>;
+ };
+
+ cpcap_charger: charger {
+ compatible = "motorola,mapphone-cpcap-charger";
+
+ interrupt-parent = <&cpcap>;
+ interrupts = <13 IRQ_TYPE_NONE>, <12 IRQ_TYPE_NONE>,
+ <29 IRQ_TYPE_NONE>, <28 IRQ_TYPE_NONE>,
+ <22 IRQ_TYPE_NONE>, <21 IRQ_TYPE_NONE>,
+ <20 IRQ_TYPE_NONE>, <19 IRQ_TYPE_NONE>,
+ <54 IRQ_TYPE_NONE>;
+ interrupt-names = "chrg_det", "rvrs_chrg", "chrg_se1b",
+ "se0conn", "rvrs_mode", "chrgcurr2",
+ "chrgcurr1", "vbusvld", "battdetb";
+
+ mode-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>,
+ <&gpio3 23 GPIO_ACTIVE_LOW>;
+
+ io-channels = <&cpcap_adc 0>, <&cpcap_adc 1>,
+ <&cpcap_adc 2>, <&cpcap_adc 5>,
+ <&cpcap_adc 6>;
+ io-channel-names = "battdetb", "battp",
+ "vbus", "chg_isense",
+ "batti";
+ };
+
+ key-power {
+ compatible = "motorola,cpcap-pwrbutton";
+
+ interrupt-parent = <&cpcap>;
+ interrupts = <23 IRQ_TYPE_NONE>;
+ };
+
+ led-red {
+ compatible = "motorola,cpcap-led-red";
+ vdd-supply = <&vdd_led>;
+ label = "status-led::red";
+ };
+
+ led-green {
+ compatible = "motorola,cpcap-led-green";
+ vdd-supply = <&vdd_led>;
+ label = "status-led::green";
+ };
+
+ led-blue {
+ compatible = "motorola,cpcap-led-blue";
+ vdd-supply = <&vdd_led>;
+ label = "status-led::blue";
+ };
+
+ cpcap_usb2_phy: phy {
+ compatible = "motorola,mapphone-cpcap-usb-phy";
+
+ pinctrl-0 = <&usb_gpio_mux_sel1>, <&usb_gpio_mux_sel2>;
+ pinctrl-1 = <&usb_ulpi_pins>;
+ pinctrl-2 = <&usb_utmi_pins>;
+ pinctrl-3 = <&uart3_pins>;
+ pinctrl-names = "default", "ulpi", "utmi", "uart";
+ #phy-cells = <0>;
+
+ interrupts-extended =
+ <&cpcap 15 IRQ_TYPE_NONE>, <&cpcap 14 IRQ_TYPE_NONE>,
+ <&cpcap 28 IRQ_TYPE_NONE>, <&cpcap 19 IRQ_TYPE_NONE>,
+ <&cpcap 18 IRQ_TYPE_NONE>, <&cpcap 17 IRQ_TYPE_NONE>,
+ <&cpcap 16 IRQ_TYPE_NONE>, <&cpcap 49 IRQ_TYPE_NONE>,
+ <&cpcap 48 IRQ_TYPE_NONE>;
+ interrupt-names = "id_ground", "id_float", "se0conn",
+ "vbusvld", "sessvld", "sessend",
+ "se1", "dm", "dp";
+
+ mode-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>,
+ <&gpio1 0 GPIO_ACTIVE_HIGH>;
+
+ io-channels = <&cpcap_adc 2>, <&cpcap_adc 7>;
+ io-channel-names = "vbus", "id";
+
+ vusb-supply = <&avdd_usb>;
+ };
+
+ regulator {
+ compatible = "motorola,cpcap-regulator";
+
+ regulators {
+ vdd_cpu: SW1 {
+ regulator-name = "vdd_cpu";
+ regulator-min-microvolt = <750000>;
+ regulator-max-microvolt = <1125000>;
+ regulator-enable-ramp-delay = <1500>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vdd_core: SW2 {
+ regulator-name = "vdd_core";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-enable-ramp-delay = <1500>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vdd_1v8_vio: SW3 {
+ regulator-name = "vdd_1v8_vio";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-enable-ramp-delay = <0>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vdd_aon: SW4 {
+ regulator-name = "vdd_aon";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-enable-ramp-delay = <1500>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vdd_led: SW5 {
+ regulator-name = "vdd_led";
+ regulator-min-microvolt = <5050000>;
+ regulator-max-microvolt = <5050000>;
+ regulator-enable-ramp-delay = <1500>;
+ regulator-boot-on;
+ };
+
+ vdd_hvio: VHVIO {
+ regulator-name = "vdd_hvio";
+ regulator-min-microvolt = <2775000>;
+ regulator-max-microvolt = <2775000>;
+ regulator-enable-ramp-delay = <1000>;
+ };
+
+ vcore_emmc: VSDIO {
+ regulator-name = "vcore_emmc";
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-enable-ramp-delay = <1000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ avdd_dsi_csi: VCSI {
+ regulator-name = "avdd_dsi_csi";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-enable-ramp-delay = <1000>;
+ regulator-boot-on;
+ };
+
+ avdd_3v3_periph: VWLAN2 {
+ regulator-name = "avdd_3v3_periph";
+ regulator-min-microvolt = <2775000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-enable-ramp-delay = <1000>;
+ regulator-boot-on;
+ };
+
+ vddio_usd: VSIMCARD {
+ regulator-name = "vddio_usd";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2900000>;
+ regulator-enable-ramp-delay = <1000>;
+ regulator-boot-on;
+ };
+
+ vdd_haptic: VVIB {
+ regulator-name = "vdd_haptic";
+ regulator-min-microvolt = <1300000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-enable-ramp-delay = <1000>;
+ };
+
+ avdd_usb: VUSB {
+ regulator-name = "avdd_usb";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-enable-ramp-delay = <1000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ VAUDIO {
+ regulator-name = "vdd_audio";
+ regulator-min-microvolt = <2775000>;
+ regulator-max-microvolt = <2775000>;
+ regulator-enable-ramp-delay = <1000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+ };
+ };
+
+ cpcap_rtc: rtc {
+ compatible = "motorola,cpcap-rtc";
+
+ interrupt-parent = <&cpcap>;
+ interrupts = <39 IRQ_TYPE_NONE>, <26 IRQ_TYPE_NONE>;
+ };
+ };
+ };
+
+...
diff --git a/Documentation/devicetree/bindings/mfd/motorola-cpcap.txt b/Documentation/devicetree/bindings/mfd/motorola-cpcap.txt
deleted file mode 100644
index 18c3fc26ca93..000000000000
--- a/Documentation/devicetree/bindings/mfd/motorola-cpcap.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-Motorola CPCAP PMIC device tree binding
-
-Required properties:
-- compatible : One or both of "motorola,cpcap" or "ste,6556002"
-- reg : SPI chip select
-- interrupts : The interrupt line the device is connected to
-- interrupt-controller : Marks the device node as an interrupt controller
-- #interrupt-cells : The number of cells to describe an IRQ, should be 2
-- #address-cells : Child device offset number of cells, should be 1
-- #size-cells : Child device size number of cells, should be 0
-- spi-max-frequency : Typically set to 3000000
-- spi-cs-high : SPI chip select direction
-
-Optional subnodes:
-
-The sub-functions of CPCAP get their own node with their own compatible values,
-which are described in the following files:
-
-- Documentation/devicetree/bindings/power/supply/cpcap-battery.yaml
-- Documentation/devicetree/bindings/power/supply/cpcap-charger.yaml
-- Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
-- Documentation/devicetree/bindings/phy/motorola,cpcap-usb-phy.yaml
-- Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
-- Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
-- Documentation/devicetree/bindings/leds/leds-cpcap.txt
-- Documentation/devicetree/bindings/iio/adc/motorola,cpcap-adc.yaml
-
-The only exception is the audio codec. Instead of a compatible value its
-node must be named "audio-codec".
-
-Required properties for the audio-codec subnode:
-
-- #sound-dai-cells = <1>;
-- interrupts : should contain jack detection interrupts, with headset
- detect interrupt matching "hs" and microphone bias 2
- detect interrupt matching "mb2" in interrupt-names.
-- interrupt-names : Contains "hs", "mb2"
-
-The audio-codec provides two DAIs. The first one is connected to the
-Stereo HiFi DAC and the second one is connected to the Voice DAC.
-
-Example:
-
-&mcspi1 {
- cpcap: pmic@0 {
- compatible = "motorola,cpcap", "ste,6556002";
- reg = <0>; /* cs0 */
- interrupt-parent = <&gpio1>;
- interrupts = <7 IRQ_TYPE_EDGE_RISING>;
- interrupt-controller;
- #interrupt-cells = <2>;
- #address-cells = <1>;
- #size-cells = <0>;
- spi-max-frequency = <3000000>;
- spi-cs-high;
-
- audio-codec {
- #sound-dai-cells = <1>;
- interrupts-extended = <&cpcap 9 0>, <&cpcap 10 0>;
- interrupt-names = "hs", "mb2";
-
- /* HiFi */
- port@0 {
- endpoint {
- remote-endpoint = <&cpu_dai1>;
- };
- };
-
- /* Voice */
- port@1 {
- endpoint {
- remote-endpoint = <&cpu_dai2>;
- };
- };
- };
- };
-};
-
--
2.51.0
^ permalink raw reply related
* [PATCH v1 07/10] dt-bindings: input: cpcap-pwrbutton: convert to schema
From: Svyatoslav Ryhel @ 2026-01-25 13:42 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Svyatoslav Ryhel, Dixit Parmar, Tony Lindgren
Cc: linux-iio, devicetree, linux-kernel, linux-input, linux-leds,
linux-rtc
In-Reply-To: <20260125134302.45958-1-clamor95@gmail.com>
Convert power button devicetree bindings for the Motorola CPCAP MFD from
TXT to YAML format. This patch does not change any functionality; the
bindings remain the same.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
.../bindings/input/cpcap-pwrbutton.txt | 20 ------------
.../input/motorola,cpcap-pwrbutton.yaml | 32 +++++++++++++++++++
2 files changed, 32 insertions(+), 20 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
create mode 100644 Documentation/devicetree/bindings/input/motorola,cpcap-pwrbutton.yaml
diff --git a/Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt b/Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
deleted file mode 100644
index 0dd0076daf71..000000000000
--- a/Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Motorola CPCAP on key
-
-This module is part of the CPCAP. For more details about the whole
-chip see Documentation/devicetree/bindings/mfd/motorola-cpcap.txt.
-
-This module provides a simple power button event via an Interrupt.
-
-Required properties:
-- compatible: should be one of the following
- - "motorola,cpcap-pwrbutton"
-- interrupts: irq specifier for CPCAP's ON IRQ
-
-Example:
-
-&cpcap {
- cpcap_pwrbutton: pwrbutton {
- compatible = "motorola,cpcap-pwrbutton";
- interrupts = <23 IRQ_TYPE_NONE>;
- };
-};
diff --git a/Documentation/devicetree/bindings/input/motorola,cpcap-pwrbutton.yaml b/Documentation/devicetree/bindings/input/motorola,cpcap-pwrbutton.yaml
new file mode 100644
index 000000000000..643f6b2b1f13
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/motorola,cpcap-pwrbutton.yaml
@@ -0,0 +1,32 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/motorola,cpcap-pwrbutton.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Motorola CPCAP PMIC power key
+
+maintainers:
+ - Svyatoslav Ryhel <clamor95@gmail.com>
+
+description:
+ This module is part of the Motorola CPCAP MFD device. For more details
+ see Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml. The
+ power key is represented as a sub-node of the PMIC node on the device
+ tree.
+
+properties:
+ compatible:
+ const: motorola,cpcap-pwrbutton
+
+ interrupts:
+ minItems: 1
+ description: CPCAP's ON interrupt
+
+required:
+ - compatible
+ - interrupts
+
+additionalProperties: false
+
+...
--
2.51.0
^ permalink raw reply related
* [PATCH v1 06/10] dt-bindings: rtc: cpcap-rtc: convert to schema
From: Svyatoslav Ryhel @ 2026-01-25 13:42 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Svyatoslav Ryhel, Dixit Parmar, Tony Lindgren
Cc: linux-iio, devicetree, linux-kernel, linux-input, linux-leds,
linux-rtc
In-Reply-To: <20260125134302.45958-1-clamor95@gmail.com>
Convert RTC devicetree bindings for the Motorola CPCAP MFD from TXT to
YAML format. This patch does not change any functionality; the bindings
remain the same.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
.../devicetree/bindings/rtc/cpcap-rtc.txt | 18 -----------
.../bindings/rtc/motorola,cpcap-rtc.yaml | 32 +++++++++++++++++++
2 files changed, 32 insertions(+), 18 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
create mode 100644 Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml
diff --git a/Documentation/devicetree/bindings/rtc/cpcap-rtc.txt b/Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
deleted file mode 100644
index 45750ff3112d..000000000000
--- a/Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Motorola CPCAP PMIC RTC
------------------------
-
-This module is part of the CPCAP. For more details about the whole
-chip see Documentation/devicetree/bindings/mfd/motorola-cpcap.txt.
-
-Requires node properties:
-- compatible: should contain "motorola,cpcap-rtc"
-- interrupts: An interrupt specifier for alarm and 1 Hz irq
-
-Example:
-
-&cpcap {
- cpcap_rtc: rtc {
- compatible = "motorola,cpcap-rtc";
- interrupts = <39 IRQ_TYPE_NONE>, <26 IRQ_TYPE_NONE>;
- };
-};
diff --git a/Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml b/Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml
new file mode 100644
index 000000000000..bf2efd432a23
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml
@@ -0,0 +1,32 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/motorola,cpcap-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Motorola CPCAP PMIC RTC
+
+maintainers:
+ - Svyatoslav Ryhel <clamor95@gmail.com>
+
+description:
+ This module is part of the Motorola CPCAP MFD device. For more details
+ see Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml. The
+ RTC is represented as a sub-node of the PMIC node on the device tree.
+
+properties:
+ compatible:
+ const: motorola,cpcap-rtc
+
+ interrupts:
+ items:
+ - description: alarm interrupt
+ - description: 1 Hz interrupt
+
+required:
+ - compatible
+ - interrupts
+
+additionalProperties: false
+
+...
--
2.51.0
^ permalink raw reply related
* [PATCH v1 01/10] dt-bindings: regulator: cpcap-regulator: convert to schema
From: Svyatoslav Ryhel @ 2026-01-25 13:42 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Svyatoslav Ryhel, Dixit Parmar, Tony Lindgren
Cc: linux-iio, devicetree, linux-kernel, linux-input, linux-leds,
linux-rtc
In-Reply-To: <20260125134302.45958-1-clamor95@gmail.com>
Convert devicetree bindings for the Motorola CPCAP MFD regulator subnode
from TXT to YAML format. Main functionality preserved and added compatible
for CPCAP regulator set found in the Mot board.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
.../bindings/regulator/cpcap-regulator.txt | 35 -------------
.../regulator/motorola,cpcap-regulator.yaml | 51 +++++++++++++++++++
2 files changed, 51 insertions(+), 35 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
create mode 100644 Documentation/devicetree/bindings/regulator/motorola,cpcap-regulator.yaml
diff --git a/Documentation/devicetree/bindings/regulator/cpcap-regulator.txt b/Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
deleted file mode 100644
index 36f5e2f5cc0f..000000000000
--- a/Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Motorola CPCAP PMIC voltage regulators
-------------------------------------
-
-Requires node properties:
-- "compatible" value one of:
- "motorola,cpcap-regulator"
- "motorola,mapphone-cpcap-regulator"
- "motorola,xoom-cpcap-regulator"
-
-Required regulator properties:
-- "regulator-name"
-- "regulator-enable-ramp-delay"
-- "regulator-min-microvolt"
-- "regulator-max-microvolt"
-
-Optional regulator properties:
-- "regulator-boot-on"
-
-See Documentation/devicetree/bindings/regulator/regulator.txt
-for more details about the regulator properties.
-
-Example:
-
-cpcap_regulator: regulator {
- compatible = "motorola,cpcap-regulator";
-
- cpcap_regulators: regulators {
- sw5: SW5 {
- regulator-min-microvolt = <5050000>;
- regulator-max-microvolt = <5050000>;
- regulator-enable-ramp-delay = <50000>;
- regulator-boot-on;
- };
- };
-};
diff --git a/Documentation/devicetree/bindings/regulator/motorola,cpcap-regulator.yaml b/Documentation/devicetree/bindings/regulator/motorola,cpcap-regulator.yaml
new file mode 100644
index 000000000000..b73d32a86904
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/motorola,cpcap-regulator.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/motorola,cpcap-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Motorola CPCAP PMIC regulators
+
+maintainers:
+ - Svyatoslav Ryhel <clamor95@gmail.com>
+
+description:
+ This module is part of the Motorola CPCAP MFD device. For more details
+ see Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml. The
+ regulator controller is represented as a sub-node of the PMIC node
+ on the device tree.
+
+properties:
+ compatible:
+ enum:
+ - motorola,cpcap-regulator
+ - motorola,mapphone-cpcap-regulator
+ - motorola,mot-cpcap-regulator
+ - motorola,xoom-cpcap-regulator
+
+ regulators:
+ type: object
+
+ patternProperties:
+ "$[A-Z0-9]+^":
+ $ref: /schemas/regulator/regulator.yaml#
+ type: object
+ description:
+ Valid regulator names are SW1, SW2, SW3, SW4, SW5, VCAM, VCSI,
+ VDAC, VDIG, VFUSE, VHVIO, VSDIO, VPLL, VRF1, VRF2, VRFREF, VWLAN1,
+ VWLAN2, VSIM, VSIMCARD, VVIB, VUSB, VAUDIO
+
+ required:
+ - regulator-name
+ - regulator-enable-ramp-delay
+ - regulator-min-microvolt
+ - regulator-max-microvolt
+
+ unevaluatedProperties: false
+
+required:
+ - compatible
+
+additionalProperties: false
+
+...
--
2.51.0
^ permalink raw reply related
* Re: [PATCH v1 06/10] dt-bindings: rtc: cpcap-rtc: convert to schema
From: Rob Herring (Arm) @ 2026-01-25 16:28 UTC (permalink / raw)
To: Svyatoslav Ryhel
Cc: linux-input, Mark Brown, Krzysztof Kozlowski, linux-iio,
Nuno Sá, Liam Girdwood, linux-kernel, Alexandre Belloni,
devicetree, Conor Dooley, Jonathan Cameron, David Lechner,
Dmitry Torokhov, linux-leds, Dixit Parmar, linux-rtc,
Tony Lindgren, Lee Jones, Andy Shevchenko, Pavel Machek
In-Reply-To: <20260125134302.45958-7-clamor95@gmail.com>
On Sun, 25 Jan 2026 15:42:58 +0200, Svyatoslav Ryhel wrote:
> Convert RTC devicetree bindings for the Motorola CPCAP MFD from TXT to
> YAML format. This patch does not change any functionality; the bindings
> remain the same.
>
> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
> ---
> .../devicetree/bindings/rtc/cpcap-rtc.txt | 18 -----------
> .../bindings/rtc/motorola,cpcap-rtc.yaml | 32 +++++++++++++++++++
> 2 files changed, 32 insertions(+), 18 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
> create mode 100644 Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
doc reference errors (make refcheckdocs):
Warning: Documentation/devicetree/bindings/leds/motorola,cpcap-leds.yaml references a file that doesn't exist: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Warning: Documentation/devicetree/bindings/mfd/motorola-cpcap.txt references a file that doesn't exist: Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
Warning: Documentation/devicetree/bindings/mfd/motorola-cpcap.txt references a file that doesn't exist: Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
Warning: Documentation/devicetree/bindings/mfd/motorola-cpcap.txt references a file that doesn't exist: Documentation/devicetree/bindings/leds/leds-cpcap.txt
Warning: Documentation/devicetree/bindings/regulator/motorola,cpcap-regulator.yaml references a file that doesn't exist: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Warning: Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml references a file that doesn't exist: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Documentation/devicetree/bindings/leds/motorola,cpcap-leds.yaml: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Documentation/devicetree/bindings/mfd/motorola-cpcap.txt: Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
Documentation/devicetree/bindings/mfd/motorola-cpcap.txt: Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
Documentation/devicetree/bindings/mfd/motorola-cpcap.txt: Documentation/devicetree/bindings/leds/leds-cpcap.txt
Documentation/devicetree/bindings/regulator/motorola,cpcap-regulator.yaml: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
See https://patchwork.kernel.org/project/devicetree/patch/20260125134302.45958-7-clamor95@gmail.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
^ permalink raw reply
* Re: bcm5974 trackpad broken after USB reset
From: Liam Mitchell @ 2026-01-25 16:29 UTC (permalink / raw)
To: Henrik Rydberg; +Cc: linux-input, Henrik Rydberg
In-Reply-To: <c2f1a90e-d6cb-480e-8f11-240b231adc84@bitmath.se>
On Sun, 18 Jan 2026 at 17:14, Henrik Rydberg <rydberg@bitmath.se> wrote:
> I am wondering if we do the wrong thing with the controls... for TYPE2
> (and many others), we switch between 0x1 and 0x8, as per the code
>
> #define USBMSG_TYPE2 8, 0x300, 0, 0, 0x1, 0x8
>
> But that corresponds to a change in two bits. Quite possibly
> corresponding to reset and enable. It might be worth trying a
> single-state transition, i.e., changing the row above to
>
> #define USBMSG_TYPE2 8, 0x300, 0, 0, 0x1, 0x0
>
> and see if that helps.
I did a lot of experiments changing modes at different times and this
is what I understand:
0x8 ("normal") is pause/off. If this is set, no messages of any kind
will be received.
This is not the same as the default/init state (sending 8 byte
packets, HID?). Even though the first config read returns this (08 05
00 00 00 00 00 00), if you write the same bytes back, it will stop
sending the default 8 byte packets. I haven't found a way to re-enable
this default mode other than USB reset.
0x1 ("wellspring") enables multi-touch packets, how the driver has
been working for 18 years.
0x0 (suggested above) also enables "wellspring" multi-touch packets. I
noticed one major difference in my testing; that it seems to survive
suspend-resume without issues, whereas if the mode was 0x1 on suspend,
it will resume, report 0x0 in config and send default packets again.
Another interesting observation is that the first packet received (60
02, "control response ignored") comes reliably 120-140ms after USB
reset. Importantly, if you send 0x1 or 0x0 before this is received, it
will be ignored. It will update the config but won't take effect. From
this state you have to send 0x8, wait 1ms then send 0x1 (or 0x0) again
to enable wellspring mode.
The above will be why my mouse doesn't work after reset and why adding
msleep() in probe() fixed it.
I think a more permanent fix could be to set mode on receiving that
first packet (control response) and/or on receiving default 8 byte
packets.
I looked at the history of the module and saw that the first packet
has been ignored from the first version so I assume it works the same
across all hardware versions.
Liam
^ permalink raw reply
* Re: [PATCH v1 07/10] dt-bindings: input: cpcap-pwrbutton: convert to schema
From: Rob Herring (Arm) @ 2026-01-25 16:43 UTC (permalink / raw)
To: Svyatoslav Ryhel
Cc: Andy Shevchenko, Dixit Parmar, linux-rtc, Krzysztof Kozlowski,
Dmitry Torokhov, Pavel Machek, Lee Jones, Nuno Sá,
Tony Lindgren, Conor Dooley, linux-leds, devicetree,
David Lechner, linux-iio, Alexandre Belloni, Jonathan Cameron,
Mark Brown, Liam Girdwood, linux-kernel, linux-input
In-Reply-To: <20260125134302.45958-8-clamor95@gmail.com>
On Sun, 25 Jan 2026 15:42:59 +0200, Svyatoslav Ryhel wrote:
> Convert power button devicetree bindings for the Motorola CPCAP MFD from
> TXT to YAML format. This patch does not change any functionality; the
> bindings remain the same.
>
> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
> ---
> .../bindings/input/cpcap-pwrbutton.txt | 20 ------------
> .../input/motorola,cpcap-pwrbutton.yaml | 32 +++++++++++++++++++
> 2 files changed, 32 insertions(+), 20 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
> create mode 100644 Documentation/devicetree/bindings/input/motorola,cpcap-pwrbutton.yaml
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
doc reference errors (make refcheckdocs):
Warning: Documentation/devicetree/bindings/input/motorola,cpcap-pwrbutton.yaml references a file that doesn't exist: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Warning: Documentation/devicetree/bindings/leds/motorola,cpcap-leds.yaml references a file that doesn't exist: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Warning: Documentation/devicetree/bindings/mfd/motorola-cpcap.txt references a file that doesn't exist: Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
Warning: Documentation/devicetree/bindings/mfd/motorola-cpcap.txt references a file that doesn't exist: Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
Warning: Documentation/devicetree/bindings/mfd/motorola-cpcap.txt references a file that doesn't exist: Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
Warning: Documentation/devicetree/bindings/mfd/motorola-cpcap.txt references a file that doesn't exist: Documentation/devicetree/bindings/leds/leds-cpcap.txt
Warning: Documentation/devicetree/bindings/regulator/motorola,cpcap-regulator.yaml references a file that doesn't exist: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Warning: Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml references a file that doesn't exist: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Documentation/devicetree/bindings/input/motorola,cpcap-pwrbutton.yaml: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Documentation/devicetree/bindings/leds/motorola,cpcap-leds.yaml: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Documentation/devicetree/bindings/mfd/motorola-cpcap.txt: Documentation/devicetree/bindings/regulator/cpcap-regulator.txt
Documentation/devicetree/bindings/mfd/motorola-cpcap.txt: Documentation/devicetree/bindings/input/cpcap-pwrbutton.txt
Documentation/devicetree/bindings/mfd/motorola-cpcap.txt: Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
Documentation/devicetree/bindings/mfd/motorola-cpcap.txt: Documentation/devicetree/bindings/leds/leds-cpcap.txt
Documentation/devicetree/bindings/regulator/motorola,cpcap-regulator.yaml: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml: Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml
See https://patchwork.kernel.org/project/devicetree/patch/20260125134302.45958-8-clamor95@gmail.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
^ permalink raw reply
* Re: [git pull] Input updates for v6.19-rc6
From: pr-tracker-bot @ 2026-01-25 17:54 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Linus Torvalds, linux-kernel, linux-input
In-Reply-To: <kj4hg5eeu5pab5tmxoc7465s2pgoqh5pm4iedjmfd73j4vmzxk@77eh6hgaxlra>
The pull request you sent on Sat, 24 Jan 2026 22:00:02 -0800:
> git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git tags/input-for-v6.19-rc6
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c1a5135e60f1a026f135c6b0964cc8f4e1c4a8bb
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply
* sub
From: Yelsin Sepulveda @ 2026-01-25 18:50 UTC (permalink / raw)
To: linux-input
sub
^ permalink raw reply
* [dtor-input:next] BUILD SUCCESS 7ff574599464bd0e30da88aabc7be9de1021204a
From: kernel test robot @ 2026-01-25 20:35 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git next
branch HEAD: 7ff574599464bd0e30da88aabc7be9de1021204a Input: novatek-nvt-ts - drop wake_type check
elapsed time: 862m
configs tested: 315
configs skipped: 4
The following configs have been built successfully.
More configs may be tested in the coming days.
tested configs:
alpha allnoconfig gcc-15.2.0
alpha allyesconfig gcc-15.2.0
alpha defconfig gcc-15.2.0
arc allmodconfig clang-16
arc allmodconfig gcc-15.2.0
arc allnoconfig gcc-15.2.0
arc allyesconfig clang-22
arc allyesconfig gcc-15.2.0
arc defconfig gcc-15.2.0
arc randconfig-001-20260125 gcc-10.5.0
arc randconfig-001-20260126 gcc-10.5.0
arc randconfig-002-20260125 gcc-10.5.0
arc randconfig-002-20260126 gcc-10.5.0
arc vdk_hs38_defconfig gcc-15.2.0
arm alldefconfig gcc-15.2.0
arm allnoconfig clang-22
arm allnoconfig gcc-15.2.0
arm allyesconfig clang-16
arm allyesconfig gcc-15.2.0
arm defconfig gcc-15.2.0
arm imx_v6_v7_defconfig gcc-11.5.0
arm lpc18xx_defconfig clang-22
arm milbeaut_m10v_defconfig clang-19
arm multi_v7_defconfig gcc-15.2.0
arm pxa168_defconfig clang-22
arm randconfig-001-20260125 gcc-10.5.0
arm randconfig-001-20260126 gcc-10.5.0
arm randconfig-002-20260125 gcc-10.5.0
arm randconfig-002-20260126 gcc-10.5.0
arm randconfig-003-20260125 gcc-10.5.0
arm randconfig-003-20260126 gcc-10.5.0
arm randconfig-004-20260125 gcc-10.5.0
arm randconfig-004-20260126 gcc-10.5.0
arm shmobile_defconfig gcc-11.5.0
arm shmobile_defconfig gcc-15.2.0
arm sp7021_defconfig clang-22
arm sp7021_defconfig gcc-15.2.0
arm spear3xx_defconfig gcc-15.2.0
arm spitz_defconfig gcc-15.2.0
arm wpcm450_defconfig gcc-11.5.0
arm wpcm450_defconfig gcc-15.2.0
arm64 allmodconfig clang-19
arm64 allmodconfig clang-22
arm64 allnoconfig gcc-15.2.0
arm64 defconfig gcc-15.2.0
arm64 randconfig-001-20260125 clang-17
arm64 randconfig-001-20260125 gcc-11.5.0
arm64 randconfig-001-20260126 gcc-15.2.0
arm64 randconfig-002-20260125 clang-22
arm64 randconfig-002-20260125 gcc-11.5.0
arm64 randconfig-002-20260126 gcc-15.2.0
arm64 randconfig-003-20260125 clang-22
arm64 randconfig-003-20260125 gcc-11.5.0
arm64 randconfig-003-20260126 gcc-15.2.0
arm64 randconfig-004-20260125 clang-22
arm64 randconfig-004-20260125 gcc-11.5.0
arm64 randconfig-004-20260126 gcc-15.2.0
csky allmodconfig gcc-15.2.0
csky allnoconfig gcc-15.2.0
csky defconfig gcc-15.2.0
csky randconfig-001-20260125 gcc-11.5.0
csky randconfig-001-20260125 gcc-15.2.0
csky randconfig-001-20260126 gcc-15.2.0
csky randconfig-002-20260125 gcc-11.5.0
csky randconfig-002-20260126 gcc-15.2.0
hexagon allmodconfig clang-17
hexagon allmodconfig gcc-15.2.0
hexagon allnoconfig clang-22
hexagon allnoconfig gcc-15.2.0
hexagon defconfig gcc-15.2.0
hexagon randconfig-001-20260125 clang-22
hexagon randconfig-001-20260126 gcc-15.2.0
hexagon randconfig-002-20260125 clang-20
hexagon randconfig-002-20260125 clang-22
hexagon randconfig-002-20260126 gcc-15.2.0
i386 alldefconfig gcc-14
i386 allmodconfig clang-20
i386 allmodconfig gcc-14
i386 allnoconfig gcc-14
i386 allnoconfig gcc-15.2.0
i386 allyesconfig clang-20
i386 allyesconfig gcc-14
i386 buildonly-randconfig-001-20260125 gcc-14
i386 buildonly-randconfig-001-20260126 clang-20
i386 buildonly-randconfig-002-20260125 gcc-14
i386 buildonly-randconfig-002-20260126 clang-20
i386 buildonly-randconfig-003-20260125 gcc-14
i386 buildonly-randconfig-003-20260126 clang-20
i386 buildonly-randconfig-004-20260125 gcc-14
i386 buildonly-randconfig-004-20260126 clang-20
i386 buildonly-randconfig-005-20260125 gcc-14
i386 buildonly-randconfig-005-20260126 clang-20
i386 buildonly-randconfig-006-20260125 gcc-14
i386 buildonly-randconfig-006-20260126 clang-20
i386 defconfig gcc-15.2.0
i386 randconfig-001-20260125 clang-20
i386 randconfig-001-20260125 gcc-14
i386 randconfig-002-20260125 clang-20
i386 randconfig-002-20260125 gcc-14
i386 randconfig-003-20260125 clang-20
i386 randconfig-003-20260125 gcc-14
i386 randconfig-004-20260125 clang-20
i386 randconfig-005-20260125 clang-20
i386 randconfig-005-20260125 gcc-14
i386 randconfig-006-20260125 clang-20
i386 randconfig-007-20260125 clang-20
i386 randconfig-011-20260125 gcc-14
i386 randconfig-012-20260125 gcc-14
i386 randconfig-013-20260125 gcc-14
i386 randconfig-014-20260125 clang-20
i386 randconfig-014-20260125 gcc-14
i386 randconfig-015-20260125 clang-20
i386 randconfig-015-20260125 gcc-14
i386 randconfig-016-20260125 gcc-14
i386 randconfig-017-20260125 clang-20
i386 randconfig-017-20260125 gcc-14
loongarch allmodconfig clang-19
loongarch allmodconfig clang-22
loongarch allnoconfig clang-22
loongarch allnoconfig gcc-15.2.0
loongarch defconfig clang-19
loongarch randconfig-001-20260125 clang-22
loongarch randconfig-001-20260126 gcc-15.2.0
loongarch randconfig-002-20260125 clang-22
loongarch randconfig-002-20260125 gcc-14.3.0
loongarch randconfig-002-20260126 gcc-15.2.0
m68k allmodconfig gcc-15.2.0
m68k allnoconfig gcc-15.2.0
m68k allyesconfig clang-16
m68k allyesconfig gcc-15.2.0
m68k defconfig clang-19
m68k m5249evb_defconfig gcc-15.2.0
m68k m5407c3_defconfig gcc-11.5.0
m68k sun3_defconfig gcc-15.2.0
microblaze allnoconfig gcc-15.2.0
microblaze allyesconfig gcc-15.2.0
microblaze defconfig clang-19
microblaze mmu_defconfig gcc-15.2.0
mips allmodconfig gcc-15.2.0
mips allnoconfig gcc-15.2.0
mips allyesconfig gcc-15.2.0
mips bigsur_defconfig clang-22
mips ci20_defconfig clang-22
mips fuloong2e_defconfig gcc-15.2.0
mips loongson2k_defconfig gcc-15.2.0
mips mtx1_defconfig clang-22
nios2 3c120_defconfig gcc-11.5.0
nios2 allmodconfig clang-22
nios2 allmodconfig gcc-11.5.0
nios2 allnoconfig clang-22
nios2 allnoconfig gcc-11.5.0
nios2 defconfig clang-19
nios2 randconfig-001-20260125 clang-22
nios2 randconfig-001-20260125 gcc-8.5.0
nios2 randconfig-001-20260126 gcc-15.2.0
nios2 randconfig-002-20260125 clang-22
nios2 randconfig-002-20260125 gcc-8.5.0
nios2 randconfig-002-20260126 gcc-15.2.0
openrisc allmodconfig clang-22
openrisc allmodconfig gcc-15.2.0
openrisc allnoconfig clang-22
openrisc allnoconfig gcc-15.2.0
openrisc defconfig gcc-15.2.0
parisc allmodconfig gcc-15.2.0
parisc allnoconfig clang-22
parisc allnoconfig gcc-15.2.0
parisc allyesconfig clang-19
parisc allyesconfig gcc-15.2.0
parisc defconfig gcc-15.2.0
parisc randconfig-001-20260125 gcc-8.5.0
parisc randconfig-001-20260126 gcc-8.5.0
parisc randconfig-002-20260125 gcc-8.5.0
parisc randconfig-002-20260126 gcc-8.5.0
parisc64 defconfig clang-19
powerpc allmodconfig gcc-15.2.0
powerpc allnoconfig clang-22
powerpc allnoconfig gcc-15.2.0
powerpc cm5200_defconfig clang-22
powerpc ep8248e_defconfig clang-22
powerpc ep88xc_defconfig gcc-11.5.0
powerpc iss476-smp_defconfig clang-22
powerpc mpc836x_rdk_defconfig clang-22
powerpc ppc44x_defconfig clang-22
powerpc randconfig-001-20260125 clang-22
powerpc randconfig-001-20260125 gcc-8.5.0
powerpc randconfig-001-20260126 gcc-8.5.0
powerpc randconfig-002-20260125 clang-22
powerpc randconfig-002-20260125 gcc-8.5.0
powerpc randconfig-002-20260126 gcc-8.5.0
powerpc redwood_defconfig gcc-11.5.0
powerpc socrates_defconfig gcc-15.2.0
powerpc64 randconfig-001-20260125 gcc-12.5.0
powerpc64 randconfig-001-20260125 gcc-8.5.0
powerpc64 randconfig-001-20260126 gcc-8.5.0
powerpc64 randconfig-002-20260125 clang-17
powerpc64 randconfig-002-20260125 gcc-8.5.0
powerpc64 randconfig-002-20260126 gcc-8.5.0
riscv allmodconfig clang-22
riscv allnoconfig clang-22
riscv allnoconfig gcc-15.2.0
riscv allyesconfig clang-16
riscv defconfig clang-22
riscv defconfig gcc-15.2.0
riscv randconfig-001-20260125 clang-22
riscv randconfig-001-20260126 gcc-9.5.0
riscv randconfig-002-20260125 clang-16
riscv randconfig-002-20260125 clang-22
riscv randconfig-002-20260126 gcc-9.5.0
s390 allmodconfig clang-18
s390 allmodconfig clang-19
s390 allnoconfig clang-22
s390 allyesconfig gcc-15.2.0
s390 defconfig clang-22
s390 defconfig gcc-15.2.0
s390 randconfig-001-20260125 clang-22
s390 randconfig-001-20260125 gcc-11.5.0
s390 randconfig-001-20260126 gcc-9.5.0
s390 randconfig-002-20260125 clang-22
s390 randconfig-002-20260125 gcc-9.5.0
s390 randconfig-002-20260126 gcc-9.5.0
sh allmodconfig gcc-15.2.0
sh allnoconfig clang-22
sh allnoconfig gcc-15.2.0
sh allyesconfig clang-19
sh allyesconfig gcc-15.2.0
sh apsh4a3a_defconfig gcc-15.2.0
sh defconfig gcc-14
sh randconfig-001-20260125 clang-22
sh randconfig-001-20260125 gcc-15.2.0
sh randconfig-001-20260126 gcc-9.5.0
sh randconfig-002-20260125 clang-22
sh randconfig-002-20260125 gcc-14.3.0
sh randconfig-002-20260126 gcc-9.5.0
sh rsk7203_defconfig clang-22
sh rsk7264_defconfig gcc-11.5.0
sh rts7751r2d1_defconfig gcc-15.2.0
sh sh2007_defconfig gcc-15.2.0
sh sh7724_generic_defconfig gcc-15.2.0
sh shx3_defconfig gcc-15.2.0
sh urquell_defconfig gcc-15.2.0
sparc allnoconfig clang-22
sparc allnoconfig gcc-15.2.0
sparc defconfig gcc-15.2.0
sparc randconfig-001-20260125 gcc-8.5.0
sparc randconfig-002-20260125 gcc-15.2.0
sparc randconfig-002-20260125 gcc-8.5.0
sparc sparc64_defconfig gcc-15.2.0
sparc64 allmodconfig clang-22
sparc64 defconfig gcc-14
sparc64 randconfig-001-20260125 gcc-12.5.0
sparc64 randconfig-001-20260125 gcc-8.5.0
sparc64 randconfig-002-20260125 clang-20
sparc64 randconfig-002-20260125 gcc-8.5.0
um allmodconfig clang-19
um allnoconfig clang-22
um allyesconfig gcc-14
um allyesconfig gcc-15.2.0
um defconfig gcc-14
um i386_defconfig gcc-14
um randconfig-001-20260125 gcc-14
um randconfig-001-20260125 gcc-8.5.0
um randconfig-002-20260125 clang-16
um randconfig-002-20260125 gcc-8.5.0
um x86_64_defconfig clang-22
um x86_64_defconfig gcc-14
x86_64 allmodconfig clang-20
x86_64 allnoconfig clang-20
x86_64 allnoconfig clang-22
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20260125 clang-20
x86_64 buildonly-randconfig-002-20260125 clang-20
x86_64 buildonly-randconfig-002-20260125 gcc-14
x86_64 buildonly-randconfig-003-20260125 clang-20
x86_64 buildonly-randconfig-004-20260125 clang-20
x86_64 buildonly-randconfig-005-20260125 clang-20
x86_64 buildonly-randconfig-005-20260125 gcc-14
x86_64 buildonly-randconfig-006-20260125 clang-20
x86_64 buildonly-randconfig-006-20260125 gcc-14
x86_64 defconfig gcc-14
x86_64 kexec clang-20
x86_64 randconfig-001-20260125 gcc-14
x86_64 randconfig-002-20260125 gcc-14
x86_64 randconfig-003-20260125 gcc-14
x86_64 randconfig-004-20260125 gcc-14
x86_64 randconfig-005-20260125 gcc-14
x86_64 randconfig-006-20260125 gcc-14
x86_64 randconfig-011-20260125 clang-20
x86_64 randconfig-012-20260125 clang-20
x86_64 randconfig-013-20260125 clang-20
x86_64 randconfig-014-20260125 clang-20
x86_64 randconfig-015-20260125 gcc-14
x86_64 randconfig-016-20260125 gcc-13
x86_64 randconfig-071-20260125 clang-20
x86_64 randconfig-072-20260125 clang-20
x86_64 randconfig-072-20260125 gcc-14
x86_64 randconfig-073-20260125 clang-20
x86_64 randconfig-074-20260125 clang-20
x86_64 randconfig-074-20260125 gcc-14
x86_64 randconfig-075-20260125 clang-20
x86_64 randconfig-075-20260125 gcc-14
x86_64 randconfig-076-20260125 clang-20
x86_64 rhel-9.4 clang-20
x86_64 rhel-9.4-bpf gcc-14
x86_64 rhel-9.4-func clang-20
x86_64 rhel-9.4-kselftests clang-20
x86_64 rhel-9.4-kunit gcc-14
x86_64 rhel-9.4-ltp gcc-14
x86_64 rhel-9.4-rust clang-20
xtensa allnoconfig clang-22
xtensa allnoconfig gcc-15.2.0
xtensa allyesconfig clang-22
xtensa allyesconfig gcc-15.2.0
xtensa randconfig-001-20260125 gcc-12.5.0
xtensa randconfig-001-20260125 gcc-8.5.0
xtensa randconfig-002-20260125 gcc-8.5.0
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply
* [dtor-input:for-linus] BUILD SUCCESS 19a5d9ba6208e9006a2a9d5962aea4d6e427d8ab
From: kernel test robot @ 2026-01-25 21:03 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git for-linus
branch HEAD: 19a5d9ba6208e9006a2a9d5962aea4d6e427d8ab Input: i8042 - add quirks for MECHREVO Wujie 15X Pro
elapsed time: 890m
configs tested: 295
configs skipped: 5
The following configs have been built successfully.
More configs may be tested in the coming days.
tested configs:
alpha allnoconfig gcc-15.2.0
alpha allyesconfig gcc-15.2.0
alpha defconfig gcc-15.2.0
arc allmodconfig clang-16
arc allmodconfig gcc-15.2.0
arc allnoconfig gcc-15.2.0
arc allyesconfig clang-22
arc allyesconfig gcc-15.2.0
arc defconfig gcc-15.2.0
arc randconfig-001-20260125 gcc-10.5.0
arc randconfig-001-20260126 gcc-10.5.0
arc randconfig-002-20260125 gcc-10.5.0
arc randconfig-002-20260126 gcc-10.5.0
arc vdk_hs38_defconfig gcc-15.2.0
arm alldefconfig gcc-15.2.0
arm allnoconfig clang-22
arm allnoconfig gcc-15.2.0
arm allyesconfig clang-16
arm allyesconfig gcc-15.2.0
arm defconfig gcc-15.2.0
arm imx_v6_v7_defconfig gcc-11.5.0
arm multi_v5_defconfig gcc-15.2.0
arm multi_v7_defconfig gcc-15.2.0
arm orion5x_defconfig gcc-15.2.0
arm pxa168_defconfig clang-22
arm randconfig-001-20260125 gcc-10.5.0
arm randconfig-001-20260126 gcc-10.5.0
arm randconfig-002-20260125 gcc-10.5.0
arm randconfig-002-20260126 gcc-10.5.0
arm randconfig-003-20260125 gcc-10.5.0
arm randconfig-003-20260126 gcc-10.5.0
arm randconfig-004-20260125 gcc-10.5.0
arm randconfig-004-20260126 gcc-10.5.0
arm shmobile_defconfig gcc-11.5.0
arm sp7021_defconfig clang-22
arm spear3xx_defconfig gcc-15.2.0
arm spitz_defconfig gcc-15.2.0
arm wpcm450_defconfig gcc-11.5.0
arm wpcm450_defconfig gcc-15.2.0
arm64 allmodconfig clang-22
arm64 allnoconfig gcc-15.2.0
arm64 defconfig gcc-15.2.0
arm64 randconfig-001-20260125 gcc-11.5.0
arm64 randconfig-001-20260126 gcc-15.2.0
arm64 randconfig-002-20260125 gcc-11.5.0
arm64 randconfig-002-20260126 gcc-15.2.0
arm64 randconfig-003-20260125 gcc-11.5.0
arm64 randconfig-003-20260126 gcc-15.2.0
arm64 randconfig-004-20260125 gcc-11.5.0
arm64 randconfig-004-20260126 gcc-15.2.0
csky allmodconfig gcc-15.2.0
csky allnoconfig gcc-15.2.0
csky defconfig gcc-15.2.0
csky randconfig-001-20260125 gcc-11.5.0
csky randconfig-001-20260126 gcc-15.2.0
csky randconfig-002-20260125 gcc-11.5.0
csky randconfig-002-20260126 gcc-15.2.0
hexagon allmodconfig clang-17
hexagon allmodconfig gcc-15.2.0
hexagon allnoconfig clang-22
hexagon allnoconfig gcc-15.2.0
hexagon defconfig gcc-15.2.0
hexagon randconfig-001-20260125 clang-22
hexagon randconfig-001-20260126 gcc-15.2.0
hexagon randconfig-002-20260125 clang-20
hexagon randconfig-002-20260125 clang-22
hexagon randconfig-002-20260126 gcc-15.2.0
i386 allmodconfig clang-20
i386 allmodconfig gcc-14
i386 allnoconfig gcc-14
i386 allnoconfig gcc-15.2.0
i386 allyesconfig clang-20
i386 allyesconfig gcc-14
i386 buildonly-randconfig-001-20260125 gcc-14
i386 buildonly-randconfig-001-20260126 clang-20
i386 buildonly-randconfig-002-20260125 gcc-14
i386 buildonly-randconfig-002-20260126 clang-20
i386 buildonly-randconfig-003-20260125 gcc-14
i386 buildonly-randconfig-003-20260126 clang-20
i386 buildonly-randconfig-004-20260125 gcc-14
i386 buildonly-randconfig-004-20260126 clang-20
i386 buildonly-randconfig-005-20260125 gcc-14
i386 buildonly-randconfig-005-20260126 clang-20
i386 buildonly-randconfig-006-20260125 gcc-14
i386 buildonly-randconfig-006-20260126 clang-20
i386 defconfig gcc-15.2.0
i386 randconfig-001-20260125 clang-20
i386 randconfig-002-20260125 clang-20
i386 randconfig-003-20260125 clang-20
i386 randconfig-004-20260125 clang-20
i386 randconfig-005-20260125 clang-20
i386 randconfig-006-20260125 clang-20
i386 randconfig-007-20260125 clang-20
i386 randconfig-011-20260125 gcc-14
i386 randconfig-012-20260125 gcc-14
i386 randconfig-013-20260125 gcc-14
i386 randconfig-014-20260125 gcc-14
i386 randconfig-015-20260125 gcc-14
i386 randconfig-016-20260125 gcc-14
i386 randconfig-017-20260125 gcc-14
loongarch allmodconfig clang-22
loongarch allnoconfig clang-22
loongarch allnoconfig gcc-15.2.0
loongarch defconfig clang-19
loongarch randconfig-001-20260125 clang-22
loongarch randconfig-001-20260126 gcc-15.2.0
loongarch randconfig-002-20260125 clang-22
loongarch randconfig-002-20260125 gcc-14.3.0
loongarch randconfig-002-20260126 gcc-15.2.0
m68k allmodconfig gcc-15.2.0
m68k allnoconfig gcc-15.2.0
m68k allyesconfig clang-16
m68k allyesconfig gcc-15.2.0
m68k defconfig clang-19
m68k m5249evb_defconfig gcc-15.2.0
m68k m5407c3_defconfig gcc-11.5.0
microblaze allnoconfig gcc-15.2.0
microblaze allyesconfig gcc-15.2.0
microblaze defconfig clang-19
microblaze mmu_defconfig gcc-15.2.0
mips allmodconfig gcc-15.2.0
mips allnoconfig gcc-15.2.0
mips allyesconfig gcc-15.2.0
mips bigsur_defconfig clang-22
mips cu1000-neo_defconfig gcc-15.2.0
mips fuloong2e_defconfig gcc-15.2.0
mips loongson2k_defconfig gcc-15.2.0
mips mtx1_defconfig clang-22
nios2 3c120_defconfig gcc-11.5.0
nios2 allmodconfig clang-22
nios2 allmodconfig gcc-11.5.0
nios2 allnoconfig clang-22
nios2 allnoconfig gcc-11.5.0
nios2 defconfig clang-19
nios2 randconfig-001-20260125 clang-22
nios2 randconfig-001-20260125 gcc-8.5.0
nios2 randconfig-001-20260126 gcc-15.2.0
nios2 randconfig-002-20260125 clang-22
nios2 randconfig-002-20260125 gcc-8.5.0
nios2 randconfig-002-20260126 gcc-15.2.0
openrisc allmodconfig clang-22
openrisc allmodconfig gcc-15.2.0
openrisc allnoconfig clang-22
openrisc allnoconfig gcc-15.2.0
openrisc defconfig gcc-15.2.0
parisc allmodconfig gcc-15.2.0
parisc allnoconfig clang-22
parisc allnoconfig gcc-15.2.0
parisc allyesconfig clang-19
parisc defconfig gcc-15.2.0
parisc generic-32bit_defconfig gcc-15.2.0
parisc randconfig-001-20260125 gcc-8.5.0
parisc randconfig-001-20260126 gcc-8.5.0
parisc randconfig-002-20260125 gcc-8.5.0
parisc randconfig-002-20260126 gcc-8.5.0
parisc64 defconfig clang-19
powerpc allmodconfig gcc-15.2.0
powerpc allnoconfig clang-22
powerpc allnoconfig gcc-15.2.0
powerpc ep8248e_defconfig clang-22
powerpc ep88xc_defconfig gcc-11.5.0
powerpc iss476-smp_defconfig clang-22
powerpc mpc836x_rdk_defconfig clang-22
powerpc randconfig-001-20260125 clang-22
powerpc randconfig-001-20260125 gcc-8.5.0
powerpc randconfig-001-20260126 gcc-8.5.0
powerpc randconfig-002-20260125 clang-22
powerpc randconfig-002-20260125 gcc-8.5.0
powerpc randconfig-002-20260126 gcc-8.5.0
powerpc redwood_defconfig gcc-11.5.0
powerpc socrates_defconfig gcc-15.2.0
powerpc storcenter_defconfig gcc-15.2.0
powerpc64 randconfig-001-20260125 gcc-12.5.0
powerpc64 randconfig-001-20260125 gcc-8.5.0
powerpc64 randconfig-001-20260126 gcc-8.5.0
powerpc64 randconfig-002-20260125 clang-17
powerpc64 randconfig-002-20260125 gcc-8.5.0
powerpc64 randconfig-002-20260126 gcc-8.5.0
riscv allmodconfig clang-22
riscv allnoconfig clang-22
riscv allnoconfig gcc-15.2.0
riscv allyesconfig clang-16
riscv defconfig gcc-15.2.0
riscv randconfig-001-20260125 clang-22
riscv randconfig-001-20260126 gcc-9.5.0
riscv randconfig-002-20260125 clang-16
riscv randconfig-002-20260125 clang-22
riscv randconfig-002-20260126 gcc-9.5.0
s390 allmodconfig clang-19
s390 allnoconfig clang-22
s390 allyesconfig gcc-15.2.0
s390 debug_defconfig gcc-15.2.0
s390 defconfig gcc-15.2.0
s390 randconfig-001-20260125 clang-22
s390 randconfig-001-20260125 gcc-11.5.0
s390 randconfig-001-20260126 gcc-9.5.0
s390 randconfig-002-20260125 clang-22
s390 randconfig-002-20260125 gcc-9.5.0
s390 randconfig-002-20260126 gcc-9.5.0
sh allmodconfig gcc-15.2.0
sh allnoconfig clang-22
sh allnoconfig gcc-15.2.0
sh allyesconfig clang-19
sh defconfig gcc-14
sh randconfig-001-20260125 clang-22
sh randconfig-001-20260125 gcc-15.2.0
sh randconfig-001-20260126 gcc-9.5.0
sh randconfig-002-20260125 clang-22
sh randconfig-002-20260125 gcc-14.3.0
sh randconfig-002-20260126 gcc-9.5.0
sh rsk7203_defconfig clang-22
sh rsk7264_defconfig gcc-11.5.0
sh rts7751r2d1_defconfig gcc-15.2.0
sh se7722_defconfig gcc-15.2.0
sh sh2007_defconfig gcc-15.2.0
sh shx3_defconfig gcc-15.2.0
sparc allnoconfig clang-22
sparc allnoconfig gcc-15.2.0
sparc defconfig gcc-15.2.0
sparc randconfig-001-20260125 gcc-8.5.0
sparc randconfig-002-20260125 gcc-15.2.0
sparc randconfig-002-20260125 gcc-8.5.0
sparc sparc64_defconfig gcc-15.2.0
sparc64 allmodconfig clang-22
sparc64 defconfig gcc-14
sparc64 randconfig-001-20260125 gcc-12.5.0
sparc64 randconfig-001-20260125 gcc-8.5.0
sparc64 randconfig-002-20260125 clang-20
sparc64 randconfig-002-20260125 gcc-8.5.0
um allmodconfig clang-19
um allnoconfig clang-22
um allyesconfig gcc-14
um allyesconfig gcc-15.2.0
um defconfig gcc-14
um i386_defconfig gcc-14
um randconfig-001-20260125 gcc-14
um randconfig-001-20260125 gcc-8.5.0
um randconfig-002-20260125 clang-16
um randconfig-002-20260125 gcc-8.5.0
um x86_64_defconfig gcc-14
x86_64 allmodconfig clang-20
x86_64 allnoconfig clang-20
x86_64 allnoconfig clang-22
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20260125 clang-20
x86_64 buildonly-randconfig-002-20260125 clang-20
x86_64 buildonly-randconfig-002-20260125 gcc-14
x86_64 buildonly-randconfig-003-20260125 clang-20
x86_64 buildonly-randconfig-004-20260125 clang-20
x86_64 buildonly-randconfig-005-20260125 clang-20
x86_64 buildonly-randconfig-005-20260125 gcc-14
x86_64 buildonly-randconfig-006-20260125 clang-20
x86_64 buildonly-randconfig-006-20260125 gcc-14
x86_64 defconfig gcc-14
x86_64 kexec clang-20
x86_64 randconfig-001-20260125 gcc-14
x86_64 randconfig-002-20260125 gcc-14
x86_64 randconfig-003-20260125 gcc-14
x86_64 randconfig-004-20260125 gcc-14
x86_64 randconfig-005-20260125 gcc-14
x86_64 randconfig-006-20260125 gcc-14
x86_64 randconfig-011-20260125 clang-20
x86_64 randconfig-011-20260126 gcc-14
x86_64 randconfig-012-20260125 clang-20
x86_64 randconfig-012-20260126 gcc-14
x86_64 randconfig-013-20260125 clang-20
x86_64 randconfig-013-20260126 gcc-14
x86_64 randconfig-014-20260125 clang-20
x86_64 randconfig-014-20260126 gcc-14
x86_64 randconfig-015-20260125 gcc-14
x86_64 randconfig-015-20260126 gcc-14
x86_64 randconfig-016-20260125 gcc-13
x86_64 randconfig-016-20260126 gcc-14
x86_64 randconfig-071-20260125 clang-20
x86_64 randconfig-072-20260125 clang-20
x86_64 randconfig-072-20260125 gcc-14
x86_64 randconfig-073-20260125 clang-20
x86_64 randconfig-074-20260125 clang-20
x86_64 randconfig-074-20260125 gcc-14
x86_64 randconfig-075-20260125 clang-20
x86_64 randconfig-075-20260125 gcc-14
x86_64 randconfig-076-20260125 clang-20
x86_64 rhel-9.4 clang-20
x86_64 rhel-9.4-bpf gcc-14
x86_64 rhel-9.4-func clang-20
x86_64 rhel-9.4-kselftests clang-20
x86_64 rhel-9.4-kunit gcc-14
x86_64 rhel-9.4-ltp gcc-14
x86_64 rhel-9.4-rust clang-20
xtensa allnoconfig clang-22
xtensa allnoconfig gcc-15.2.0
xtensa allyesconfig clang-22
xtensa randconfig-001-20260125 gcc-12.5.0
xtensa randconfig-001-20260125 gcc-8.5.0
xtensa randconfig-002-20260125 gcc-8.5.0
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply
* Re: [PATCH v2 RESEND] selftests: hid: tests: test_wacom_generic: add tests for display devices and opaque devices
From: Alex Tran @ 2026-01-25 21:31 UTC (permalink / raw)
To: Erin Skomra
Cc: Jiri Kosina, Benjamin Tissoires, shuah, linux-input,
linux-kselftest, linux-kernel, Ping Cheng, Jason Gerecke
In-Reply-To: <CAEoswT3Ft=XSeogfob0aitGkUEQY2dqoYcjT1CbeGWwFAsA+KQ@mail.gmail.com>
On Sat, Jan 24, 2026 at 5:54 AM Erin Skomra <skomra@gmail.com> wrote:
>
> Hi all and thanks so much to Alex for the patch.
>
> We tested and reviewed the patch and everything looks good with one suggestion.
>
> Since the properties are mutually exclusive we'd like you to add one
> line to each prop test asserting that the opposite property is NOT
> set.
>
Sure, I'll send in a revision v3 with the addition. Thanks for the feedback.
--
Yours,
Alex Tran
^ permalink raw reply
* Re: [PATCH v3 00/16] HID: Add Legion Go and Go S Drivers
From: Mark Pearson @ 2026-01-26 0:53 UTC (permalink / raw)
To: Derek J . Clark, Jiri Kosina, Benjamin Tissoires
Cc: Limonciello, Mario, Zhixin Zhang, Mia Shao,
Pierre-Loup A . Griffais, linux-input, linux-doc, linux-kernel
In-Reply-To: <20260124014907.991265-1-derekjohn.clark@gmail.com>
On Fri, Jan 23, 2026, at 8:48 PM, Derek J. Clark wrote:
> This series adds configuration driver support for the Legion Go S,
> Legion Go, and Legion Go 2 built-in controller HID interfaces. This
> allows for configuring hardware specific attributes such as the auso
> sleep timeout, rumble intensity, etc. non-configuration reports are
> forwarded to the HID subsystem to ensure no loss of functionality in
> userspace. Basic gamepad functionality is provided through xpad, while
> advanced features are currently only implemented in userspace daemons
> such as InputPlumber[1]. I plan to move this functionality into the
> kernel in a later patch series.
>
> Three new device.h macros are added that solve a fairly specific
> problem. Many of the attributes need to have the same name as other
> attributes when they are in separate attribute subdirectories. The
> previous version of this series, along with the upcoming his-asus-ally
> driver[2] use this macro to simplify the sysfs by removing redundancy.
> An upcoming out of tree driver for the Zotac Zone [3] also found this
> macro to be useful. This greatly reduces the path length and term
> redundancy of file paths in the sysfs, while also allowing for cleaner
> subdirectories that are grouped by functionality. Rather than carry the
> same macro in four drivers, it seems beneficial to me that we include the
> macro with the other device macros.
>
> A new HID uevent property is also added, HID_FIRMWARE_VERSION, so as to
> permit fwupd to read the firmware version of the Go S HID interface without
> detaching the kernel driver.
>
> Finally, there are some checkpatch warnings that will need to be supressed:
> WARNING: ENOSYS means 'invalid syscall nr' and nothing else
> 1292: FILE: drivers/hid/lenovo-legos-hid/lenovo-legos-hid-config.c:1085:
> + case -ENOSYS: /* during rmmod -ENOSYS is expected */
>
> This error handling case was added as it is experienced in the real world
> when the driver is rmmod. The LED subsystem produces this error code in
> its legacy code and this is not a new novel use of -ENOSYS, we are simply
> catching the case to avoid spurious errors in dmesg when the drivers are
> removed.
>
> [1]:
> https://github.com/ShadowBlip/InputPlumber/tree/main/src/drivers/lego
> [2]: https://lore.kernel.org/all/20240806081212.56860-1-luke@ljones.dev/
> [3]:
> https://github.com/flukejones/linux/tree/wip/zotac-zone-6.15/drivers/hid/zotac-zone-hid
>
> Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
> ---
> Change Log
> V3:
> - Fix Documentation formatting by removing extra + characters
> - Fix bugs in hid-lenovo-go-s IMU & TP RO attributes being tied to the
> wrong _show function.
> - Rename enume os_mode_index to os_mode_types_index to fix collision
> with os_mode_index attribute.
> - Remove accidental rename for enabled->enable attributes in patch 4
> - Add SOB for Mario in patch 10 as Co-Developer
> V2:
> https://lore.kernel.org/linux-input/20251229031753.581664-1-derekjohn.clark@gmail.com/
> - Break up adding the Go S driver into feature specific patches
> - Rename Go S driver from lenovo-legos-hid to hid-lenovo-go-s
> - Drop the arbitrary uevent properties patch
> - Add Go serires driver
> - Move DEVICE_ATTR_NAMED macros to device.h
> V1:
> https://lore.kernel.org/linux-input/20250703004943.515919-1-derekjohn.clark@gmail.com/
>
>
> Derek J. Clark (15):
> include: device.h: Add named device attributes
> HID: hid-lenovo-go: Add Lenovo Legion Go Series HID Driver
> HID: hid-lenovo-go: Add Feature Status Attributes
> HID: hid-lenovo-go: Add Rumble and Haptic Settings
> HID: hid-lenovo-go: Add FPS Mode DPI settings
> HID: hid-lenovo-go: Add RGB LED control interface
> HID: hid-lenovo-go: Add Calibration Settings
> HID: hid-lenovo-go: Add OS Mode Toggle
> HID: hid-lenovo-go-s: Add Lenovo Legion Go S Series HID Driver
> HID: hid-lenovo-go-s: Add MCU ID Attribute
> HID: hid-lenovo-go-s: Add Feature Status Attributes
> HID: hid-lenovo-go-s: Add Touchpad Mode Attributes
> HID: hid-lenovo-go-s: Add RGB LED control interface
> HID: hid-lenovo-go-s: Add IMU and Touchpad RO Attributes
> HID: Add documentation for Lenovo Legion Go drivers
>
> Mario Limonciello (1):
> HID: Include firmware version in the uevent
>
> .../ABI/testing/sysfs-driver-hid-lenovo-go | 724 +++++
> .../ABI/testing/sysfs-driver-hid-lenovo-go-s | 304 +++
> MAINTAINERS | 11 +
> drivers/hid/Kconfig | 24 +
> drivers/hid/Makefile | 2 +
> drivers/hid/hid-core.c | 5 +
> drivers/hid/hid-ids.h | 7 +
> drivers/hid/hid-lenovo-go-s.c | 1577 +++++++++++
> drivers/hid/hid-lenovo-go.c | 2399 +++++++++++++++++
> include/linux/device.h | 46 +
> include/linux/hid.h | 1 +
> 11 files changed, 5100 insertions(+)
> create mode 100644 Documentation/ABI/testing/sysfs-driver-hid-lenovo-go
> create mode 100644 Documentation/ABI/testing/sysfs-driver-hid-lenovo-go-s
> create mode 100644 drivers/hid/hid-lenovo-go-s.c
> create mode 100644 drivers/hid/hid-lenovo-go.c
>
> --
> 2.52.0
For the series - all looks good to me.
Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Mark
^ permalink raw reply
* [hid:for-6.20/pm_ptr 7/12] drivers/hid/hid-picolcd_core.c:651:33: error: 'picolcd_suspend' undeclared here (not in a function); did you mean 'picolcd_reset'?
From: kernel test robot @ 2026-01-26 2:04 UTC (permalink / raw)
To: Bastien Nocera; +Cc: oe-kbuild-all, linux-input, Jiri Kosina
tree: https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git for-6.20/pm_ptr
head: d68a5fd939f460a7db76d127005af51cb13c69fa
commit: 318f7b0f1bea13d3aa0506fe6f40399f11c4ae52 [7/12] HID: picolcd_core: Use pm_ptr instead of #ifdef CONFIG_PM
config: i386-randconfig-2006-20250804 (https://download.01.org/0day-ci/archive/20260126/202601260353.Dk5ekiee-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260126/202601260353.Dk5ekiee-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601260353.Dk5ekiee-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from include/linux/kernel.h:36,
from include/linux/random.h:7,
from include/linux/nodemask.h:94,
from include/linux/numa.h:6,
from include/linux/cpumask.h:15,
from include/linux/smp.h:13,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:63,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:7,
from include/linux/slab.h:16,
from include/linux/hid.h:19,
from drivers/hid/hid-picolcd_core.c:10:
>> drivers/hid/hid-picolcd_core.c:651:33: error: 'picolcd_suspend' undeclared here (not in a function); did you mean 'picolcd_reset'?
651 | .suspend = pm_ptr(picolcd_suspend),
| ^~~~~~~~~~~~~~~
include/linux/util_macros.h:136:44: note: in definition of macro 'PTR_IF'
136 | #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
| ^~~
drivers/hid/hid-picolcd_core.c:651:26: note: in expansion of macro 'pm_ptr'
651 | .suspend = pm_ptr(picolcd_suspend),
| ^~~~~~
>> drivers/hid/hid-picolcd_core.c:652:33: error: 'picolcd_resume' undeclared here (not in a function); did you mean 'picolcd_remove'?
652 | .resume = pm_ptr(picolcd_resume),
| ^~~~~~~~~~~~~~
include/linux/util_macros.h:136:44: note: in definition of macro 'PTR_IF'
136 | #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
| ^~~
drivers/hid/hid-picolcd_core.c:652:26: note: in expansion of macro 'pm_ptr'
652 | .resume = pm_ptr(picolcd_resume),
| ^~~~~~
>> drivers/hid/hid-picolcd_core.c:653:33: error: 'picolcd_reset_resume' undeclared here (not in a function); did you mean 'picolcd_reset'?
653 | .reset_resume = pm_ptr(picolcd_reset_resume),
| ^~~~~~~~~~~~~~~~~~~~
include/linux/util_macros.h:136:44: note: in definition of macro 'PTR_IF'
136 | #define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
| ^~~
drivers/hid/hid-picolcd_core.c:653:26: note: in expansion of macro 'pm_ptr'
653 | .reset_resume = pm_ptr(picolcd_reset_resume),
| ^~~~~~
vim +651 drivers/hid/hid-picolcd_core.c
644
645 static struct hid_driver picolcd_driver = {
646 .name = "hid-picolcd",
647 .id_table = picolcd_devices,
648 .probe = picolcd_probe,
649 .remove = picolcd_remove,
650 .raw_event = picolcd_raw_event,
> 651 .suspend = pm_ptr(picolcd_suspend),
> 652 .resume = pm_ptr(picolcd_resume),
> 653 .reset_resume = pm_ptr(picolcd_reset_resume),
654 };
655 module_hid_driver(picolcd_driver);
656
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply
* Re: [PATCH v1 02/10] regulator: cpcap-regulator: add support for Mot regulators
From: Andy Shevchenko @ 2026-01-26 10:10 UTC (permalink / raw)
To: Svyatoslav Ryhel
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Dixit Parmar, Tony Lindgren, linux-iio,
devicetree, linux-kernel, linux-input, linux-leds, linux-rtc
In-Reply-To: <20260125134302.45958-3-clamor95@gmail.com>
On Sun, Jan 25, 2026 at 03:42:54PM +0200, Svyatoslav Ryhel wrote:
> Add support for regulator set used in Motorola Mot board, used as a base
> for Atrix 4G and Droid X2 smartphones.
...
> +static const unsigned int sw_mot_val_tbl[] = { 600000, 612500, 625000,
> + 637500, 650000, 662500,
> + 675000, 687500, 700000,
> + 712500, 725000, 737500,
> + 750000, 762500, 775000,
> + 787500, 800000, 812500,
> + 825000, 837500, 850000,
> + 862500, 875000, 887500,
> + 900000, 912500, 925000,
> + 937500, 950000, 962500,
> + 975000, 987500, 1000000,
> + 1012500, 1025000, 1037500,
> + 1050000, 1062500, 1075000,
> + 1087500, 1100000, 1112500,
> + 1125000, 1137500, 1150000,
> + 1162500, 1175000, 1187500,
> + 1200000, 1212500, 1225000,
> + 1237500, 1250000, 1262500,
> + 1275000, 1287500, 1300000,
> + 1312500, 1325000, 1337500,
> + 1350000, 1362500, 1375000,
> + 1387500, 1400000, 1412500,
> + 1425000, 1437500, 1450000,
> + 1462500, 1475000, };
What a style! (Yeah, I see it's being used elsewhere here...)
...
> + CPCAP_REG(VAUDIO, CPCAP_REG_VAUDIOC, CPCAP_REG_ASSIGN4,
> + CPCAP_BIT_VAUDIO_SEL, vaudio_val_tbl,
> + 0x16, 0x1, 0x5, 0, 0),
> + { /* sentinel */ },
No trailing comma for sentinel.
> +};
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply
* Re: [PATCH v1 04/10] iio: adc: cpcap-adc: add support for Mot ADC
From: Andy Shevchenko @ 2026-01-26 10:11 UTC (permalink / raw)
To: Svyatoslav Ryhel
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Dixit Parmar, Tony Lindgren, linux-iio,
devicetree, linux-kernel, linux-input, linux-leds, linux-rtc
In-Reply-To: <20260125134302.45958-5-clamor95@gmail.com>
On Sun, Jan 25, 2026 at 03:42:56PM +0200, Svyatoslav Ryhel wrote:
> Add support for ADC found in Motorola Mot board, used as a base for
> Atrix 4G and Droid X2 smartphones.
...
> - { }
> + { /* sentinel */ },
Stray change.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply
* Re: [PATCH v1 09/10] mfd: motorola-cpcap: diverge configuration per-board
From: Andy Shevchenko @ 2026-01-26 10:13 UTC (permalink / raw)
To: Svyatoslav Ryhel
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Dixit Parmar, Tony Lindgren, linux-iio,
devicetree, linux-kernel, linux-input, linux-leds, linux-rtc
In-Reply-To: <20260125134302.45958-10-clamor95@gmail.com>
On Sun, Jan 25, 2026 at 03:43:01PM +0200, Svyatoslav Ryhel wrote:
> MFD have rigid subdevice structure which does not allow flexible dynamic
> subdevice linking. Address this by diverging CPCAP subdevice composition
> to take into account board specific configuration.
>
> Create a common default subdevice composition, rename existing subdevice
> composition into cpcap_mapphone_mfd_devices since it targets mainly
> Mapphone board.
...
> +#include <linux/of.h>
Why?
...
> + cpcap->cdata = of_device_get_match_data(&spi->dev);
device_get_match_data() from property.h.
> + if (!cpcap->cdata)
> + return -ENODEV;
> +
...
> +static const struct of_device_id cpcap_of_match[] = {
> + { .compatible = "motorola,cpcap", .data = &cpcap_default_data },
> + { .compatible = "st,6556002", .data = &cpcap_default_data },
> + { .compatible = "motorola,mapphone-cpcap", .data = &cpcap_mapphone_data },
> + { /* sentinel */ },
No trailing comma for sentinel.
> +};
> +MODULE_DEVICE_TABLE(of, cpcap_of_match);
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply
* Re: [PATCH v1 02/10] regulator: cpcap-regulator: add support for Mot regulators
From: Svyatoslav Ryhel @ 2026-01-26 10:13 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Dixit Parmar, Tony Lindgren, linux-iio,
devicetree, linux-kernel, linux-input, linux-leds, linux-rtc
In-Reply-To: <aXc9n_gc7TEFvNA8@smile.fi.intel.com>
пн, 26 січ. 2026 р. о 12:10 Andy Shevchenko <andriy.shevchenko@intel.com> пише:
>
> On Sun, Jan 25, 2026 at 03:42:54PM +0200, Svyatoslav Ryhel wrote:
> > Add support for regulator set used in Motorola Mot board, used as a base
> > for Atrix 4G and Droid X2 smartphones.
>
> ...
>
> > +static const unsigned int sw_mot_val_tbl[] = { 600000, 612500, 625000,
> > + 637500, 650000, 662500,
> > + 675000, 687500, 700000,
> > + 712500, 725000, 737500,
> > + 750000, 762500, 775000,
> > + 787500, 800000, 812500,
> > + 825000, 837500, 850000,
> > + 862500, 875000, 887500,
> > + 900000, 912500, 925000,
> > + 937500, 950000, 962500,
> > + 975000, 987500, 1000000,
> > + 1012500, 1025000, 1037500,
> > + 1050000, 1062500, 1075000,
> > + 1087500, 1100000, 1112500,
> > + 1125000, 1137500, 1150000,
> > + 1162500, 1175000, 1187500,
> > + 1200000, 1212500, 1225000,
> > + 1237500, 1250000, 1262500,
> > + 1275000, 1287500, 1300000,
> > + 1312500, 1325000, 1337500,
> > + 1350000, 1362500, 1375000,
> > + 1387500, 1400000, 1412500,
> > + 1425000, 1437500, 1450000,
> > + 1462500, 1475000, };
>
> What a style! (Yeah, I see it's being used elsewhere here...)
>
I have just made it in same way the other tables present in here.
> ...
>
> > + CPCAP_REG(VAUDIO, CPCAP_REG_VAUDIOC, CPCAP_REG_ASSIGN4,
> > + CPCAP_BIT_VAUDIO_SEL, vaudio_val_tbl,
> > + 0x16, 0x1, 0x5, 0, 0),
>
> > + { /* sentinel */ },
>
> No trailing comma for sentinel.
>
noted
> > +};
>
> --
> With Best Regards,
> Andy Shevchenko
>
>
^ permalink raw reply
* Re: [PATCH v1 09/10] mfd: motorola-cpcap: diverge configuration per-board
From: Svyatoslav Ryhel @ 2026-01-26 10:14 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
Lee Jones, Pavel Machek, Liam Girdwood, Mark Brown,
Alexandre Belloni, Dixit Parmar, Tony Lindgren, linux-iio,
devicetree, linux-kernel, linux-input, linux-leds, linux-rtc
In-Reply-To: <aXc-Sklb6QTWLvcE@smile.fi.intel.com>
пн, 26 січ. 2026 р. о 12:13 Andy Shevchenko <andriy.shevchenko@intel.com> пише:
>
> On Sun, Jan 25, 2026 at 03:43:01PM +0200, Svyatoslav Ryhel wrote:
> > MFD have rigid subdevice structure which does not allow flexible dynamic
> > subdevice linking. Address this by diverging CPCAP subdevice composition
> > to take into account board specific configuration.
> >
> > Create a common default subdevice composition, rename existing subdevice
> > composition into cpcap_mapphone_mfd_devices since it targets mainly
> > Mapphone board.
>
> ...
>
> > +#include <linux/of.h>
>
> Why?
>
>
> ...
>
> > + cpcap->cdata = of_device_get_match_data(&spi->dev);
>
> device_get_match_data() from property.h.
>
noted
> > + if (!cpcap->cdata)
> > + return -ENODEV;
> > +
>
> ...
>
> > +static const struct of_device_id cpcap_of_match[] = {
> > + { .compatible = "motorola,cpcap", .data = &cpcap_default_data },
> > + { .compatible = "st,6556002", .data = &cpcap_default_data },
> > + { .compatible = "motorola,mapphone-cpcap", .data = &cpcap_mapphone_data },
>
> > + { /* sentinel */ },
>
> No trailing comma for sentinel.
>
noted
> > +};
> > +MODULE_DEVICE_TABLE(of, cpcap_of_match);
>
> --
> With Best Regards,
> Andy Shevchenko
>
>
^ permalink raw reply
* Re: [PATCH v2] Input: pixcir_i2c_ts - add support for one-time total calibration
From: Michal Vokáč @ 2026-01-26 10:17 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input, linux-kernel, Fabio Estevam
In-Reply-To: <894b86b6-8b80-4ad1-942c-0e1120c0a4ae@ysoft.com>
Hi Dmitry,
second polite ping. Is this falling through the cracks or did I miss to answer/resolve
some of your comments to v1?
On 18. 12. 25 11:22, Michal Vokáč wrote:
> Hi Dmitry,
>
> gentle ping on this.
>
> On 19. 11. 25 18:51, Michal Vokáč wrote:
>> The Pixcir Tango controller has support for a one-time total calibration
>> (manual calibration) procedure. Its purpose is to measure the capacitance
>> offsets of the electrode system and to store these values into EEPROM.
>>
>> During normal operation this calibration data is subtracted from the values
>> measured. This calibration should be necessary only once in the product
>> lifetime. It should be performed as part of the final adjustment after
>> the panel is mounted in the product.
>>
>> Add support for the calibration with sysfs interface.
>>
>> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
>> ---
>> changes in v2:
>> - Removed redundant lock from calibrate_store().
>>
>> drivers/input/touchscreen/pixcir_i2c_ts.c | 26 +++++++++++++++++++++++
>> 1 file changed, 26 insertions(+)
>>
>> diff --git a/drivers/input/touchscreen/pixcir_i2c_ts.c b/drivers/input/touchscreen/pixcir_i2c_ts.c
>> index dad5786e82a4..e52ec8d8e392 100644
>> --- a/drivers/input/touchscreen/pixcir_i2c_ts.c
>> +++ b/drivers/input/touchscreen/pixcir_i2c_ts.c
>> @@ -24,6 +24,7 @@
>> */
>> #define PIXCIR_REG_POWER_MODE 51
>> #define PIXCIR_REG_INT_MODE 52
>> +#define PIXCIR_REG_SPECOP 58
>> /*
>> * Power modes:
>> @@ -462,6 +463,30 @@ static int pixcir_i2c_ts_resume(struct device *dev)
>> static DEFINE_SIMPLE_DEV_PM_OPS(pixcir_dev_pm_ops,
>> pixcir_i2c_ts_suspend, pixcir_i2c_ts_resume);
>> +static ssize_t calibrate_store(struct device *dev,
>> + struct device_attribute *attr,
>> + const char *buf, size_t count)
>> +{
>> + struct i2c_client *client = to_i2c_client(dev);
>> + struct pixcir_i2c_ts_data *ts = i2c_get_clientdata(client);
>> + static const u8 cmd = 0x03;
>> + int error;
>> +
>> + error = i2c_smbus_write_byte_data(ts->client, PIXCIR_REG_SPECOP, cmd);
>> + if (error)
>> + dev_err(dev, "calibrate command failed: %d\n", error);
>> +
>> + return error ?: count;
>> +}
>> +
>> +static DEVICE_ATTR_WO(calibrate);
>> +
>> +static struct attribute *pixcir_i2c_ts_attrs[] = {
>> + &dev_attr_calibrate.attr,
>> + NULL,
>> +};
>> +ATTRIBUTE_GROUPS(pixcir_i2c_ts);
>> +
>> static int pixcir_i2c_ts_probe(struct i2c_client *client)
>> {
>> const struct i2c_device_id *id = i2c_client_get_device_id(client);
>> @@ -600,6 +625,7 @@ MODULE_DEVICE_TABLE(of, pixcir_of_match);
>> static struct i2c_driver pixcir_i2c_ts_driver = {
>> .driver = {
>> .name = "pixcir_ts",
>> + .dev_groups = pixcir_i2c_ts_groups,
>> .pm = pm_sleep_ptr(&pixcir_dev_pm_ops),
>> .of_match_table = of_match_ptr(pixcir_of_match),
>> },
Best regards,
Michal
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox