From: Andreas Kemnade <andreas@kemnade.info>
To: lee@kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
bcousson@baylibre.com, tony@atomide.com, andreas@kemnade.info,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-omap@vger.kernel.org
Subject: [PATCH v3 2/6] twl-core: add power off implementation for twl603x
Date: Sun, 3 Dec 2023 23:28:59 +0100 [thread overview]
Message-ID: <20231203222903.343711-3-andreas@kemnade.info> (raw)
In-Reply-To: <20231203222903.343711-1-andreas@kemnade.info>
If the system-power-controller property is there, enable power off.
Implementation is based on a Linux v3.0 vendor kernel.
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
drivers/mfd/twl-core.c | 28 ++++++++++++++++++++++++++++
include/linux/mfd/twl.h | 1 +
2 files changed, 29 insertions(+)
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
index 6e384a79e3418..f3982d18008d1 100644
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -124,6 +124,11 @@
#define TWL6030_BASEADD_RSV 0x0000
#define TWL6030_BASEADD_ZERO 0x0000
+/* some fields in TWL6030_PHOENIX_DEV_ON */
+#define TWL6030_APP_DEVOFF BIT(0)
+#define TWL6030_CON_DEVOFF BIT(1)
+#define TWL6030_MOD_DEVOFF BIT(2)
+
/* Few power values */
#define R_CFG_BOOT 0x05
@@ -687,6 +692,20 @@ static void twl_remove(struct i2c_client *client)
twl_priv->ready = false;
}
+static void twl6030_power_off(void)
+{
+ int err;
+ u8 val;
+
+ err = twl_i2c_read_u8(TWL_MODULE_PM_MASTER, &val, TWL6030_PHOENIX_DEV_ON);
+ if (err)
+ return;
+
+ val |= TWL6030_APP_DEVOFF | TWL6030_CON_DEVOFF | TWL6030_MOD_DEVOFF;
+ twl_i2c_write_u8(TWL_MODULE_PM_MASTER, val, TWL6030_PHOENIX_DEV_ON);
+}
+
+
static struct of_dev_auxdata twl_auxdata_lookup[] = {
OF_DEV_AUXDATA("ti,twl4030-gpio", 0, "twl4030-gpio", NULL),
{ /* sentinel */ },
@@ -852,6 +871,15 @@ twl_probe(struct i2c_client *client)
goto free;
}
+ if (twl_class_is_6030()) {
+ if (of_device_is_system_power_controller(node)) {
+ if (!pm_power_off)
+ pm_power_off = twl6030_power_off;
+ else
+ dev_warn(&client->dev, "Poweroff callback already assigned\n");
+ }
+ }
+
status = of_platform_populate(node, NULL, twl_auxdata_lookup,
&client->dev);
diff --git a/include/linux/mfd/twl.h b/include/linux/mfd/twl.h
index c062d91a67d92..85dc406173dba 100644
--- a/include/linux/mfd/twl.h
+++ b/include/linux/mfd/twl.h
@@ -461,6 +461,7 @@ static inline int twl6030_mmc_card_detect(struct device *dev, int slot)
#define TWL4030_PM_MASTER_GLOBAL_TST 0xb6
+#define TWL6030_PHOENIX_DEV_ON 0x06
/*----------------------------------------------------------------------*/
/* Power bus message definitions */
--
2.39.2
next prev parent reply other threads:[~2023-12-03 22:29 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-03 22:28 [PATCH v3 0/6] mfd: twl: system-power-controller Andreas Kemnade
2023-12-03 22:28 ` [PATCH v3 1/6] dt-bindings: mfd: ti,twl: Document system-power-controller Andreas Kemnade
2023-12-03 22:28 ` Andreas Kemnade [this message]
2023-12-07 17:11 ` [PATCH v3 2/6] twl-core: add power off implementation for twl603x Lee Jones
2023-12-07 18:11 ` Andreas Kemnade
2023-12-03 22:29 ` [PATCH v3 3/6] ARM: dts: omap-embt2ws: system-power-controller for bt200 Andreas Kemnade
2023-12-03 22:29 ` [PATCH v3 4/6] ARM: dts: omap4-panda-common: Enable powering off the device Andreas Kemnade
2023-12-03 22:29 ` [PATCH v3 5/6] mfd: twl4030-power: accept standard property for power controller Andreas Kemnade
2023-12-07 17:13 ` Lee Jones
2023-12-07 23:13 ` Andreas Kemnade
2023-12-03 22:29 ` [PATCH v3 6/6] ARM: dts: omap: gta04: standardize system-power-controller Andreas Kemnade
2023-12-03 22:46 ` Adam Ford
2023-12-04 22:27 ` Andreas Kemnade
2023-12-07 6:43 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231203222903.343711-3-andreas@kemnade.info \
--to=andreas@kemnade.info \
--cc=bcousson@baylibre.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.