usb: typec: qcom: Add Qualcomm PMIC Type-C driver
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Mon, 8 May 2023 14:23:02 +0000 (15:23 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 May 2023 10:03:46 +0000 (19:03 +0900)
commita4422ff221429c600c3dc5d0394fb3738b89d040
treec442efc2b0956ecab5fa8ffd6c3d63d0d9c6ad95
parent00bb478b829e68b856681002f52b00f8581316e6
usb: typec: qcom: Add Qualcomm PMIC Type-C driver

This commit adds a QCOM PMIC TCPM driver with an initial pm8150b
block.

The driver is layered as follows:

qcom_pmic_typec.c : Responsible for registering with TCPM and arbitrates
                    access to the Type-C and PDPHY hardware blocks in one
                    place.  This presents a single TCPM device to device to
                    the Linux TCPM layer.

qcom_pmic_typec_pdphy.c: Responsible for interfacing with the PDPHY hardware and
                         processing power-delivery related calls from TCPM.
                         This hardware binding can be extended to
                         facilitate similar hardware in different PMICs.

qcom_pmic_typec_port.c: Responsible for notifying and processing Type-C
                        related calls from TCPM. Similar to the pdphy this
                        layer can be extended to handle the specifics of
                        different Qualcomm PMIC Type-C port managers.

This code provides all of the same functionality as the existing
qcom typec driver plus power-delivery as well.

As a result commit 6c8cf3695176 ("usb: typec: Add QCOM PMIC typec detection
driver") can be deleted entirely.

References code from Jonathan Marek, Jack Pham, Wesley Cheng, Hemant Kumar,
Guru Das Srinagesh and Ashay Jaiswal.

Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Link: https://lore.kernel.org/r/20230508142308.1656410-8-bryan.odonoghue@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 files changed:
MAINTAINERS
drivers/usb/typec/Kconfig
drivers/usb/typec/Makefile
drivers/usb/typec/qcom-pmic-typec.c [deleted file]
drivers/usb/typec/tcpm/Kconfig
drivers/usb/typec/tcpm/Makefile
drivers/usb/typec/tcpm/qcom/Makefile [new file with mode: 0644]
drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c [new file with mode: 0644]
drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c [new file with mode: 0644]
drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.h [new file with mode: 0644]
drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c [new file with mode: 0644]
drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.h [new file with mode: 0644]