[PATCH v9 0/4] Introduce PMIC based USB type C detection

From: Wesley Cheng
Date: Fri Sep 04 2020 - 04:22:57 EST


Changes in v9:
- Fixed dt-binding to reference usb-connector from the 'connector' node,
removed properties that didn't have further constraints (than specified in
usb-connector.yaml), and make 'reg' a required property.
- Moved vbus_reg get call into probe(), and will fail if the regulator is not
available.
- Removed some references from qcom_pmic_typec, as they were not needed after
probe().
- Moved interrupt registration until after all used variables were initialized.

Changes in v8:
- Simplified some property definitions, and corrected the
connector reference in the dt binding.

Changes in v7:
- Fixups in qcom-pmic-typec.c to remove uncesscary includes, printk formatting,
and revising some logic operations.

Changes in v6:
- Removed qcom_usb_vbus-regulator.c and qcom,usb-vbus-regulator.yaml from the
series as they have been merged on regulator.git
- Added separate references to the usb-connector.yaml in qcom,pmic-typec.yaml
instead of referencing the entire schema.

Changes in v5:
- Fix dt_binding_check warning/error in qcom,pmic-typec.yaml

Changes in v4:
- Modified qcom,pmic-typec binding to include the SS mux and the DRD remote
endpoint nodes underneath port@1, which is assigned to the SSUSB path
according to usb-connector
- Added usb-connector reference to the typec dt-binding
- Added tags to the usb type c and vbus nodes
- Removed "qcom" tags from type c and vbus nodes
- Modified Kconfig module name, and removed module alias from the typec driver

Changes in v3:
- Fix driver reference to match driver name in Kconfig for
qcom_usb_vbus-regulator.c
- Utilize regulator bitmap helpers for enable, disable and is enabled calls in
qcom_usb_vbus-regulator.c
- Use of_get_regulator_init_data() to initialize regulator init data, and to
set constraints in qcom_usb_vbus-regulator.c
- Remove the need for a local device structure in the vbus regulator driver

Changes in v2:
- Use devm_kzalloc() in qcom_pmic_typec_probe()
- Add checks to make sure return value of typec_find_port_power_role() is
valid
- Added a VBUS output regulator driver, which will be used by the PMIC USB
type c driver to enable/disable the source
- Added logic to control vbus source from the PMIC type c driver when
UFP/DFP is detected
- Added dt-binding for this new regulator driver
- Fixed Kconfig typec notation to match others
- Leave type C block disabled until enabled by a platform DTS

Wesley Cheng (4):
usb: typec: Add QCOM PMIC typec detection driver
dt-bindings: usb: Add Qualcomm PMIC type C controller dt-binding
arm64: boot: dts: qcom: pm8150b: Add node for USB type C block
arm64: boot: dts: qcom: pm8150b: Add DTS node for PMIC VBUS booster

.../bindings/usb/qcom,pmic-typec.yaml | 108 ++++++++
arch/arm64/boot/dts/qcom/pm8150b.dtsi | 13 +
arch/arm64/boot/dts/qcom/sm8150-mtp.dts | 4 +
drivers/usb/typec/Kconfig | 12 +
drivers/usb/typec/Makefile | 1 +
drivers/usb/typec/qcom-pmic-typec.c | 262 ++++++++++++++++++
6 files changed, 400 insertions(+)
create mode 100644 Documentation/devicetree/bindings/usb/qcom,pmic-typec.yaml
create mode 100644 drivers/usb/typec/qcom-pmic-typec.c

--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project