From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: amitsd@google.com
Cc: "Badhri Jagan Sridharan" <badhri@google.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
"André Draszik" <andre.draszik@linaro.org>,
"RD Babiera" <rdbabiera@google.com>,
"Kyle Tso" <kyletso@google.com>
Subject: Re: [PATCH v2 2/3] usb: typec: tcpci: implement get_current_limit
Date: Fri, 9 Oct 2026 13:33:35 +0200 [thread overview]
Message-ID: <asjRD28ogxDOtory@black.igk.intel.com> (raw)
In-Reply-To: <20261004-max77759-icl-typec-v2-2-866caf9e7d9a@google.com>
On Sun, Oct 04, 2026 at 03:41:00AM +0000, Amit Sunil Dhamne via B4 Relay wrote:
> From: Amit Sunil Dhamne <amitsd@google.com>
>
> Implement a callback for tcpc_dev::get_current_limit. This acts like a
> conduit to relay the current limit information from chip level tcpc
> drivers.
>
> This does not introduce any functional changes for chip level drivers
> that do not implement tcpci_data::get_current_limit.
>
> Assisted-by: LLM
> Signed-off-by: Amit Sunil Dhamne <amitsd@google.com>
> Reviewed-by: Badhri Jagan Sridharan <badhri@google.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
> drivers/usb/typec/tcpm/tcpci.c | 14 ++++++++++++++
> include/linux/usb/tcpci.h | 6 ++++++
> 2 files changed, 20 insertions(+)
>
> diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c
> index 6717ac914c6a..f1bc1ac0a556 100644
> --- a/drivers/usb/typec/tcpm/tcpci.c
> +++ b/drivers/usb/typec/tcpm/tcpci.c
> @@ -250,6 +250,19 @@ static int tcpci_get_cc(struct tcpc_dev *tcpc,
> return 0;
> }
>
> +static int tcpci_get_current_limit(struct tcpc_dev *tcpc)
> +{
> + struct tcpci *tcpci = tcpc_to_tcpci(tcpc);
> + int ret;
> +
> + if (!tcpci->data->get_current_limit)
> + return 0;
> +
> + ret = tcpci->data->get_current_limit(tcpci, tcpci->data);
> +
> + return ret < 0 ? 0 : ret;
> +}
> +
> static int tcpci_set_polarity(struct tcpc_dev *tcpc,
> enum typec_cc_polarity polarity)
> {
> @@ -861,6 +874,7 @@ struct tcpci *tcpci_register_port(struct device *dev, struct tcpci_data *data)
> tcpci->tcpc.set_cc = tcpci_set_cc;
> tcpci->tcpc.apply_rc = tcpci_apply_rc;
> tcpci->tcpc.get_cc = tcpci_get_cc;
> + tcpci->tcpc.get_current_limit = tcpci_get_current_limit;
> tcpci->tcpc.set_polarity = tcpci_set_polarity;
> tcpci->tcpc.set_vconn = tcpci_set_vconn;
> tcpci->tcpc.start_toggling = tcpci_start_toggling;
> diff --git a/include/linux/usb/tcpci.h b/include/linux/usb/tcpci.h
> index 9b46a6bc762c..580fbdac7ede 100644
> --- a/include/linux/usb/tcpci.h
> +++ b/include/linux/usb/tcpci.h
> @@ -205,6 +205,11 @@ struct tcpci;
> * swap following Discover Identity on SOP' occurs.
> * Return true when the TCPM is allowed to request a Vconn swap
> * after Discovery Identity on SOP.
> + * @get_current_limit:
> + * Optional; Called when the port is a sink and CC=Rp-def to obtain
> + * the current limit. Chip level drivers can implement their own
> + * detection and return the limit in mA, or 0 when it cannot be
> + * determined.
> * @set_orientation:
> * Optional; Enable setting the connector orientation
> * CONFIG_STANDARD_OUTPUT (0x18) bit0.
> @@ -228,6 +233,7 @@ struct tcpci_data {
> bool capable);
> void (*check_contaminant)(struct tcpci *tcpci, struct tcpci_data *data);
> bool (*attempt_vconn_swap_discovery)(struct tcpci *tcpci, struct tcpci_data *data);
> + int (*get_current_limit)(struct tcpci *tcpci, struct tcpci_data *data);
> };
>
> struct tcpci *tcpci_register_port(struct device *dev, struct tcpci_data *data);
>
> --
> 2.56.0.rc1.315.gc6ed9934b7-goog
>
--
heikki
next prev parent reply other threads:[~2026-10-09 11:33 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-04 3:40 [PATCH v2 0/3] usb: typec: report a current limit for non-PD Rp-def sources Amit Sunil Dhamne via B4 Relay
2026-10-04 3:40 ` Amit Sunil Dhamne
2026-10-04 3:40 ` [PATCH v2 1/3] usb: typec: tcpm: only call get_current_limit() for cc=Rp-def Amit Sunil Dhamne via B4 Relay
2026-10-04 3:40 ` Amit Sunil Dhamne
2026-10-09 11:33 ` Heikki Krogerus
2026-10-04 3:41 ` [PATCH v2 2/3] usb: typec: tcpci: implement get_current_limit Amit Sunil Dhamne via B4 Relay
2026-10-04 3:41 ` Amit Sunil Dhamne
2026-10-09 11:33 ` Heikki Krogerus [this message]
2026-10-04 3:41 ` [PATCH v2 3/3] usb: typec: tcpci_maxim: " Amit Sunil Dhamne via B4 Relay
2026-10-04 3:41 ` Amit Sunil Dhamne
2026-10-09 11:34 ` Heikki Krogerus
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=asjRD28ogxDOtory@black.igk.intel.com \
--to=heikki.krogerus@linux.intel.com \
--cc=amitsd@google.com \
--cc=andre.draszik@linaro.org \
--cc=badhri@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=kyletso@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=rdbabiera@google.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.