From: Abdel Alkuor <alkuor@gmail.com>
To: heikki.krogerus@linux.intel.com,
krzysztof.kozlowski+dt@linaro.org, bryan.odonoghue@linaro.org
Cc: gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org, ryan.eleceng@gmail.com,
robh+dt@kernel.org, conor+dt@kernel.org,
devicetree@vger.kernel.org, Abdel Alkuor <abdelalkuor@geotab.com>
Subject: [PATCH v9 11/14] USB: typec: tps6598x: Enable sleep mode for tps25750
Date: Sun, 1 Oct 2023 04:11:31 -0400 [thread overview]
Message-ID: <20231001081134.37101-12-alkuor@gmail.com> (raw)
In-Reply-To: <20231001081134.37101-1-alkuor@gmail.com>
From: Abdel Alkuor <abdelalkuor@geotab.com>
Allow controller to enter sleep mode after the device
is idle for sleep time.
Signed-off-by: Abdel Alkuor <abdelalkuor@geotab.com>
---
Changes in v9:
- No changes
Changes in v8:
- No changes
Changes in v7:
- Add driver name to commit subject
Changes in v6:
- Use tps25750_init instead of tps25750_apply_patch in resume
as it initializes sleep mode
Changes in v5:
- Incorporating tps25750 into tps6598x driver
drivers/usb/typec/tipd/core.c | 23 +++++++++++++++++++++--
drivers/usb/typec/tipd/tps6598x.h | 3 +++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c
index ae08c5306707..ddb5db7d5855 100644
--- a/drivers/usb/typec/tipd/core.c
+++ b/drivers/usb/typec/tipd/core.c
@@ -43,6 +43,7 @@
#define TPS_REG_PD_STATUS 0x40
#define TPS_REG_RX_IDENTITY_SOP 0x48
#define TPS_REG_DATA_STATUS 0x5f
+#define TPS_REG_SLEEP_CONF 0x70
/* TPS_REG_SYSTEM_CONF bits */
#define TPS_SYSCONF_PORTINFO(c) ((c) & 7)
@@ -1041,6 +1042,24 @@ static int tps25750_apply_patch(struct tps6598x *tps)
return 0;
};
+static int tps25750_init(struct tps6598x *tps)
+{
+ int ret;
+
+ ret = tps25750_apply_patch(tps);
+ if (ret)
+ return ret;
+
+ ret = tps6598x_write8(tps, TPS_REG_SLEEP_CONF,
+ TPS_SLEEP_CONF_SLEEP_MODE_ALLOWED);
+ if (ret)
+ dev_warn(tps->dev,
+ "%s: failed to enable sleep mode: %d\n",
+ __func__, ret);
+
+ return 0;
+}
+
static int
tps6598x_register_port(struct tps6598x *tps, struct fwnode_handle *fwnode)
{
@@ -1211,7 +1230,7 @@ static int tps6598x_probe(struct i2c_client *client)
return ret;
if (is_tps25750 && ret == TPS_MODE_PTCH) {
- ret = tps25750_apply_patch(tps);
+ ret = tps25750_init(tps);
if (ret)
return ret;
}
@@ -1348,7 +1367,7 @@ static int __maybe_unused tps6598x_resume(struct device *dev)
return ret;
if (device_is_compatible(tps->dev, "ti,tps25750") && ret == TPS_MODE_PTCH) {
- ret = tps25750_apply_patch(tps);
+ ret = tps25750_init(tps);
if (ret)
return ret;
}
diff --git a/drivers/usb/typec/tipd/tps6598x.h b/drivers/usb/typec/tipd/tps6598x.h
index 3a9a43394134..f86b5e96efba 100644
--- a/drivers/usb/typec/tipd/tps6598x.h
+++ b/drivers/usb/typec/tipd/tps6598x.h
@@ -213,4 +213,7 @@
#define TPS_PD_STATUS_PORT_TYPE_SOURCE 2
#define TPS_PD_STATUS_PORT_TYPE_SOURCE_SINK 3
+/* SLEEP CONF REG */
+#define TPS_SLEEP_CONF_SLEEP_MODE_ALLOWED BIT(0)
+
#endif /* __TPS6598X_H__ */
--
2.34.1
next prev parent reply other threads:[~2023-10-01 8:15 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-01 8:11 [PATCH v9 00/14] Add TPS25750 USB type-C PD controller support Abdel Alkuor
2023-10-01 8:11 ` [PATCH v9 01/14] dt-bindings: usb: tps6598x: Add tps25750 Abdel Alkuor
2023-10-01 8:11 ` [PATCH v9 02/14] USB: typec: tsp6598x: Add cmd timeout and response delay Abdel Alkuor
2023-10-01 8:11 ` [PATCH v9 03/14] USB: typec: tps6598x: Add patch mode to tps6598x Abdel Alkuor
2023-10-03 5:28 ` Heikki Krogerus
2023-10-01 8:11 ` [PATCH v9 04/14] USB: typec: tps6598x: Load TPS25750 patch bundle Abdel Alkuor
2023-10-03 5:30 ` Heikki Krogerus
2023-10-03 7:01 ` Heikki Krogerus
2023-10-01 8:11 ` [PATCH v9 05/14] USB: typec: tps6598x: Check for EEPROM present Abdel Alkuor
2023-10-03 5:34 ` Heikki Krogerus
2023-10-03 11:11 ` Abdel Alkuor
2023-10-01 8:11 ` [PATCH v9 06/14] USB: typec: tps6598x: Clear dead battery flag Abdel Alkuor
2023-10-03 6:03 ` Heikki Krogerus
2023-10-03 11:13 ` Abdel Alkuor
2023-10-01 8:11 ` [PATCH v9 07/14] USB: typec: tps6598x: Apply patch again after power resume Abdel Alkuor
2023-10-03 6:21 ` Heikki Krogerus
2023-10-03 11:14 ` Abdel Alkuor
2023-10-01 8:11 ` [PATCH v9 08/14] USB: typec: tps6598x: Add interrupt support for TPS25750 Abdel Alkuor
2023-10-03 6:39 ` Heikki Krogerus
2023-10-03 11:18 ` Abdel Alkuor
2023-10-01 8:11 ` [PATCH v9 09/14] USB: typec: tps6598x: Refactor tps6598x port registration Abdel Alkuor
2023-10-03 6:43 ` Heikki Krogerus
2023-10-01 8:11 ` [PATCH v9 10/14] USB: typec: tps6598x: Add port registration for tps25750 Abdel Alkuor
2023-10-03 6:50 ` Heikki Krogerus
2023-10-01 8:11 ` Abdel Alkuor [this message]
2023-10-01 8:11 ` [PATCH v9 12/14] USB: typec: tps6598x: Add trace for tps25750 irq Abdel Alkuor
2023-10-01 8:11 ` [PATCH v9 13/14] USB: typec: tps6598x: Add power status trace for tps25750 Abdel Alkuor
2023-10-01 8:11 ` [PATCH v9 14/14] USB: typec: tps6598x: Add " Abdel Alkuor
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=20231001081134.37101-12-alkuor@gmail.com \
--to=alkuor@gmail.com \
--cc=abdelalkuor@geotab.com \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=ryan.eleceng@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).