* [PATCH v2 7/9] ARM: dts: imx: Use fsl,led-control as mc13xxx node name
From: Alexander Kurz @ 2025-08-23 14:44 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Dmitry Torokhov, Dzmitry Sankouski, Dr. David Alan Gilbert,
Heiko Stuebner, Uwe Kleine-König, devicetree, linux-input
Cc: linux-kernel, Alexander Kurz
In-Reply-To: <20250823144441.12654-1-akurz@blala.de>
According to fsl,mc13xxx.yaml, the node name for led-control is
vendor prefixed. Change it accordingly.
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
arch/arm/boot/dts/nxp/imx/imx27-phytec-phycore-som.dtsi | 2 +-
arch/arm/boot/dts/nxp/imx/imx51-zii-rdu1.dts | 2 +-
arch/arm/boot/dts/nxp/imx/imx51-zii-scu2-mezz.dts | 2 +-
arch/arm/boot/dts/nxp/imx/imx51-zii-scu3-esb.dts | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/nxp/imx/imx27-phytec-phycore-som.dtsi b/arch/arm/boot/dts/nxp/imx/imx27-phytec-phycore-som.dtsi
index e958d7286ae9..7785eda84a5d 100644
--- a/arch/arm/boot/dts/nxp/imx/imx27-phytec-phycore-som.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/imx27-phytec-phycore-som.dtsi
@@ -75,7 +75,7 @@ pmic: mc13783@0 {
pmicleds: leds {
#address-cells = <1>;
#size-cells = <0>;
- led-control = <0x001 0x000 0x000 0x000 0x000 0x000>;
+ fsl,led-control = <0x001 0x000 0x000 0x000 0x000 0x000>;
};
regulators {
diff --git a/arch/arm/boot/dts/nxp/imx/imx51-zii-rdu1.dts b/arch/arm/boot/dts/nxp/imx/imx51-zii-rdu1.dts
index 06545a6052f7..6bc749c70a44 100644
--- a/arch/arm/boot/dts/nxp/imx/imx51-zii-rdu1.dts
+++ b/arch/arm/boot/dts/nxp/imx/imx51-zii-rdu1.dts
@@ -396,7 +396,7 @@ vgen3_reg: vgen3 {
leds {
#address-cells = <1>;
#size-cells = <0>;
- led-control = <0x0 0x0 0x3f83f8 0x0>;
+ fsl,led-control = <0x0 0x0 0x3f83f8 0x0>;
sysled0@3 {
reg = <3>;
diff --git a/arch/arm/boot/dts/nxp/imx/imx51-zii-scu2-mezz.dts b/arch/arm/boot/dts/nxp/imx/imx51-zii-scu2-mezz.dts
index 26eb7a9506e4..1bc78e88d2a9 100644
--- a/arch/arm/boot/dts/nxp/imx/imx51-zii-scu2-mezz.dts
+++ b/arch/arm/boot/dts/nxp/imx/imx51-zii-scu2-mezz.dts
@@ -223,7 +223,7 @@ vgen3_reg: vgen3 {
leds {
#address-cells = <1>;
#size-cells = <0>;
- led-control = <0x0 0x0 0x3f83f8 0x0>;
+ fsl,led-control = <0x0 0x0 0x3f83f8 0x0>;
sysled3: led3@3 {
reg = <3>;
diff --git a/arch/arm/boot/dts/nxp/imx/imx51-zii-scu3-esb.dts b/arch/arm/boot/dts/nxp/imx/imx51-zii-scu3-esb.dts
index 19a3b142c964..a4fbfaf532ed 100644
--- a/arch/arm/boot/dts/nxp/imx/imx51-zii-scu3-esb.dts
+++ b/arch/arm/boot/dts/nxp/imx/imx51-zii-scu3-esb.dts
@@ -151,7 +151,7 @@ vgen3_reg: vgen3 {
leds {
#address-cells = <1>;
#size-cells = <0>;
- led-control = <0x0 0x0 0x3f83f8 0x0>;
+ fsl,led-control = <0x0 0x0 0x3f83f8 0x0>;
sysled3: led3@3 {
reg = <3>;
--
2.39.5
^ permalink raw reply related
* [PATCH v2 2/9] Input: mc13783-pwrbutton: use managed resources
From: Alexander Kurz @ 2025-08-23 14:44 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Dmitry Torokhov, Dzmitry Sankouski, Dr. David Alan Gilbert,
Heiko Stuebner, Uwe Kleine-König, devicetree, linux-input
Cc: linux-kernel, Alexander Kurz
In-Reply-To: <20250823144441.12654-1-akurz@blala.de>
Use devres functionality to simplify resource freeing, dev.parent will
be set by devm_input_allocate_device().
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
drivers/input/misc/mc13783-pwrbutton.c | 28 ++++++++------------------
1 file changed, 8 insertions(+), 20 deletions(-)
diff --git a/drivers/input/misc/mc13783-pwrbutton.c b/drivers/input/misc/mc13783-pwrbutton.c
index 4765b25bc9f6..9fd84b8d163d 100644
--- a/drivers/input/misc/mc13783-pwrbutton.c
+++ b/drivers/input/misc/mc13783-pwrbutton.c
@@ -21,6 +21,7 @@
#include <linux/module.h>
#include <linux/kernel.h>
+#include <linux/device.h>
#include <linux/errno.h>
#include <linux/input.h>
#include <linux/interrupt.h>
@@ -118,18 +119,13 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
return -ENODEV;
}
- pwr = input_allocate_device();
- if (!pwr) {
- dev_dbg(&pdev->dev, "Can't allocate power button\n");
+ pwr = devm_input_allocate_device(&pdev->dev);
+ if (!pwr)
return -ENOMEM;
- }
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
- if (!priv) {
- err = -ENOMEM;
- dev_dbg(&pdev->dev, "Can't allocate power button\n");
- goto free_input_dev;
- }
+ priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
+ if (!priv)
+ return -ENOMEM;
reg |= (pdata->b1on_flags & 0x3) << MC13783_POWER_CONTROL_2_ON1BDBNC;
reg |= (pdata->b2on_flags & 0x3) << MC13783_POWER_CONTROL_2_ON2BDBNC;
@@ -155,7 +151,7 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
button1_irq, "b1on", priv);
if (err) {
dev_dbg(&pdev->dev, "Can't request irq\n");
- goto free_priv;
+ goto free_mc13xxx_lock;
}
}
@@ -203,7 +199,6 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
pwr->name = "mc13783_pwrbutton";
pwr->phys = "mc13783_pwrbutton/input0";
- pwr->dev.parent = &pdev->dev;
pwr->keycode = priv->keymap;
pwr->keycodemax = ARRAY_SIZE(priv->keymap);
@@ -234,12 +229,8 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
if (pdata->b1on_flags & MC13783_BUTTON_ENABLE)
mc13xxx_irq_free(mc13783, MC13783_IRQ_ONOFD1, priv);
-free_priv:
+free_mc13xxx_lock:
mc13xxx_unlock(mc13783);
- kfree(priv);
-
-free_input_dev:
- input_free_device(pwr);
return err;
}
@@ -261,9 +252,6 @@ static void mc13783_pwrbutton_remove(struct platform_device *pdev)
mc13xxx_irq_free(priv->mc13783, MC13783_IRQ_ONOFD1, priv);
mc13xxx_unlock(priv->mc13783);
-
- input_unregister_device(priv->pwr);
- kfree(priv);
}
static struct platform_driver mc13783_pwrbutton_driver = {
--
2.39.5
^ permalink raw reply related
* [PATCH v2 6/9] dt-bindings: mfd: fsl,mc13xxx: add buttons node
From: Alexander Kurz @ 2025-08-23 14:44 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Dmitry Torokhov, Dzmitry Sankouski, Dr. David Alan Gilbert,
Heiko Stuebner, Uwe Kleine-König, devicetree, linux-input
Cc: linux-kernel, Alexander Kurz
In-Reply-To: <20250823144441.12654-1-akurz@blala.de>
Add a buttons node and properties describing the "ONOFD" (MC13783) and
"PWRON" (MC13892/MC34708) buttons available in the fsl,mc13xxx PMIC ICs.
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
.../devicetree/bindings/mfd/fsl,mc13xxx.yaml | 58 +++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/fsl,mc13xxx.yaml b/Documentation/devicetree/bindings/mfd/fsl,mc13xxx.yaml
index 94e2f6557376..761267b42c85 100644
--- a/Documentation/devicetree/bindings/mfd/fsl,mc13xxx.yaml
+++ b/Documentation/devicetree/bindings/mfd/fsl,mc13xxx.yaml
@@ -39,6 +39,41 @@ properties:
interrupts:
maxItems: 1
+ buttons:
+ type: object
+ $ref: /schemas/input/input.yaml#
+ description: Buttons
+ properties:
+ reg:
+ description: |
+ One of
+ MC13783 BUTTON IDs:
+ 0: ONOFD1
+ 1: ONOFD2
+ 2: ONOFD3
+ MC13892 BUTTON IDs:
+ 0: PWRON1
+ 1: PWRON2
+ 2: PWRON3
+ MC34708 BUTTON IDs:
+ 0: PWRON1
+ 1: PWRON2
+
+ debounce-delay-ms:
+ enum: [0, 30, 150, 750]
+ default: 30
+ description: |
+ Sets the debouncing delay in milliseconds.
+ Valid values: 0, 30, 150 and 750ms.
+
+ active-low:
+ description: Set active when pin is pulled low.
+
+ fsl,enable-reset:
+ description: |
+ Setting of the global reset option.
+ type: boolean
+
leds:
type: object
$ref: /schemas/leds/common.yaml#
@@ -119,6 +154,10 @@ allOf:
const: fsl,mc13783
then:
properties:
+ buttons:
+ properties:
+ reg:
+ enum: [0, 1, 2]
leds:
properties:
fsl,led-control:
@@ -137,6 +176,10 @@ allOf:
const: fsl,mc13892
then:
properties:
+ buttons:
+ properties:
+ reg:
+ enum: [0, 1, 2]
leds:
properties:
fsl,led-control:
@@ -155,6 +198,10 @@ allOf:
const: fsl,mc34708
then:
properties:
+ buttons:
+ properties:
+ reg:
+ enum: [0, 1]
leds:
properties:
fsl,led-control:
@@ -183,6 +230,17 @@ examples:
fsl,mc13xxx-uses-rtc;
fsl,mc13xxx-uses-adc;
+ buttons {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ onkey1@0 {
+ reg = <0>;
+ debounce-delay-ms = <30>;
+ active-low;
+ fsl,enable-reset;
+ };
+ };
+
leds {
#address-cells = <1>;
#size-cells = <0>;
--
2.39.5
^ permalink raw reply related
* [PATCH v2 3/9] Input: mc13783-pwrbutton: convert pdata members to array
From: Alexander Kurz @ 2025-08-23 14:44 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Dmitry Torokhov, Dzmitry Sankouski, Dr. David Alan Gilbert,
Heiko Stuebner, Uwe Kleine-König, devicetree, linux-input
Cc: linux-kernel, Alexander Kurz
In-Reply-To: <20250823144441.12654-1-akurz@blala.de>
As preparation for mc13783-pwrbutton OF support, convert the members of
mc13xxx_buttons_platform_data to arrays to allow index access within
the next commit.
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
drivers/input/misc/mc13783-pwrbutton.c | 54 +++++++++++++-------------
include/linux/mfd/mc13xxx.h | 8 +---
2 files changed, 29 insertions(+), 33 deletions(-)
diff --git a/drivers/input/misc/mc13783-pwrbutton.c b/drivers/input/misc/mc13783-pwrbutton.c
index 9fd84b8d163d..ace9f286fd24 100644
--- a/drivers/input/misc/mc13783-pwrbutton.c
+++ b/drivers/input/misc/mc13783-pwrbutton.c
@@ -127,24 +127,24 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
if (!priv)
return -ENOMEM;
- reg |= (pdata->b1on_flags & 0x3) << MC13783_POWER_CONTROL_2_ON1BDBNC;
- reg |= (pdata->b2on_flags & 0x3) << MC13783_POWER_CONTROL_2_ON2BDBNC;
- reg |= (pdata->b3on_flags & 0x3) << MC13783_POWER_CONTROL_2_ON3BDBNC;
+ reg |= (pdata->b_on_flags[0] & 0x3) << MC13783_POWER_CONTROL_2_ON1BDBNC;
+ reg |= (pdata->b_on_flags[1] & 0x3) << MC13783_POWER_CONTROL_2_ON2BDBNC;
+ reg |= (pdata->b_on_flags[2] & 0x3) << MC13783_POWER_CONTROL_2_ON3BDBNC;
priv->pwr = pwr;
priv->mc13783 = mc13783;
mc13xxx_lock(mc13783);
- if (pdata->b1on_flags & MC13783_BUTTON_ENABLE) {
- priv->keymap[0] = pdata->b1on_key;
- if (pdata->b1on_key != KEY_RESERVED)
- __set_bit(pdata->b1on_key, pwr->keybit);
+ if (pdata->b_on_flags[0] & MC13783_BUTTON_ENABLE) {
+ priv->keymap[0] = pdata->b_on_key[0];
+ if (pdata->b_on_key[0] != KEY_RESERVED)
+ __set_bit(pdata->b_on_key[0], pwr->keybit);
- if (pdata->b1on_flags & MC13783_BUTTON_POL_INVERT)
+ if (pdata->b_on_flags[0] & MC13783_BUTTON_POL_INVERT)
priv->flags |= MC13783_PWRB_B1_POL_INVERT;
- if (pdata->b1on_flags & MC13783_BUTTON_RESET_EN)
+ if (pdata->b_on_flags[0] & MC13783_BUTTON_RESET_EN)
reg |= MC13783_POWER_CONTROL_2_ON1BRSTEN;
err = mc13xxx_irq_request(mc13783, MC13783_IRQ_ONOFD1,
@@ -155,15 +155,15 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
}
}
- if (pdata->b2on_flags & MC13783_BUTTON_ENABLE) {
- priv->keymap[1] = pdata->b2on_key;
- if (pdata->b2on_key != KEY_RESERVED)
- __set_bit(pdata->b2on_key, pwr->keybit);
+ if (pdata->b_on_flags[1] & MC13783_BUTTON_ENABLE) {
+ priv->keymap[1] = pdata->b_on_key[1];
+ if (pdata->b_on_key[1] != KEY_RESERVED)
+ __set_bit(pdata->b_on_key[1], pwr->keybit);
- if (pdata->b2on_flags & MC13783_BUTTON_POL_INVERT)
+ if (pdata->b_on_flags[1] & MC13783_BUTTON_POL_INVERT)
priv->flags |= MC13783_PWRB_B2_POL_INVERT;
- if (pdata->b2on_flags & MC13783_BUTTON_RESET_EN)
+ if (pdata->b_on_flags[1] & MC13783_BUTTON_RESET_EN)
reg |= MC13783_POWER_CONTROL_2_ON2BRSTEN;
err = mc13xxx_irq_request(mc13783, MC13783_IRQ_ONOFD2,
@@ -174,15 +174,15 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
}
}
- if (pdata->b3on_flags & MC13783_BUTTON_ENABLE) {
- priv->keymap[2] = pdata->b3on_key;
- if (pdata->b3on_key != KEY_RESERVED)
- __set_bit(pdata->b3on_key, pwr->keybit);
+ if (pdata->b_on_flags[2] & MC13783_BUTTON_ENABLE) {
+ priv->keymap[2] = pdata->b_on_key[2];
+ if (pdata->b_on_key[2] != KEY_RESERVED)
+ __set_bit(pdata->b_on_key[2], pwr->keybit);
- if (pdata->b3on_flags & MC13783_BUTTON_POL_INVERT)
+ if (pdata->b_on_flags[2] & MC13783_BUTTON_POL_INVERT)
priv->flags |= MC13783_PWRB_B3_POL_INVERT;
- if (pdata->b3on_flags & MC13783_BUTTON_RESET_EN)
+ if (pdata->b_on_flags[2] & MC13783_BUTTON_RESET_EN)
reg |= MC13783_POWER_CONTROL_2_ON3BRSTEN;
err = mc13xxx_irq_request(mc13783, MC13783_IRQ_ONOFD3,
@@ -218,15 +218,15 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
free_irq:
mc13xxx_lock(mc13783);
- if (pdata->b3on_flags & MC13783_BUTTON_ENABLE)
+ if (pdata->b_on_flags[2] & MC13783_BUTTON_ENABLE)
mc13xxx_irq_free(mc13783, MC13783_IRQ_ONOFD3, priv);
free_irq_b2:
- if (pdata->b2on_flags & MC13783_BUTTON_ENABLE)
+ if (pdata->b_on_flags[1] & MC13783_BUTTON_ENABLE)
mc13xxx_irq_free(mc13783, MC13783_IRQ_ONOFD2, priv);
free_irq_b1:
- if (pdata->b1on_flags & MC13783_BUTTON_ENABLE)
+ if (pdata->b_on_flags[0] & MC13783_BUTTON_ENABLE)
mc13xxx_irq_free(mc13783, MC13783_IRQ_ONOFD1, priv);
free_mc13xxx_lock:
@@ -244,11 +244,11 @@ static void mc13783_pwrbutton_remove(struct platform_device *pdev)
mc13xxx_lock(priv->mc13783);
- if (pdata->b3on_flags & MC13783_BUTTON_ENABLE)
+ if (pdata->b_on_flags[2] & MC13783_BUTTON_ENABLE)
mc13xxx_irq_free(priv->mc13783, MC13783_IRQ_ONOFD3, priv);
- if (pdata->b2on_flags & MC13783_BUTTON_ENABLE)
+ if (pdata->b_on_flags[1] & MC13783_BUTTON_ENABLE)
mc13xxx_irq_free(priv->mc13783, MC13783_IRQ_ONOFD2, priv);
- if (pdata->b1on_flags & MC13783_BUTTON_ENABLE)
+ if (pdata->b_on_flags[0] & MC13783_BUTTON_ENABLE)
mc13xxx_irq_free(priv->mc13783, MC13783_IRQ_ONOFD1, priv);
mc13xxx_unlock(priv->mc13783);
diff --git a/include/linux/mfd/mc13xxx.h b/include/linux/mfd/mc13xxx.h
index f372926d5894..0393083af28a 100644
--- a/include/linux/mfd/mc13xxx.h
+++ b/include/linux/mfd/mc13xxx.h
@@ -187,12 +187,8 @@ struct mc13xxx_leds_platform_data {
#define MC13783_BUTTON_RESET_EN (1 << 4)
struct mc13xxx_buttons_platform_data {
- int b1on_flags;
- unsigned short b1on_key;
- int b2on_flags;
- unsigned short b2on_key;
- int b3on_flags;
- unsigned short b3on_key;
+ int b_on_flags[3];
+ unsigned int b_on_key[3];
};
#define MC13783_TS_ATO_FIRST false
--
2.39.5
^ permalink raw reply related
* [PATCH v2 4/9] Input: mc13783-pwrbutton: enable other mc13xxx PMIC
From: Alexander Kurz @ 2025-08-23 14:44 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Dmitry Torokhov, Dzmitry Sankouski, Dr. David Alan Gilbert,
Heiko Stuebner, Uwe Kleine-König, devicetree, linux-input
Cc: linux-kernel, Alexander Kurz
In-Reply-To: <20250823144441.12654-1-akurz@blala.de>
All three mc13xxx types do feature two common power buttons referred as
ONOFD[12] (mc13783) and PWRON[12] (mc13892/mc34708) in the SoC reference
manuals. Add support for PWRON[12] (mc13892/mc34708) but skip support for
button PWRON3 (mc13892) for sake of simplicity.
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
drivers/input/misc/Kconfig | 4 +--
drivers/input/misc/mc13783-pwrbutton.c | 44 +++++++++++++++++++++++---
include/linux/mfd/mc13783.h | 4 +--
include/linux/mfd/mc13xxx.h | 2 ++
4 files changed, 46 insertions(+), 8 deletions(-)
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 0fb21c99a5e3..b66e920369f2 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -276,8 +276,8 @@ config INPUT_MC13783_PWRBUTTON
tristate "MC13783 ON buttons"
depends on MFD_MC13XXX
help
- Support the ON buttons of MC13783 PMIC as an input device
- reporting power button status.
+ Support the ON buttons of MC13783/MC13892/MC34708 PMIC as an input
+ device reporting power button status.
To compile this driver as a module, choose M here: the module
will be called mc13783-pwrbutton.
diff --git a/drivers/input/misc/mc13783-pwrbutton.c b/drivers/input/misc/mc13783-pwrbutton.c
index ace9f286fd24..c9eea57ceedd 100644
--- a/drivers/input/misc/mc13783-pwrbutton.c
+++ b/drivers/input/misc/mc13783-pwrbutton.c
@@ -30,16 +30,21 @@
#include <linux/sched.h>
#include <linux/slab.h>
+struct mc13xxx_button_devtype {
+ int button_id_max;
+};
+
struct mc13783_pwrb {
struct input_dev *pwr;
struct mc13xxx *mc13783;
-#define MC13783_PWRB_B1_POL_INVERT (1 << 0)
-#define MC13783_PWRB_B2_POL_INVERT (1 << 1)
-#define MC13783_PWRB_B3_POL_INVERT (1 << 2)
int flags;
unsigned short keymap[3];
};
+#define MC13783_PWRB_B1_POL_INVERT (1 << 0)
+#define MC13783_PWRB_B2_POL_INVERT (1 << 1)
+#define MC13783_PWRB_B3_POL_INVERT (1 << 2)
+
#define MC13783_REG_INTERRUPT_SENSE_1 5
#define MC13783_IRQSENSE1_ONOFD1S (1 << 3)
#define MC13783_IRQSENSE1_ONOFD2S (1 << 4)
@@ -108,6 +113,8 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
{
const struct mc13xxx_buttons_platform_data *pdata;
struct mc13xxx *mc13783 = dev_get_drvdata(pdev->dev.parent);
+ struct mc13xxx_button_devtype *devtype =
+ (struct mc13xxx_button_devtype *)pdev->id_entry->driver_data;
struct input_dev *pwr;
struct mc13783_pwrb *priv;
int err = 0;
@@ -127,6 +134,11 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
if (!priv)
return -ENOMEM;
+ if (devtype->button_id_max < 2 && pdata->b_on_flags[2] & 0x3) {
+ dev_err(&pdev->dev, "button not supported\n");
+ return -ENODEV;
+ }
+
reg |= (pdata->b_on_flags[0] & 0x3) << MC13783_POWER_CONTROL_2_ON1BDBNC;
reg |= (pdata->b_on_flags[1] & 0x3) << MC13783_POWER_CONTROL_2_ON2BDBNC;
reg |= (pdata->b_on_flags[2] & 0x3) << MC13783_POWER_CONTROL_2_ON3BDBNC;
@@ -239,12 +251,15 @@ static void mc13783_pwrbutton_remove(struct platform_device *pdev)
{
struct mc13783_pwrb *priv = platform_get_drvdata(pdev);
const struct mc13xxx_buttons_platform_data *pdata;
+ struct mc13xxx_button_devtype *devtype =
+ (struct mc13xxx_button_devtype *)pdev->id_entry->driver_data;
pdata = dev_get_platdata(&pdev->dev);
mc13xxx_lock(priv->mc13783);
- if (pdata->b_on_flags[2] & MC13783_BUTTON_ENABLE)
+ if (devtype->button_id_max >= 2 &&
+ pdata->b_on_flags[2] & MC13783_BUTTON_ENABLE)
mc13xxx_irq_free(priv->mc13783, MC13783_IRQ_ONOFD3, priv);
if (pdata->b_on_flags[1] & MC13783_BUTTON_ENABLE)
mc13xxx_irq_free(priv->mc13783, MC13783_IRQ_ONOFD2, priv);
@@ -254,7 +269,28 @@ static void mc13783_pwrbutton_remove(struct platform_device *pdev)
mc13xxx_unlock(priv->mc13783);
}
+static const struct mc13xxx_button_devtype mc13783_button_devtype = {
+ .button_id_max = 2,
+};
+
+static const struct mc13xxx_button_devtype mc13892_button_devtype = {
+ /* PWRON3 is not supported yet. */
+ .button_id_max = 1,
+};
+
+static const struct mc13xxx_button_devtype mc34708_button_devtype = {
+ .button_id_max = 1,
+};
+
+static const struct platform_device_id mc13xxx_pwrbutton_idtable[] = {
+ { "mc13783-pwrbutton", (kernel_ulong_t)&mc13783_button_devtype },
+ { "mc13892-pwrbutton", (kernel_ulong_t)&mc13892_button_devtype },
+ { "mc34708-pwrbutton", (kernel_ulong_t)&mc34708_button_devtype },
+ { /* sentinel */ }
+};
+
static struct platform_driver mc13783_pwrbutton_driver = {
+ .id_table = mc13xxx_pwrbutton_idtable,
.probe = mc13783_pwrbutton_probe,
.remove = mc13783_pwrbutton_remove,
.driver = {
diff --git a/include/linux/mfd/mc13783.h b/include/linux/mfd/mc13783.h
index c25b1676741b..ab6db774e1fa 100644
--- a/include/linux/mfd/mc13783.h
+++ b/include/linux/mfd/mc13783.h
@@ -65,8 +65,8 @@
#define MC13783_IRQ_UDM 23
#define MC13783_IRQ_1HZ MC13XXX_IRQ_1HZ
#define MC13783_IRQ_TODA MC13XXX_IRQ_TODA
-#define MC13783_IRQ_ONOFD1 27
-#define MC13783_IRQ_ONOFD2 28
+#define MC13783_IRQ_ONOFD1 MC13XXX_IRQ_PWRON1
+#define MC13783_IRQ_ONOFD2 MC13XXX_IRQ_PWRON2
#define MC13783_IRQ_ONOFD3 29
#define MC13783_IRQ_SYSRST MC13XXX_IRQ_SYSRST
#define MC13783_IRQ_RTCRST MC13XXX_IRQ_RTCRST
diff --git a/include/linux/mfd/mc13xxx.h b/include/linux/mfd/mc13xxx.h
index 0393083af28a..36e5e7de7cb2 100644
--- a/include/linux/mfd/mc13xxx.h
+++ b/include/linux/mfd/mc13xxx.h
@@ -67,6 +67,8 @@ int mc13xxx_irq_unmask(struct mc13xxx *mc13xxx, int irq);
#define MC13XXX_IRQ_LOBATH 14
#define MC13XXX_IRQ_1HZ 24
#define MC13XXX_IRQ_TODA 25
+#define MC13XXX_IRQ_PWRON1 27
+#define MC13XXX_IRQ_PWRON2 28
#define MC13XXX_IRQ_SYSRST 30
#define MC13XXX_IRQ_RTCRST 31
#define MC13XXX_IRQ_PC 32
--
2.39.5
^ permalink raw reply related
* [PATCH v2 8/9] leds: mc13783: use fsl,led-control as node name
From: Alexander Kurz @ 2025-08-23 14:44 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Dmitry Torokhov, Dzmitry Sankouski, Dr. David Alan Gilbert,
Heiko Stuebner, Uwe Kleine-König, devicetree, linux-input
Cc: linux-kernel, Alexander Kurz
In-Reply-To: <20250823144441.12654-1-akurz@blala.de>
According to fsl,mc13xxx.yaml, the node name for led-control is
vendor prefixed. Change it accordingly.
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
drivers/leds/leds-mc13783.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/leds/leds-mc13783.c b/drivers/leds/leds-mc13783.c
index e22f09d13798..11add1fd24ce 100644
--- a/drivers/leds/leds-mc13783.c
+++ b/drivers/leds/leds-mc13783.c
@@ -127,7 +127,7 @@ static struct mc13xxx_leds_platform_data __init *mc13xxx_led_probe_dt(
if (!parent)
return ERR_PTR(-ENODATA);
- ret = of_property_read_u32_array(parent, "led-control",
+ ret = of_property_read_u32_array(parent, "fsl,led-control",
pdata->led_control,
leds->devtype->num_regs);
if (ret)
--
2.39.5
^ permalink raw reply related
* [PATCH v2 0/9] Fix, extend and support OF to mc13xxx pwrbutton
From: Alexander Kurz @ 2025-08-23 14:44 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Dmitry Torokhov, Dzmitry Sankouski, Dr. David Alan Gilbert,
Heiko Stuebner, Uwe Kleine-König, devicetree, linux-input
Cc: linux-kernel, Alexander Kurz
Goal of this patch series is to make the mc13892 PWRON1 button usable,
found e.g. on amazon kindle D01100/D01200 readers.
A ten-year-old IRQ issue needed a fix, mc13783-pwrbutton had to be
extended to the other to mc13xxx PMIC as well (keeping the mc13892
PWRON3 key unsupported for simplicity) and adding OF support.
The implementation has been tested on amazon kindle D01100 and D01200
readers using PWRON1 of a mc13892.
V2:
- Convert dt-bindings from txt to fsl,mc13xxx.yaml and add vendor prefix
to led-control property, causing changes in dts and driver.
- Change node name from pwrbuttons to buttons
- Change property debounce-delay-value to debounce-delay-ms
- Fixed a section mismatch error
- Fixed https://lore.kernel.org/r/202508210551.VzAtE5re-lkp@intel.com/
(wrong index used when converting to array access)
- Usage of generic device properties API in mc13783-pwrbutton.c
- Provide chip-specific max button id via platform_device_id, therefore
swap patches 3 and 4.
Thanks in advance for the review effords,
Cheers, Alexnder
Alexander Kurz (9):
Input: mc13783-pwrbutton: fix irq mixup
Input: mc13783-pwrbutton: use managed resources
Input: mc13783-pwrbutton: convert pdata members to array
Input: mc13783-pwrbutton: enable other mc13xxx PMIC
dt-bindings: mfd: fsl,mc13xxx: convert txt to DT schema
dt-bindings: mfd: fsl,mc13xxx: add buttons node
ARM: dts: imx: Use fsl,led-control as mc13xxx node name
leds: mc13783: use fsl,led-control as node name
Input: mc13783-pwrbutton: add OF support
.../devicetree/bindings/mfd/fsl,mc13xxx.yaml | 272 ++++++++++++++++++
.../devicetree/bindings/mfd/mc13xxx.txt | 156 ----------
.../dts/nxp/imx/imx27-phytec-phycore-som.dtsi | 2 +-
arch/arm/boot/dts/nxp/imx/imx51-zii-rdu1.dts | 2 +-
.../boot/dts/nxp/imx/imx51-zii-scu2-mezz.dts | 2 +-
.../boot/dts/nxp/imx/imx51-zii-scu3-esb.dts | 2 +-
drivers/input/misc/Kconfig | 4 +-
drivers/input/misc/mc13783-pwrbutton.c | 235 +++++++++++----
drivers/leds/leds-mc13783.c | 2 +-
include/linux/mfd/mc13783.h | 4 +-
include/linux/mfd/mc13xxx.h | 10 +-
11 files changed, 461 insertions(+), 230 deletions(-)
create mode 100644 Documentation/devicetree/bindings/mfd/fsl,mc13xxx.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/mc13xxx.txt
--
2.39.5
^ permalink raw reply
* [PATCH v2 1/9] Input: mc13783-pwrbutton: fix irq mixup
From: Alexander Kurz @ 2025-08-23 14:44 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Dmitry Torokhov, Dzmitry Sankouski, Dr. David Alan Gilbert,
Heiko Stuebner, Uwe Kleine-König, devicetree, linux-input
Cc: linux-kernel, Alexander Kurz
In-Reply-To: <20250823144441.12654-1-akurz@blala.de>
The mfd mc13xxx interrupt handling was migrated to regmap with commit
10f9edaeaa30 ("mfd: mc13xxx: Use regmap irq framework for interrupts").
As a consequence, button_irq() will get called with virtual irq instead
of chip-internal irq now. Add wrappers for the three supported interrupts.
Signed-off-by: Alexander Kurz <akurz@blala.de>
---
drivers/input/misc/mc13783-pwrbutton.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/drivers/input/misc/mc13783-pwrbutton.c b/drivers/input/misc/mc13783-pwrbutton.c
index 1c7faa9b7afe..4765b25bc9f6 100644
--- a/drivers/input/misc/mc13783-pwrbutton.c
+++ b/drivers/input/misc/mc13783-pwrbutton.c
@@ -88,6 +88,21 @@ static irqreturn_t button_irq(int irq, void *_priv)
return IRQ_HANDLED;
}
+static irqreturn_t button1_irq(int irq, void *_priv)
+{
+ return button_irq(MC13783_IRQ_ONOFD1, _priv);
+}
+
+static irqreturn_t button2_irq(int irq, void *_priv)
+{
+ return button_irq(MC13783_IRQ_ONOFD2, _priv);
+}
+
+static irqreturn_t button3_irq(int irq, void *_priv)
+{
+ return button_irq(MC13783_IRQ_ONOFD3, _priv);
+}
+
static int mc13783_pwrbutton_probe(struct platform_device *pdev)
{
const struct mc13xxx_buttons_platform_data *pdata;
@@ -137,7 +152,7 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
reg |= MC13783_POWER_CONTROL_2_ON1BRSTEN;
err = mc13xxx_irq_request(mc13783, MC13783_IRQ_ONOFD1,
- button_irq, "b1on", priv);
+ button1_irq, "b1on", priv);
if (err) {
dev_dbg(&pdev->dev, "Can't request irq\n");
goto free_priv;
@@ -156,7 +171,7 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
reg |= MC13783_POWER_CONTROL_2_ON2BRSTEN;
err = mc13xxx_irq_request(mc13783, MC13783_IRQ_ONOFD2,
- button_irq, "b2on", priv);
+ button2_irq, "b2on", priv);
if (err) {
dev_dbg(&pdev->dev, "Can't request irq\n");
goto free_irq_b1;
@@ -175,7 +190,7 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
reg |= MC13783_POWER_CONTROL_2_ON3BRSTEN;
err = mc13xxx_irq_request(mc13783, MC13783_IRQ_ONOFD3,
- button_irq, "b3on", priv);
+ button3_irq, "b3on", priv);
if (err) {
dev_dbg(&pdev->dev, "Can't request irq: %d\n", err);
goto free_irq_b2;
--
2.39.5
^ permalink raw reply related
* Re: [PATCH] dt-bindings: input: touchscreen: tsc2007: Document 'wakeup-source'
From: Conor Dooley @ 2025-08-23 13:53 UTC (permalink / raw)
To: Fabio Estevam
Cc: dmitry.torokhov, robh, krzk+dt, conor+dt, Frank.Li, linux-input,
devicetree
In-Reply-To: <20250822213245.125901-1-festevam@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 54 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply
* Re: [PATCH 4/8] hwmon: Add Apple Silicon SMC hwmon driver
From: Guenter Roeck @ 2025-08-23 5:13 UTC (permalink / raw)
To: James Calligeros, Sven Peter, Janne Grunau, Alyssa Rosenzweig,
Neal Gompa, Lee Jones, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Alexandre Belloni, Jean Delvare, Dmitry Torokhov
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-rtc,
linux-hwmon, linux-input
In-Reply-To: <5792171.kQq0lBPeGt@setsuna>
On 8/22/25 20:33, James Calligeros wrote:
> Hi Guenter,
>
> On Wednesday, 20 August 2025 2:02:58 am Australian Eastern Standard Time Guenter Roeck wrote:
>> On 8/19/25 04:47, James Calligeros wrote:
>>> +/*
>>> + * Many sensors report their data as IEEE-754 floats. No other SMC
>>> function uses + * them.
>>> + */
>>> +static int macsmc_hwmon_read_f32_scaled(struct apple_smc *smc, smc_key
>>> key, + int *p, int scale)
>>> +{
>>> + u32 fval;
>>> + u64 val;
>>> + int ret, exp;
>>> +
>>> + ret = apple_smc_read_u32(smc, key, &fval);
>>> + if (ret < 0)
>>> + return ret;
>>> +
>>> + val = ((u64)((fval & FLT_MANT_MASK) | BIT(23)));
>>> + exp = ((fval >> 23) & 0xff) - FLT_EXP_BIAS - FLT_MANT_BIAS;
>>> + if (scale < 0) {
>>> + val <<= 32;
>>> + exp -= 32;
>>> + val /= -scale;
>>
>> I am quiter sure that this doesn't compile on 32 bit builds.
>>
> I don't see why not. We're not doing any 64-bit math on pointers, so we should
Odd (and wrong) answer. What do pointers have to do with 64-bit math ? Nothing.
val is a 64-bit variable, so "val /= -scale" is a 64-bit math operation.
> be safe here. Regardless, this driver depends on MFD_MACSMC, which depends on
> ARCH_APPLE, which is an ARM64 platform, so this driver shouldn't be compiled
> during a 32-bit build anyway.
Right answer.
>
>
>>> +
>>> + ret = of_property_read_string(fan_node, "apple,key-id", &now);
>>> + if (ret) {
>>> + dev_err(dev, "apple,key-id not found in fan node!");
>>> + return -EINVAL;
>>> + }
>>> +
>>> + ret = macsmc_hwmon_parse_key(dev, smc, &fan->now, now);
>>> + if (ret)
>>> + return ret;
>>> +
>>> + if (!of_property_read_string(fan_node, "label", &label))
>>> + strscpy_pad(fan->label, label, sizeof(fan->label));
>>> + else
>>> + strscpy_pad(fan->label, now, sizeof(fan->label));
>>> +
>>> + fan->attrs = HWMON_F_LABEL | HWMON_F_INPUT;
>>> +
>>> + ret = of_property_read_string(fan_node, "apple,fan-minimum", &min);
>>> + if (ret)
>>> + dev_warn(dev, "No minimum fan speed key for %s", fan->label);
>>> + else {
>>> + if (!macsmc_hwmon_parse_key(dev, smc, &fan->min, min))
>>> + fan->attrs |= HWMON_F_MIN;
>>
>> Above the error from macsmc_hwmon_parse_key() results in an abort,
>> here the error is logged in the function and ignored.
>>
>> Either it is an error or it isn't. Ignoring errors is not acceptable.
>> Dumping error messages and ignoring the error is even less acceptable.
>>
> The only strictly required key for fan speed monitoring is apple,key-id,
> which is why it is the only one that causes an early return when parsing
> it fails. If we don't have keys in the DT for min, max, target and mode,
> then all that means is we can't enable manual fan speed control. I don't
> see how making a failure to read these keys non-blocking is unacceptable
> in this context. If this is about the dev_err print in parse_key, then
> I can just get rid of that and have the parse_key callers do it when it's
> actually a blocking error.
dev_err -> it is an error. Don't ignore it. If some of the properties are
optional, they should be defined as such in the devicetree description,
there should be neither an error nor a warning message. Plus, the above
should be explained in a comment so future developers do not wonder and
don't add error handling.
Guenter
^ permalink raw reply
* Re: [PATCH 4/8] hwmon: Add Apple Silicon SMC hwmon driver
From: James Calligeros @ 2025-08-23 3:33 UTC (permalink / raw)
To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alexandre Belloni, Jean Delvare, Dmitry Torokhov, Guenter Roeck
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-rtc,
linux-hwmon, linux-input
In-Reply-To: <56e1f496-a4c7-46a5-bd74-0412c1fd7207@roeck-us.net>
Hi Guenter,
On Wednesday, 20 August 2025 2:02:58 am Australian Eastern Standard Time Guenter Roeck wrote:
> On 8/19/25 04:47, James Calligeros wrote:
> > +/*
> > + * Many sensors report their data as IEEE-754 floats. No other SMC
> > function uses + * them.
> > + */
> > +static int macsmc_hwmon_read_f32_scaled(struct apple_smc *smc, smc_key
> > key, + int *p, int scale)
> > +{
> > + u32 fval;
> > + u64 val;
> > + int ret, exp;
> > +
> > + ret = apple_smc_read_u32(smc, key, &fval);
> > + if (ret < 0)
> > + return ret;
> > +
> > + val = ((u64)((fval & FLT_MANT_MASK) | BIT(23)));
> > + exp = ((fval >> 23) & 0xff) - FLT_EXP_BIAS - FLT_MANT_BIAS;
> > + if (scale < 0) {
> > + val <<= 32;
> > + exp -= 32;
> > + val /= -scale;
>
> I am quiter sure that this doesn't compile on 32 bit builds.
>
I don't see why not. We're not doing any 64-bit math on pointers, so we should
be safe here. Regardless, this driver depends on MFD_MACSMC, which depends on
ARCH_APPLE, which is an ARM64 platform, so this driver shouldn't be compiled
during a 32-bit build anyway.
> > +
> > + ret = of_property_read_string(fan_node, "apple,key-id", &now);
> > + if (ret) {
> > + dev_err(dev, "apple,key-id not found in fan node!");
> > + return -EINVAL;
> > + }
> > +
> > + ret = macsmc_hwmon_parse_key(dev, smc, &fan->now, now);
> > + if (ret)
> > + return ret;
> > +
> > + if (!of_property_read_string(fan_node, "label", &label))
> > + strscpy_pad(fan->label, label, sizeof(fan->label));
> > + else
> > + strscpy_pad(fan->label, now, sizeof(fan->label));
> > +
> > + fan->attrs = HWMON_F_LABEL | HWMON_F_INPUT;
> > +
> > + ret = of_property_read_string(fan_node, "apple,fan-minimum", &min);
> > + if (ret)
> > + dev_warn(dev, "No minimum fan speed key for %s", fan->label);
> > + else {
> > + if (!macsmc_hwmon_parse_key(dev, smc, &fan->min, min))
> > + fan->attrs |= HWMON_F_MIN;
>
> Above the error from macsmc_hwmon_parse_key() results in an abort,
> here the error is logged in the function and ignored.
>
> Either it is an error or it isn't. Ignoring errors is not acceptable.
> Dumping error messages and ignoring the error is even less acceptable.
>
The only strictly required key for fan speed monitoring is apple,key-id,
which is why it is the only one that causes an early return when parsing
it fails. If we don't have keys in the DT for min, max, target and mode,
then all that means is we can't enable manual fan speed control. I don't
see how making a failure to read these keys non-blocking is unacceptable
in this context. If this is about the dev_err print in parse_key, then
I can just get rid of that and have the parse_key callers do it when it's
actually a blocking error.
Regards,
James
^ permalink raw reply
* [PATCH] dt-bindings: input: touchscreen: tsc2007: Document 'wakeup-source'
From: Fabio Estevam @ 2025-08-22 21:32 UTC (permalink / raw)
To: dmitry.torokhov
Cc: robh, krzk+dt, conor+dt, Frank.Li, linux-input, devicetree,
Fabio Estevam
The 'wakeup-source' property is used by many devicetree files and is
also supported by the tsc2007_core driver.
Document it to avoid the following dt-schema warning:
'wakeup-source' does not match any of the regexes: '^pinctrl-[0-9]+$'
Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
.../devicetree/bindings/input/touchscreen/ti.tsc2007.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/input/touchscreen/ti.tsc2007.yaml b/Documentation/devicetree/bindings/input/touchscreen/ti.tsc2007.yaml
index 8bb4bc7df4fa..2a225baeb1a9 100644
--- a/Documentation/devicetree/bindings/input/touchscreen/ti.tsc2007.yaml
+++ b/Documentation/devicetree/bindings/input/touchscreen/ti.tsc2007.yaml
@@ -26,6 +26,8 @@ properties:
pendown-gpio: true
+ wakeup-source: true
+
ti,max-rt:
$ref: /schemas/types.yaml#/definitions/uint32
description: maximum pressure.
--
2.34.1
^ permalink raw reply related
* Re: [PATCH] HID: tighten ioctl command parsing
From: Arnd Bergmann @ 2025-08-22 21:08 UTC (permalink / raw)
To: Benjamin Tissoires, Arnd Bergmann
Cc: Jiri Kosina, Peter Hutterer, linux-input, linux-kernel
In-Reply-To: <tsvy2y4x7xaut6y7fykuc7ltdf777rt2g32zt2biagts6hgjub@iidwntp527og>
On Thu, Aug 21, 2025, at 08:56, Benjamin Tissoires wrote:
> On Jul 11 2025, Arnd Bergmann wrote:
>>
>> + break;
>> + }
>>
>> + hid = dev->hid;
>> + switch (cmd & ~IOCSIZE_MASK) {
>
> Jiri pinged me about this one, and I gave it a go with the existing
> tests I have in selftests... and turns out that this changes the logic
> of the ioctl processing.
>
> The removed block was in the default section of the switch/case
> statement. Now it's added *after*, meaning that any ioctl that was
> normally processed before are now caught in the default of the switch
> statement below and return -ENOTTY.
>
> Running tools/testing/selftests/hid/hid_bpf showed that.
Ah, of course, thanks for checking and describing the issue.
Did you already come up with a fixed patch? I'm currently
travelling and won't be able to send a v2 quickly, so if you
have a version that works for you, let's use that instead.
Arnd
^ permalink raw reply
* Re: [PATCH v1 13/14] dt-bindings: input/touchscreen: Convert MELFAS MIP4 Touchscreen to YAML
From: Rob Herring @ 2025-08-22 15:52 UTC (permalink / raw)
To: Ariel D'Alessandro
Cc: airlied, amergnat, andrew+netdev, andrew-ct.chen,
angelogioacchino.delregno, broonie, chunkuang.hu, ck.hu, conor+dt,
davem, dmitry.torokhov, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
linus.walleij, louisalexis.eyraud, maarten.lankhorst,
matthias.bgg, mchehab, minghsiu.tsai, mripard, p.zabel, pabeni,
sean.wang, simona, support.opensource, tiffany.lin, tzimmermann,
yunfei.dong, devicetree, dri-devel, linux-arm-kernel, linux-clk,
linux-gpio, linux-input, linux-kernel, linux-media,
linux-mediatek, linux-sound, netdev
In-Reply-To: <20250820171302.324142-14-ariel.dalessandro@collabora.com>
On Wed, Aug 20, 2025 at 02:13:01PM -0300, Ariel D'Alessandro wrote:
> Convert the existing text-based DT bindings for MELFAS MIP4 Touchscreen
> controller to a YAML schema.
>
> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
> ---
> .../input/touchscreen/melfas,mip4_ts.yaml | 55 +++++++++++++++++++
> .../input/touchscreen/melfas_mip4.txt | 20 -------
> 2 files changed, 55 insertions(+), 20 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/input/touchscreen/melfas,mip4_ts.yaml
> delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt
>
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/melfas,mip4_ts.yaml b/Documentation/devicetree/bindings/input/touchscreen/melfas,mip4_ts.yaml
> new file mode 100644
> index 0000000000000..170fd4212467e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/touchscreen/melfas,mip4_ts.yaml
> @@ -0,0 +1,55 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/touchscreen/melfas,mip4_ts.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MELFAS MIP4 Touchscreen
> +
> +maintainers:
> + - Ariel D'Alessandro <ariel.dalessandro@collabora.com>
> +
> +properties:
> + compatible:
> + const: "melfas,mip4_ts"
Drop quotes. With that,
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply
* Re: [PATCH v1 12/14] dt-bindings: soc: mediatek: pwrap: Add power-domains property
From: Rob Herring (Arm) @ 2025-08-22 15:50 UTC (permalink / raw)
To: Ariel D'Alessandro
Cc: linux-kernel, linux-media, devicetree, mripard, mchehab, airlied,
amergnat, linux-sound, p.zabel, linux-gpio, matthias.bgg,
kyrie.wu, linux-input, kuba, conor+dt, linux-mediatek,
yunfei.dong, kernel, lgirdwood, minghsiu.tsai, edumazet, jmassot,
simona, louisalexis.eyraud, support.opensource, chunkuang.hu,
andrew-ct.chen, dmitry.torokhov, andrew+netdev, tzimmermann,
maarten.lankhorst, jeesw, broonie, davem, houlong.wei, flora.fu,
pabeni, linux-clk, netdev, linux-arm-kernel, dri-devel,
angelogioacchino.delregno, sean.wang, tiffany.lin, ck.hu, krzk+dt,
linus.walleij
In-Reply-To: <20250820171302.324142-13-ariel.dalessandro@collabora.com>
On Wed, 20 Aug 2025 14:13:00 -0300, Ariel D'Alessandro wrote:
> Currently, the DT bindings for Mediatek PMIC Wrapper is missing the
> power-domains property, which is used in the MT8173 E1 evaluation board
> as it needs USB power domain.
>
> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
> ---
> .../bindings/soc/mediatek/mediatek,pwrap.yaml | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply
* Re: [PATCH v1 09/14] dt-bindings: pinctrl: mediatek,mt65xx-pinctrl: Allow gpio-line-names
From: Rob Herring (Arm) @ 2025-08-22 15:17 UTC (permalink / raw)
To: Ariel D'Alessandro
Cc: airlied, matthias.bgg, krzk+dt, louisalexis.eyraud, minghsiu.tsai,
dmitry.torokhov, support.opensource, linux-kernel, kernel,
edumazet, kuba, jeesw, dri-devel, devicetree, linux-sound,
andrew-ct.chen, linux-input, linux-gpio, davem, mripard, ck.hu,
maarten.lankhorst, linus.walleij, yunfei.dong, houlong.wei,
p.zabel, linux-clk, tzimmermann, chunkuang.hu,
angelogioacchino.delregno, lgirdwood, simona, linux-mediatek,
jmassot, linux-arm-kernel, conor+dt, netdev, amergnat, broonie,
sean.wang, linux-media, tiffany.lin, kyrie.wu, pabeni, flora.fu,
andrew+netdev, mchehab
In-Reply-To: <20250820171302.324142-10-ariel.dalessandro@collabora.com>
On Wed, 20 Aug 2025 14:12:57 -0300, Ariel D'Alessandro wrote:
> Current, the DT bindings for MediaTek's MT65xx Pin controller is missing
> the gpio-line-names property, add it to the associated schema.
>
> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
> ---
> .../devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply
* Re: [PATCH v1 05/14] sound: dt-bindings: Convert MediaTek RT5650 codecs bindings to YAML
From: Rob Herring @ 2025-08-22 15:14 UTC (permalink / raw)
To: Ariel D'Alessandro
Cc: airlied, amergnat, andrew+netdev, andrew-ct.chen,
angelogioacchino.delregno, broonie, chunkuang.hu, ck.hu, conor+dt,
davem, dmitry.torokhov, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
linus.walleij, louisalexis.eyraud, maarten.lankhorst,
matthias.bgg, mchehab, minghsiu.tsai, mripard, p.zabel, pabeni,
sean.wang, simona, support.opensource, tiffany.lin, tzimmermann,
yunfei.dong, devicetree, dri-devel, linux-arm-kernel, linux-clk,
linux-gpio, linux-input, linux-kernel, linux-media,
linux-mediatek, linux-sound, netdev
In-Reply-To: <20250820171302.324142-6-ariel.dalessandro@collabora.com>
On Wed, Aug 20, 2025 at 02:12:53PM -0300, Ariel D'Alessandro wrote:
> Convert the existing text-based DT bindings for Mediatek MT8173 RT5650
> codecs to a YAML schema.
>
> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
> ---
> .../sound/mediatek,mt8173-rt5650.yaml | 73 +++++++++++++++++++
> .../bindings/sound/mt8173-rt5650.txt | 31 --------
> 2 files changed, 73 insertions(+), 31 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt8173-rt5650.yaml
> delete mode 100644 Documentation/devicetree/bindings/sound/mt8173-rt5650.txt
>
> diff --git a/Documentation/devicetree/bindings/sound/mediatek,mt8173-rt5650.yaml b/Documentation/devicetree/bindings/sound/mediatek,mt8173-rt5650.yaml
> new file mode 100644
> index 0000000000000..36e4f9c4c3d62
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/mediatek,mt8173-rt5650.yaml
> @@ -0,0 +1,73 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/mediatek,mt8173-rt5650.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Mediatek MT8173 with RT5650 codecs and HDMI via I2S
> +
> +maintainers:
> + - Ariel D'Alessandro <ariel.dalessandro@collabora.com>
> +
> +properties:
> + compatible:
> + const: "mediatek,mt8173-rt5650"
Drop quotes.
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + mediatek,audio-codec:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
> + description:
> + The phandles of rt5650 codecs and of the HDMI encoder node.
> + minItems: 2
> +
> + mediatek,platform:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + The phandle of MT8173 ASoC platform.
> +
> + mediatek,mclk:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + The MCLK source.
> + 0: external oscillator, MCLK = 12.288M
> + 1: internal source from mt8173, MCLK = sampling rate * 256
> +
> + codec-capture:
> + description: Subnode of rt5650 codec capture.
> + type: object
> +
> + properties:
> + sound-dai:
> + maxItems: 1
> + description: phandle of the CPU DAI
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - mediatek,audio-codec
> + - mediatek,platform
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + sound: sound {
Drop unused label.
> + compatible = "mediatek,mt8173-rt5650";
> + mediatek,audio-codec = <&rt5650 &hdmi0>;
> + mediatek,platform = <&afe>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&aud_i2s2>;
> +
> + mediatek,mclk = <1>;
> + codec-capture {
> + sound-dai = <&rt5650 1>;
> + };
> + };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/mt8173-rt5650.txt b/Documentation/devicetree/bindings/sound/mt8173-rt5650.txt
> deleted file mode 100644
> index 29dce2ac8773a..0000000000000
> --- a/Documentation/devicetree/bindings/sound/mt8173-rt5650.txt
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -MT8173 with RT5650 CODECS and HDMI via I2S
> -
> -Required properties:
> -- compatible : "mediatek,mt8173-rt5650"
> -- mediatek,audio-codec: the phandles of rt5650 codecs
> - and of the hdmi encoder node
> -- mediatek,platform: the phandle of MT8173 ASoC platform
> -
> -Optional subnodes:
> -- codec-capture : the subnode of rt5650 codec capture
> -Required codec-capture subnode properties:
> -- sound-dai: audio codec dai name on capture path
> - <&rt5650 0> : Default setting. Connect rt5650 I2S1 for capture. (dai_name = rt5645-aif1)
> - <&rt5650 1> : Connect rt5650 I2S2 for capture. (dai_name = rt5645-aif2)
> -
> -- mediatek,mclk: the MCLK source
> - 0 : external oscillator, MCLK = 12.288M
> - 1 : internal source from mt8173, MCLK = sampling rate*256
> -
> -Example:
> -
> - sound {
> - compatible = "mediatek,mt8173-rt5650";
> - mediatek,audio-codec = <&rt5650 &hdmi0>;
> - mediatek,platform = <&afe>;
> - mediatek,mclk = <0>;
> - codec-capture {
> - sound-dai = <&rt5650 1>;
> - };
> - };
> -
> --
> 2.50.1
>
^ permalink raw reply
* Re: [PATCH v13 04/10] pwm: max7360: Add MAX7360 PWM support
From: Mathieu Dubois-Briand @ 2025-08-22 12:49 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Kamel Bouhara, Linus Walleij, Bartosz Golaszewski,
Dmitry Torokhov, Michael Walle, Mark Brown, Greg Kroah-Hartman,
Rafael J. Wysocki, Danilo Krummrich, devicetree, linux-kernel,
linux-gpio, linux-input, linux-pwm, andriy.shevchenko,
Grégory Clement, Thomas Petazzoni, Andy Shevchenko
In-Reply-To: <l5crrk3ugpo2ggjtykcy5eretclgntebyq52xuouekoimbrsvh@u4koyu5z2wwi>
On Mon Aug 18, 2025 at 11:05 AM CEST, Uwe Kleine-König wrote:
> Hello,
>
> On Mon, Aug 11, 2025 at 12:46:22PM +0200, Mathieu Dubois-Briand wrote:
>> From: Kamel Bouhara <kamel.bouhara@bootlin.com>
>>
>> Add driver for Maxim Integrated MAX7360 PWM controller, supporting up to
>> 8 independent PWM outputs.
>>
>> Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com>
>> Co-developed-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
>> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
>> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>> ---
>> ...
>> +static int max7360_pwm_round_waveform_tohw(struct pwm_chip *chip,
>> + struct pwm_device *pwm,
>> + const struct pwm_waveform *wf,
>> + void *_wfhw)
>> +{
>> + struct max7360_pwm_waveform *wfhw = _wfhw;
>> + u64 duty_steps;
>> +
>> + /*
>> + * Ignore user provided values for period_length_ns and duty_offset_ns:
>> + * we only support fixed period of MAX7360_PWM_PERIOD_NS and offset of 0.
>> + * Values from 0 to 254 as duty_steps will provide duty cycles of 0/256
>> + * to 254/256, while value 255 will provide a duty cycle of 100%.
>> + */
>> + if (wf->duty_length_ns >= MAX7360_PWM_PERIOD_NS) {
>> + duty_steps = MAX7360_PWM_MAX;
>> + } else {
>> + duty_steps = (u32)wf->duty_length_ns * MAX7360_PWM_STEPS / MAX7360_PWM_PERIOD_NS;
>> + if (duty_steps == MAX7360_PWM_MAX)
>> + duty_steps = MAX7360_PWM_MAX - 1;
>> + }
>> +
>> + wfhw->duty_steps = min(MAX7360_PWM_MAX, duty_steps);
>> + wfhw->enabled = !!wf->period_length_ns;
>> +
>> + if (wf->period_length_ns < MAX7360_PWM_PERIOD_NS)
>
> I know this code was suggested as is by me, but I think we need:
>
> if (wf->period_length_ns && wf->period_length_ns < MAX7360_PWM_PERIOD_NS)
>
> here to prevent to trigger a PWM_DEBUG warning. Sorry to spot this only
> now.
>
Right, this does make sense. I will send a new version shortly.
>> + return 1;
>> + else
>> + return 0;
>> +}
>
> Best regards
> Uwe
Best regards,
Mathieu
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply
* Re: [PATCH v3 3/4] dt-bindings: input: Add TouchNetix axiom touchscreen
From: Krzysztof Kozlowski @ 2025-08-22 8:40 UTC (permalink / raw)
To: Marco Felsch
Cc: Luis Chamberlain, Russ Weight, Greg Kroah-Hartman,
Rafael J. Wysocki, Andrew Morton, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov, Kamel Bouhara,
Marco Felsch, Henrik Rydberg, Danilo Krummrich, linux-kernel,
devicetree, linux-input
In-Reply-To: <20250821-v6-10-topic-touchscreen-axiom-v3-3-940ccee6dba3@pengutronix.de>
On Thu, Aug 21, 2025 at 07:26:38PM +0200, Marco Felsch wrote:
> From: Kamel Bouhara <kamel.bouhara@bootlin.com>
>
> Add the TouchNetix axiom I2C touchscreen device tree bindings
> documentation.
>
> Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com>
> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> ---
> .../input/touchscreen/touchnetix,ax54a.yaml | 62 ++++++++++++++++++++++
> 1 file changed, 62 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply
* [PATCH v2 2/2] Input: zforce_ts - remove dev_err_probe() if error is -ENOMEM
From: Xichao Zhao @ 2025-08-22 3:47 UTC (permalink / raw)
To: Dmitry Torokhov,
open list:INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN)...,
open list
Cc: Xichao Zhao
In-Reply-To: <20250822034751.244248-1-zhao.xichao@vivo.com>
The dev_err_probe() doesn't do anything when error is '-ENOMEM'.
Therefore, remove the useless call to dev_err_probe(), and just
return the value instead.
Signed-off-by: Xichao Zhao <zhao.xichao@vivo.com>
---
drivers/input/touchscreen/zforce_ts.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/input/touchscreen/zforce_ts.c b/drivers/input/touchscreen/zforce_ts.c
index df42fdf36ae3..a360749fa076 100644
--- a/drivers/input/touchscreen/zforce_ts.c
+++ b/drivers/input/touchscreen/zforce_ts.c
@@ -747,8 +747,7 @@ static int zforce_probe(struct i2c_client *client)
input_dev = devm_input_allocate_device(&client->dev);
if (!input_dev)
- return dev_err_probe(&client->dev, -ENOMEM,
- "could not allocate input device\n");
+ return -ENOMEM;
ts->client = client;
ts->input = input_dev;
--
2.34.1
^ permalink raw reply related
* [PATCH v2 1/2] Input: misc: Remove dev_err_probe() if error is -ENOMEM
From: Xichao Zhao @ 2025-08-22 3:47 UTC (permalink / raw)
To: Heiko Stuebner, Dmitry Torokhov,
open list:INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN)...,
open list
Cc: Xichao Zhao
In-Reply-To: <20250822034751.244248-1-zhao.xichao@vivo.com>
The dev_err_probe() doesn't do anything when error is '-ENOMEM'.
Therefore, remove the useless call to dev_err_probe(), and just
return the value instead.
Signed-off-by: Xichao Zhao <zhao.xichao@vivo.com>
---
drivers/input/misc/qnap-mcu-input.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/misc/qnap-mcu-input.c b/drivers/input/misc/qnap-mcu-input.c
index 76e62f0816c1..3be899bfc114 100644
--- a/drivers/input/misc/qnap-mcu-input.c
+++ b/drivers/input/misc/qnap-mcu-input.c
@@ -103,7 +103,7 @@ static int qnap_mcu_input_probe(struct platform_device *pdev)
input = devm_input_allocate_device(dev);
if (!input)
- return dev_err_probe(dev, -ENOMEM, "no memory for input device\n");
+ return -ENOMEM;
idev->input = input;
idev->dev = dev;
--
2.34.1
^ permalink raw reply related
* [PATCH v2 0/2] Input: Remove dev_err_probe() if error is -ENOMEM
From: Xichao Zhao @ 2025-08-22 3:47 UTC (permalink / raw)
To: Heiko Stuebner, Dmitry Torokhov,
open list:INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN)...,
open list
Cc: Xichao Zhao
The dev_err_probe() doesn't do anything when error is '-ENOMEM'.
Therefore, remove the useless call to dev_err_probe(), and just
return the value instead.
---
v2: Split each driver into a separate patch.
---
Xichao Zhao (2):
Input: misc: Remove dev_err_probe() if error is -ENOMEM
Input: zforce_ts - remove dev_err_probe() if error is -ENOMEM
drivers/input/misc/qnap-mcu-input.c | 2 +-
drivers/input/touchscreen/zforce_ts.c | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
--
2.34.1
^ permalink raw reply
* Re: [PATCH] Input: Remove dev_err_probe() if error is -ENOMEM
From: Dmitry Torokhov @ 2025-08-22 2:48 UTC (permalink / raw)
To: Xichao Zhao; +Cc: heiko, linux-input, linux-kernel
In-Reply-To: <20250821094751.573411-1-zhao.xichao@vivo.com>
Hi Xichao,
On Thu, Aug 21, 2025 at 05:47:51PM +0800, Xichao Zhao wrote:
> The dev_err_probe() doesn't do anything when error is '-ENOMEM'.
> Therefore, remove the useless call to dev_err_probe(), and just
> return the value instead.
>
> Signed-off-by: Xichao Zhao <zhao.xichao@vivo.com>
> ---
> drivers/input/misc/qnap-mcu-input.c | 2 +-
> drivers/input/touchscreen/zforce_ts.c | 3 +--
Please split per-driver.
> 2 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/input/misc/qnap-mcu-input.c b/drivers/input/misc/qnap-mcu-input.c
> index 76e62f0816c1..3be899bfc114 100644
> --- a/drivers/input/misc/qnap-mcu-input.c
> +++ b/drivers/input/misc/qnap-mcu-input.c
> @@ -103,7 +103,7 @@ static int qnap_mcu_input_probe(struct platform_device *pdev)
>
> input = devm_input_allocate_device(dev);
> if (!input)
> - return dev_err_probe(dev, -ENOMEM, "no memory for input device\n");
> + return -ENOMEM;
>
> idev->input = input;
> idev->dev = dev;
> diff --git a/drivers/input/touchscreen/zforce_ts.c b/drivers/input/touchscreen/zforce_ts.c
> index df42fdf36ae3..a360749fa076 100644
> --- a/drivers/input/touchscreen/zforce_ts.c
> +++ b/drivers/input/touchscreen/zforce_ts.c
> @@ -747,8 +747,7 @@ static int zforce_probe(struct i2c_client *client)
>
> input_dev = devm_input_allocate_device(&client->dev);
> if (!input_dev)
> - return dev_err_probe(&client->dev, -ENOMEM,
> - "could not allocate input device\n");
> + return -ENOMEM;
>
> ts->client = client;
> ts->input = input_dev;
Thanks.
--
Dmitry
^ permalink raw reply
* Re: [RESEND v2 1/1] dt-bindings: input: convert lpc32xx-key.txt to yaml format
From: Dmitry Torokhov @ 2025-08-22 2:44 UTC (permalink / raw)
To: Frank Li
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Vladimir Zapolskiy, Piotr Wojtaszczyk,
open list:INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN)...,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
moderated list:ARM/LPC32XX SOC SUPPORT, open list, imx
In-Reply-To: <20250818183814.3603308-1-Frank.Li@nxp.com>
On Mon, Aug 18, 2025 at 02:38:13PM -0400, Frank Li wrote:
> Convert lpc32xx-key.txt to yaml format.
>
> Additional changes:
> - set maximum of key-row(column) to 4.
> - add ref to matrix-keymap.yaml.
>
> Reviewed-by: Vladimir Zapolskiy <vz@mleia.com>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
Applied, thank you.
--
Dmitry
^ permalink raw reply
* Re: [REGRESSSION] on linux-next (next-20250509)
From: Rodrigo Vivi @ 2025-08-21 19:26 UTC (permalink / raw)
To: Lucas De Marchi
Cc: Luke Jones, Borah, Chaitanya Kumar,
intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
Saarinen, Jani, Kurmi, Suresh Kumar, Nikula, Jani,
linux-input@vger.kernel.org, platform-driver-x86@vger.kernel.org,
Corentin Chary, Hans de Goede, Ilpo Järvinen
In-Reply-To: <iwo3m4fclstsm4lqmomdmlvk7gwtxjupbczbcw6i2ib5cqv2na@nsu3y5kzqzsp>
On Thu, Jul 03, 2025 at 09:43:41AM -0500, Lucas De Marchi wrote:
> Hi,
>
> On Wed, May 28, 2025 at 03:07:51PM +0200, Luke Jones wrote:
> > On Wed, 28 May 2025, at 12:08 PM, Borah, Chaitanya Kumar wrote:
> > > Hello Luke,
> > >
> > > Hope you are doing well. I am Chaitanya from the linux graphics team in Intel.
> > >
> > > This mail is regarding a regression we are seeing in our CI runs[1] on
> > > linux-next repository.
> >
> > Can you tell me if the fix here was included?
> > https://lkml.org/lkml/2025/5/24/152
> >
> > I could change to:
> > static void asus_s2idle_check_register(void)
> > {
> > // Only register for Ally devices
> > if (dmi_check_system(asus_rog_ally_device)) {
> > if (acpi_register_lps0_dev(&asus_ally_s2idle_dev_ops))
> > pr_warn("failed to register LPS0 sleep handler in asus-wmi\n");
> > }
> > }
> >
> > but I don't really understand what is happening here. The inner lps0 functions won't run unless use_ally_mcu_hack is set.
> >
> > I will do my best to fix but I need to understand what happened a bit better.
Hi Luke, is there anything we could do to help here? Any log or info that
could help from this machine?
This bug is blocking some of our CI runs here.
Thanks,
Rodrigo.
>
> Any updates here? This is basically killing our tests for drm-xe-fixes
> we are submitting to 6.16 since it taints the kernel. If we can't fix,
> maybe it's already late enough in RCs that we should need a revert?
>
> FWIW, for 6.17 we have a branch on the side we also merge before testing
> and we've been including the change above to stop it from killing the
> rest of our CI:
> https://gitlab.freedesktop.org/drm/i915/kernel/-/commit/e9d0926aa1c6afcc920013c39d5bd6dd85f581fb
>
> Lucas De Marchi
^ 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