* [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it
@ 2023-12-20 23:54 Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 08/22] arm64: dts: mediatek: mt8173: Enable cros-ec-spi as wake source Mark Hasemeyer
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Mark Hasemeyer @ 2023-12-20 23:54 UTC (permalink / raw)
To: LKML
Cc: AngeloGioacchino Del Regno, Krzysztof Kozlowski, Tzung-Bi Shih,
Raul Rangel, Konrad Dybcio, Andy Shevchenko, Rob Herring,
Sudeep Holla, Mark Hasemeyer, Alim Akhtar, Andre Przywara,
Andy Shevchenko, Bartosz Golaszewski, Benson Leung,
Bhanu Prakash Maiya, Bjorn Andersson, Chen-Yu Tsai, Conor Dooley,
Daniel Scally, David Gow, Enric Balletbo i Serra, Frank Rowand,
Greg Kroah-Hartman, Guenter Roeck, Heikki Krogerus,
Heiko Stuebner, Jesper Nilsson, Jisheng Zhang, Jonathan Hunter,
Krzysztof Kozlowski, Kunihiko Hayashi, Lee Jones, Len Brown,
Linus Walleij, Mark Brown, Matthias Brugger, Mika Westerberg,
Patrice Chotard, Prashant Malani, Rafael J. Wysocki, Rob Barnes,
Rob Herring, Romain Perier, Sakari Ailus, Stephen Boyd,
Takashi Iwai, Thierry Reding, Uwe Kleine-König, Wei Xu,
Wolfram Sang, chrome-platform, cros-qcom-dts-watchers, devicetree,
linux-acpi, linux-arm-kernel, linux-arm-msm, linux-gpio,
linux-i2c, linux-mediatek, linux-rockchip, linux-samsung-soc,
linux-tegra
Currently the cros_ec driver assumes that its associated interrupt is
wake capable. This is an incorrect assumption as some Chromebooks use a
separate wake pin, while others overload the interrupt for wake and IO.
This patch train updates the driver to query the underlying ACPI/DT data
to determine whether or not the IRQ should be enabled for wake.
Both the device tree and ACPI systems have methods for reporting IRQ
wake capability. In device tree based systems, a node can advertise
itself as a 'wakeup-source'. In ACPI based systems, GpioInt and
Interrupt resource descriptors can use the 'SharedAndWake' or
'ExclusiveAndWake' share types.
Some logic is added to the platform, ACPI, and DT subsystems to more
easily pipe wakeirq information up to the driver.
Changes in v2:
-Rebase on linux-next
-Add cover letter
-See each patch for patch specific changes
Mark Hasemeyer (22):
gpiolib: acpi: Modify acpi_dev_irq_wake_get_by() to use resource
i2c: acpi: Modify i2c_acpi_get_irq() to use resource
Documentation: devicetree: Clarify wording for wakeup-source property
ARM: dts: tegra: Enable cros-ec-spi as wake source
ARM: dts: rockchip: rk3288: Enable cros-ec-spi as wake source
ARM: dts: samsung: exynos5420: Enable cros-ec-spi as wake source
ARM: dts: samsung: exynos5800: Enable cros-ec-spi as wake source
arm64: dts: mediatek: mt8173: Enable cros-ec-spi as wake source
arm64: dts: mediatek: mt8183: Enable cros-ec-spi as wake source
arm64: dts: mediatek: mt8192: Enable cros-ec-spi as wake source
arm64: dts: mediatek: mt8195: Enable cros-ec-spi as wake source
arm64: dts: tegra: Enable cros-ec-spi as wake source
arm64: dts: qcom: sc7180: Enable cros-ec-spi as wake source
arm64: dts: qcom: sc7280: Enable cros-ec-spi as wake source
arm64: dts: qcom: sdm845: Enable cros-ec-spi as wake source
arm64: dts: rockchip: rk3399: Enable cros-ec-spi as wake source
of: irq: add wake capable bit to of_irq_resource()
of: irq: Add default implementation for of_irq_to_resource()
of: irq: Remove extern from function declarations
device property: Modify fwnode irq_get() to use resource
platform: Modify platform_get_irq_optional() to use resource
platform/chrome: cros_ec: Use PM subsystem to manage wakeirq
.../bindings/power/wakeup-source.txt | 18 +++--
arch/arm/boot/dts/nvidia/tegra124-nyan.dtsi | 1 +
arch/arm/boot/dts/nvidia/tegra124-venice2.dts | 1 +
.../rockchip/rk3288-veyron-chromebook.dtsi | 1 +
.../boot/dts/samsung/exynos5420-peach-pit.dts | 1 +
.../boot/dts/samsung/exynos5800-peach-pi.dts | 1 +
arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi | 1 +
.../arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 1 +
.../boot/dts/mediatek/mt8192-asurada.dtsi | 1 +
.../boot/dts/mediatek/mt8195-cherry.dtsi | 1 +
.../arm64/boot/dts/nvidia/tegra132-norrin.dts | 1 +
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 1 +
.../arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 1 +
.../arm64/boot/dts/qcom/sc7280-idp-ec-h1.dtsi | 1 +
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 1 +
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 1 +
drivers/acpi/property.c | 11 ++-
drivers/base/platform.c | 74 +++++++++++++------
drivers/base/property.c | 24 +++++-
drivers/gpio/gpiolib-acpi.c | 25 ++++---
drivers/i2c/i2c-core-acpi.c | 38 +++++-----
drivers/i2c/i2c-core-base.c | 6 +-
drivers/i2c/i2c-core.h | 4 +-
drivers/of/irq.c | 32 +++++++-
drivers/of/property.c | 8 +-
drivers/platform/chrome/cros_ec.c | 9 ---
drivers/platform/chrome/cros_ec_lpc.c | 52 ++++++++++++-
drivers/platform/chrome/cros_ec_spi.c | 41 ++++++++--
drivers/platform/chrome/cros_ec_uart.c | 34 +++++++--
include/linux/acpi.h | 23 +++---
include/linux/fwnode.h | 8 +-
include/linux/of_irq.h | 41 +++++-----
include/linux/platform_data/cros_ec_proto.h | 2 -
include/linux/platform_device.h | 3 +
include/linux/property.h | 2 +
35 files changed, 328 insertions(+), 142 deletions(-)
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v2 08/22] arm64: dts: mediatek: mt8173: Enable cros-ec-spi as wake source
2023-12-20 23:54 [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Mark Hasemeyer
@ 2023-12-20 23:54 ` Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 09/22] arm64: dts: mediatek: mt8183: " Mark Hasemeyer
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Mark Hasemeyer @ 2023-12-20 23:54 UTC (permalink / raw)
To: LKML
Cc: AngeloGioacchino Del Regno, Krzysztof Kozlowski, Tzung-Bi Shih,
Raul Rangel, Konrad Dybcio, Andy Shevchenko, Rob Herring,
Sudeep Holla, Mark Hasemeyer, Conor Dooley, Krzysztof Kozlowski,
Matthias Brugger, Rob Herring, devicetree, linux-arm-kernel,
linux-mediatek
The cros_ec driver currently assumes that cros-ec-spi compatible device
nodes are a wakeup-source even though the wakeup-source property is not
defined.
Add the wakeup-source property to all cros-ec-spi compatible device
nodes to match expected behavior.
Signed-off-by: Mark Hasemeyer <markhas@chromium.org>
---
Changes in v2:
-Split by arch/soc
arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi b/arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi
index 111495622cacd..190a3ffd81471 100644
--- a/arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi
@@ -1163,6 +1163,7 @@ cros_ec: ec@0 {
interrupt-parent = <&pio>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
google,cros-ec-spi-msg-delay = <500>;
+ wakeup-source;
i2c_tunnel: i2c-tunnel0 {
compatible = "google,cros-ec-i2c-tunnel";
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 09/22] arm64: dts: mediatek: mt8183: Enable cros-ec-spi as wake source
2023-12-20 23:54 [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 08/22] arm64: dts: mediatek: mt8173: Enable cros-ec-spi as wake source Mark Hasemeyer
@ 2023-12-20 23:54 ` Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 10/22] arm64: dts: mediatek: mt8192: " Mark Hasemeyer
` (2 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Mark Hasemeyer @ 2023-12-20 23:54 UTC (permalink / raw)
To: LKML
Cc: AngeloGioacchino Del Regno, Krzysztof Kozlowski, Tzung-Bi Shih,
Raul Rangel, Konrad Dybcio, Andy Shevchenko, Rob Herring,
Sudeep Holla, Mark Hasemeyer, Conor Dooley, Krzysztof Kozlowski,
Matthias Brugger, Rob Herring, devicetree, linux-arm-kernel,
linux-mediatek
The cros_ec driver currently assumes that cros-ec-spi compatible device
nodes are a wakeup-source even though the wakeup-source property is not
defined.
Add the wakeup-source property to all cros-ec-spi compatible device
nodes to match expected behavior.
Signed-off-by: Mark Hasemeyer <markhas@chromium.org>
---
Changes in v2:
-Split by arch/soc
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
index 7881a27be0297..06cbf29d16215 100644
--- a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
@@ -922,6 +922,7 @@ cros_ec: cros-ec@0 {
interrupts = <151 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&ec_ap_int_odl>;
+ wakeup-source;
i2c_tunnel: i2c-tunnel {
compatible = "google,cros-ec-i2c-tunnel";
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 10/22] arm64: dts: mediatek: mt8192: Enable cros-ec-spi as wake source
2023-12-20 23:54 [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 08/22] arm64: dts: mediatek: mt8173: Enable cros-ec-spi as wake source Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 09/22] arm64: dts: mediatek: mt8183: " Mark Hasemeyer
@ 2023-12-20 23:54 ` Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 11/22] arm64: dts: mediatek: mt8195: " Mark Hasemeyer
2023-12-21 13:42 ` [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Andy Shevchenko
4 siblings, 0 replies; 8+ messages in thread
From: Mark Hasemeyer @ 2023-12-20 23:54 UTC (permalink / raw)
To: LKML
Cc: AngeloGioacchino Del Regno, Krzysztof Kozlowski, Tzung-Bi Shih,
Raul Rangel, Konrad Dybcio, Andy Shevchenko, Rob Herring,
Sudeep Holla, Mark Hasemeyer, Conor Dooley, Krzysztof Kozlowski,
Matthias Brugger, Rob Herring, devicetree, linux-arm-kernel,
linux-mediatek
The cros_ec driver currently assumes that cros-ec-spi compatible device
nodes are a wakeup-source even though the wakeup-source property is not
defined.
Add the wakeup-source property to all cros-ec-spi compatible device
nodes to match expected behavior.
Signed-off-by: Mark Hasemeyer <markhas@chromium.org>
---
Changes in v2:
-Split by arch/soc
arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
index f2281250ac35d..ab44d382f757e 100644
--- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
@@ -1332,6 +1332,7 @@ cros_ec: ec@0 {
spi-max-frequency = <3000000>;
pinctrl-names = "default";
pinctrl-0 = <&cros_ec_int>;
+ wakeup-source;
#address-cells = <1>;
#size-cells = <0>;
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 11/22] arm64: dts: mediatek: mt8195: Enable cros-ec-spi as wake source
2023-12-20 23:54 [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Mark Hasemeyer
` (2 preceding siblings ...)
2023-12-20 23:54 ` [PATCH v2 10/22] arm64: dts: mediatek: mt8192: " Mark Hasemeyer
@ 2023-12-20 23:54 ` Mark Hasemeyer
2023-12-21 13:42 ` [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Andy Shevchenko
4 siblings, 0 replies; 8+ messages in thread
From: Mark Hasemeyer @ 2023-12-20 23:54 UTC (permalink / raw)
To: LKML
Cc: AngeloGioacchino Del Regno, Krzysztof Kozlowski, Tzung-Bi Shih,
Raul Rangel, Konrad Dybcio, Andy Shevchenko, Rob Herring,
Sudeep Holla, Mark Hasemeyer, Conor Dooley, Krzysztof Kozlowski,
Matthias Brugger, Rob Herring, devicetree, linux-arm-kernel,
linux-mediatek
The cros_ec driver currently assumes that cros-ec-spi compatible device
nodes are a wakeup-source even though the wakeup-source property is not
defined.
Add the wakeup-source property to all cros-ec-spi compatible device
nodes to match expected behavior.
Signed-off-by: Mark Hasemeyer <markhas@chromium.org>
---
Changes in v2:
-Split by arch/soc
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi b/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
index 5a7cab489ff3a..4292b72566bcf 100644
--- a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
@@ -1067,6 +1067,7 @@ cros_ec: ec@0 {
pinctrl-names = "default";
pinctrl-0 = <&cros_ec_int>;
spi-max-frequency = <3000000>;
+ wakeup-source;
keyboard-backlight {
compatible = "google,cros-kbd-led-backlight";
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it
2023-12-20 23:54 [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Mark Hasemeyer
` (3 preceding siblings ...)
2023-12-20 23:54 ` [PATCH v2 11/22] arm64: dts: mediatek: mt8195: " Mark Hasemeyer
@ 2023-12-21 13:42 ` Andy Shevchenko
2023-12-22 22:30 ` Mark Hasemeyer
4 siblings, 1 reply; 8+ messages in thread
From: Andy Shevchenko @ 2023-12-21 13:42 UTC (permalink / raw)
To: Mark Hasemeyer
Cc: LKML, chrome-platform, cros-qcom-dts-watchers, devicetree,
linux-acpi, linux-arm-kernel, linux-arm-msm, linux-gpio,
linux-i2c, linux-mediatek, linux-rockchip, linux-samsung-soc,
linux-tegra
On Wed, Dec 20, 2023 at 04:54:14PM -0700, Mark Hasemeyer wrote:
> Currently the cros_ec driver assumes that its associated interrupt is
> wake capable. This is an incorrect assumption as some Chromebooks use a
> separate wake pin, while others overload the interrupt for wake and IO.
> This patch train updates the driver to query the underlying ACPI/DT data
> to determine whether or not the IRQ should be enabled for wake.
>
> Both the device tree and ACPI systems have methods for reporting IRQ
> wake capability. In device tree based systems, a node can advertise
> itself as a 'wakeup-source'. In ACPI based systems, GpioInt and
> Interrupt resource descriptors can use the 'SharedAndWake' or
> 'ExclusiveAndWake' share types.
>
> Some logic is added to the platform, ACPI, and DT subsystems to more
> easily pipe wakeirq information up to the driver.
Just wondering if you used --histogram diff algo when preparing patches.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it
2023-12-21 13:42 ` [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Andy Shevchenko
@ 2023-12-22 22:30 ` Mark Hasemeyer
2023-12-27 16:01 ` Andy Shevchenko
0 siblings, 1 reply; 8+ messages in thread
From: Mark Hasemeyer @ 2023-12-22 22:30 UTC (permalink / raw)
To: Andy Shevchenko
Cc: LKML, chrome-platform, cros-qcom-dts-watchers, devicetree,
linux-acpi, linux-arm-kernel, linux-arm-msm, linux-gpio,
linux-i2c, linux-mediatek, linux-rockchip, linux-samsung-soc,
linux-tegra
> Just wondering if you used --histogram diff algo when preparing patches.
Not knowingly. I use patman which uses 'git format-patch' under the
covers with some added options:
https://github.com/siemens/u-boot/blob/master/tools/patman/gitutil.py#L308
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it
2023-12-22 22:30 ` Mark Hasemeyer
@ 2023-12-27 16:01 ` Andy Shevchenko
0 siblings, 0 replies; 8+ messages in thread
From: Andy Shevchenko @ 2023-12-27 16:01 UTC (permalink / raw)
To: Mark Hasemeyer
Cc: LKML, chrome-platform, cros-qcom-dts-watchers, devicetree,
linux-acpi, linux-arm-kernel, linux-arm-msm, linux-gpio,
linux-i2c, linux-mediatek, linux-rockchip, linux-samsung-soc,
linux-tegra
On Fri, Dec 22, 2023 at 03:30:43PM -0700, Mark Hasemeyer wrote:
> > Just wondering if you used --histogram diff algo when preparing patches.
>
> Not knowingly. I use patman which uses 'git format-patch' under the
> covers with some added options:
> https://github.com/siemens/u-boot/blob/master/tools/patman/gitutil.py#L308
Add a configuration into your ~/.gitconfig (or local for the project),
it really makes the difference.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-12-27 16:01 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-20 23:54 [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 08/22] arm64: dts: mediatek: mt8173: Enable cros-ec-spi as wake source Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 09/22] arm64: dts: mediatek: mt8183: " Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 10/22] arm64: dts: mediatek: mt8192: " Mark Hasemeyer
2023-12-20 23:54 ` [PATCH v2 11/22] arm64: dts: mediatek: mt8195: " Mark Hasemeyer
2023-12-21 13:42 ` [PATCH v2 00/22] Improve IRQ wake capability reporting and update the cros_ec driver to use it Andy Shevchenko
2023-12-22 22:30 ` Mark Hasemeyer
2023-12-27 16:01 ` Andy Shevchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox