All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] RFC: USB C extcon patchset for the tps6598x
@ 2020-09-14 16:46 Angus Ainslie
  2020-09-14 16:46 ` [PATCH 1/4] extcon: Add USB VBUS properties Angus Ainslie
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Angus Ainslie @ 2020-09-14 16:46 UTC (permalink / raw)
  To: kernel
  Cc: MyungJoo Ham, Chanwoo Choi, Heikki Krogerus, Greg Kroah-Hartman,
	linux-kernel, linux-usb, bryan.odonoghue, Angus Ainslie

We have a complex set of hardware components to manage our USB C data and
power. For these to work together we decided to use extcon to communicate
the system changes as various cables and devices are plugged in/out. We did
look at usb_roleswitch and the charging framework but thought it would be
preferable to keep all of the information together in one system.

The components we have in the system are:

1) TPS65982 type USB type C controller
2) dwc3 IP in the imx8mq
3) BQ25895 battery charger

I'll break this into 2 parts the data role and the power role.

For the data role the TPS65982 senses connect and disconnect as well as data
source/sink. It is also controlling the USB 3 data lanes. The display port and
USB 3 muxing is handled by a different chip and we'll submit patches for that
later on. The dwc3 controls the USB 2 data lanes.

On the power side there are even more moving pieces. The TPS65982 negotiates
the power delivery contract, the dwc3 senses the BC1.2 charging current and the
BQ25895 sets whether we are sinking or sourcing current and what the current
limit is of the sink and source.

For both the data and power roles no single chip has all of the required
information. Is using extcon the correct way of doing this and if not what
are the alternatives ?

The extcon extensions allow us to communicate the the power roles amongst
the various chips.

This patch series has been tested with the 5.9-rc4 kernel on the Purism
Librem5 HW. Assuming this is the correct way to use extcon there will be
follow on patches to the BQ25895 and dwc3 drivers.

Strictly speaking only the first 3 patches are needed for extcon support, the
forth patch decodes the power delivery contracts which makes use of the extcon
system.


Angus Ainslie (4):
  extcon: Add USB VBUS properties
  usb: typec: tps6589x: register as an extcon provider
  usb: typec: tps6598x: Add the extcon USB chargers
  usb: typec: tps6598x: Add the power delivery irq

 drivers/usb/typec/tps6598x.c | 488 ++++++++++++++++++++++++++++++++++-
 include/linux/extcon.h       |  17 +-
 2 files changed, 503 insertions(+), 2 deletions(-)

-- 
2.25.1


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

end of thread, other threads:[~2020-09-24 14:42 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-14 16:46 [PATCH 0/4] RFC: USB C extcon patchset for the tps6598x Angus Ainslie
2020-09-14 16:46 ` [PATCH 1/4] extcon: Add USB VBUS properties Angus Ainslie
2020-09-15  1:40   ` Chanwoo Choi
2020-09-15 13:31     ` Angus Ainslie
2020-09-14 16:46 ` [PATCH 2/4] usb: typec: tps6589x: register as an extcon provider Angus Ainslie
2020-09-15  1:19   ` Chanwoo Choi
2020-09-15 13:32     ` Angus Ainslie
2020-09-14 16:46 ` [PATCH 3/4] usb: typec: tps6598x: Add the extcon USB chargers Angus Ainslie
2020-09-14 16:46 ` [PATCH 4/4] usb: typec: tps6598x: Add the power delivery irq Angus Ainslie
2020-09-24 14:42   ` kernel test robot
2020-09-21 14:37 ` [PATCH 0/4] RFC: USB C extcon patchset for the tps6598x Heikki Krogerus
2020-09-22 21:15   ` Angus Ainslie

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.