mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/3] usb: typec: report a current limit for non-PD Rp-def sources
@ 2026-10-01 22:51 Amit Sunil Dhamne via B4 Relay
  2026-10-01 22:51 ` [PATCH 1/3] usb: typec: tcpm: only call get_current_limit() for cc=Rp-def Amit Sunil Dhamne via B4 Relay
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Amit Sunil Dhamne via B4 Relay @ 2026-10-01 22:51 UTC (permalink / raw)
  To: Badhri Jagan Sridharan, Heikki Krogerus, Greg Kroah-Hartman
  Cc: linux-usb, linux-kernel, André Draszik, RD Babiera,
	Kyle Tso, Amit Sunil Dhamne

As per Sec. 4.6.2.1 of the Type-C cable & connector spec when the
source advertises Rp-default, the current limit is set as per the
USB 2.0/USB 3.2 specification, BC1.2 specification as applicable or the
PD negotiation.

Reset value for the Input Current Limit register for the MAX77759
charger is 500 mA. Prior to the max77759_charger driver, the battery
would always charge at that limit since it wasn't re-programmed. Since
the driver was introduced, for any non-PD source advertising Rp-default,
the charger turns off as tcpm reports the current limit to be 0. The
max77759_charger driver reads POWER_SUPPLY_PROP_CURRENT_MAX from the
"tcpm-source" power supply that tcpm_set_current_limit() updates, and
programs its input current limit from it. The limit is 0 because the
tcpm doesn't have visibility on the USB data speed or BC1.2 detection.
As a workaround for the Rp-default case, let the Type-C stack report a
USB 2.0 current limit of 500 mA so that the behavior is at parity with
what was before. This is until we implement a conduit for USB core to
communicate with the Type-C stack.

Signed-off-by: Amit Sunil Dhamne <amitsd@google.com>
---
Amit Sunil Dhamne (3):
      usb: typec: tcpm: only call get_current_limit() for cc=Rp-def
      usb: typec: tcpci: implement get_current_limit
      usb: typec: tcpci_maxim: implement get_current_limit

 drivers/usb/typec/tcpm/tcpci.c            | 14 ++++++++++++++
 drivers/usb/typec/tcpm/tcpci_maxim_core.c | 15 +++++++++++++++
 drivers/usb/typec/tcpm/tcpm.c             |  7 +++----
 include/linux/usb/tcpci.h                 |  6 ++++++
 4 files changed, 38 insertions(+), 4 deletions(-)
---
base-commit: 551c722f40809618230001baccf219193e22fc5a
change-id: 20260918-max77759-icl-typec-8dfb9f83d712

Best regards,
-- 
Amit Sunil Dhamne <amitsd@google.com>



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-10-09 11:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-01 22:51 [PATCH 0/3] usb: typec: report a current limit for non-PD Rp-def sources Amit Sunil Dhamne via B4 Relay
2026-10-01 22:51 ` [PATCH 1/3] usb: typec: tcpm: only call get_current_limit() for cc=Rp-def Amit Sunil Dhamne via B4 Relay
2026-10-02  9:48   ` André Draszik
2026-10-01 22:51 ` [PATCH 2/3] usb: typec: tcpci: implement get_current_limit Amit Sunil Dhamne via B4 Relay
2026-10-01 22:51 ` [PATCH 3/3] usb: typec: tcpci_maxim: " Amit Sunil Dhamne via B4 Relay
2026-10-09 11:19 ` [PATCH 0/3] usb: typec: report a current limit for non-PD Rp-def sources Heikki Krogerus
2026-10-09 11:32   ` Heikki Krogerus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®