WSL2-Linux-Kernel/drivers/regulator
Mark Brown d5ff5fb977
Merge series "Introduce PMIC based USB type C detection" from Wesley Cheng <wcheng@codeaurora.org>:
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

Add the required drivers for implementing type C orientation and role
detection using the Qualcomm PMIC.  Currently, PMICs such as the PM8150B
have an integrated type C block, which can be utilized for this.  This
series adds the dt-binding, PMIC type C driver, and DTS nodes.

The PMIC type C driver will register itself as a type C port w/ a
registered type C switch for orientation, and will fetch a USB role switch
handle for the role notifications.  It will also have the ability to enable
the VBUS output to any connected devices based on if the device is behaving
as a UFP or DFP.

Wesley Cheng (6):
  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
  regulator: Add support for QCOM PMIC VBUS booster
  dt-bindings: regulator: Add dt-binding for QCOM PMIC VBUS output
    regulator
  arm64: boot: dts: qcom: pm8150b: Add DTS node for PMIC VBUS booster

 .../regulator/qcom,usb-vbus-regulator.yaml    |  41 +++
 .../bindings/usb/qcom,pmic-typec.yaml         | 113 +++++++
 arch/arm64/boot/dts/qcom/pm8150b.dtsi         |  13 +
 arch/arm64/boot/dts/qcom/sm8150-mtp.dts       |   4 +
 drivers/regulator/Kconfig                     |  10 +
 drivers/regulator/Makefile                    |   1 +
 drivers/regulator/qcom_usb_vbus-regulator.c   |  97 ++++++
 drivers/usb/typec/Kconfig                     |  12 +
 drivers/usb/typec/Makefile                    |   1 +
 drivers/usb/typec/qcom-pmic-typec.c           | 275 ++++++++++++++++++
 10 files changed, 567 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/regulator/qcom,usb-vbus-regulator.yaml
 create mode 100644 Documentation/devicetree/bindings/usb/qcom,pmic-typec.yaml
 create mode 100644 drivers/regulator/qcom_usb_vbus-regulator.c
 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
2020-07-01 21:53:29 +01:00
..
88pg86x.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
88pm800-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
88pm8607.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Kconfig regulator: Add support for QCOM PMIC VBUS booster 2020-07-01 18:07:15 +01:00
Makefile regulator: Add support for QCOM PMIC VBUS booster 2020-07-01 18:07:15 +01:00
aat2870-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
ab3100.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
ab8500-ext.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
ab8500.c regulator: ab8500: Remove unused embedded struct expand_register 2020-06-25 20:11:13 +01:00
act8865-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
act8945a-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
ad5398.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
anatop-regulator.c regulator: anatop: Constify anatop_core_rops 2020-06-18 13:47:31 +01:00
arizona-ldo1.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
arizona-micsupp.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
as3711-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
as3722-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
axp20x-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
bcm590xx-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
bd718x7-regulator.c regulator: bd718x7: remove voltage change restriction from BD71847 LDOs 2020-05-14 18:26:11 +01:00
bd9571mwv-regulator.c
bd70528-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
bd71828-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
core.c regulator: core: Add regulator bypass trace points 2020-05-29 17:17:02 +01:00
cpcap-regulator.c regulator: cpcap-regulator: Demote kerneldoc header to standard comment 2020-06-25 20:11:16 +01:00
cros-ec-regulator.c regulator: Add driver for cros-ec-regulator 2020-06-15 22:40:14 +01:00
da903x.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
da9052-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9055-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9062-regulator.c regulator: da9062: Replace zero-length array with flexible-array member 2020-02-12 23:54:54 +00:00
da9063-regulator.c regulator: da9063: fix LDO9 suspend and warning. 2020-06-12 14:57:17 +01:00
da9210-regulator.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
da9210-regulator.h regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9211-regulator.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
da9211-regulator.h regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
db8500-prcmu.c regulator: db8500-prcmu: Use true,false for bool variable 2020-05-06 15:16:59 +01:00
dbx500-prcmu.c regulator: dbx500-prcmu: Remove unused function dbx500_regulator_testcase() 2020-06-25 20:11:12 +01:00
dbx500-prcmu.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
devres.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dummy.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dummy.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
fan53555.c regulator: fan53555: add chip id for Silergy SYR83X 2019-11-06 16:19:47 +00:00
fixed-helper.c
fixed.c regulator: Fix trivial spelling 2020-06-15 23:06:30 +01:00
gpio-regulator.c regulator: gpio: Fix trivial spelling 2020-06-15 23:06:29 +01:00
helpers.c regulator: Fix pickable ranges mapping 2020-06-12 14:57:17 +01:00
hi655x-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
hi6421-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
hi6421v530-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
internal.h regulator: core: Don't try to remove device links if add failed 2019-11-15 12:04:20 +00:00
isl6271a-regulator.c
isl9305.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
lm363x-regulator.c regulator: lm363x: Fix n_voltages setting for lm36274 2019-07-22 13:18:13 +01:00
lochnagar-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
lp872x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp873x-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
lp3971.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
lp3972.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8755.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8788-buck.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
lp8788-ldo.c regulator: lp8788-ldo: make array en_mask static const, makes object smaller 2019-09-09 10:53:48 +01:00
lp87565-regulator.c regulator: lp87565: enable voltage regardless of ENx pin 2020-07-01 21:53:02 +01:00
ltc3589.c regulator: ltc3589: Switch to SPDX identifier 2019-04-26 10:38:20 +01:00
ltc3676.c regulator: ltc3676: Constify ltc3676_regulators 2020-06-18 13:47:33 +01:00
max1586.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
max8649.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8660.c regulator: max8660: remove redundant assignment of variable ret 2019-08-15 15:09:21 +01:00
max8907-regulator.c regulator: max8907: Constify static structs 2020-06-18 13:47:34 +01:00
max8925-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8952.c Linux 5.2-rc4 2019-06-18 19:12:47 +01:00
max8973-regulator.c
max8997-regulator.c regulator: max8997: Constify struct regulator_ops 2020-06-18 13:47:35 +01:00
max8998.c regulator: max8998: Staticify internal function max8998_get_current_limit() 2020-06-26 15:34:18 +01:00
max14577-regulator.c regulator: max14577-regulator: Demote kerneldoc header to standard comment 2020-06-25 20:11:17 +01:00
max77620-regulator.c regulator: max77620: remove redundant assignment to variable ret 2019-07-03 13:02:38 +01:00
max77650-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
max77686-regulator.c regulator: max77686: switch to using fwnode_gpiod_get_index 2019-10-07 14:02:20 +01:00
max77693-regulator.c
max77802-regulator.c regulator: max77802: Drop unused includes 2019-06-10 15:40:58 +01:00
max77826-regulator.c regulator: max77826: Add max77826 regulator driver 2020-04-14 19:01:19 +01:00
mc13xxx-regulator-core.c
mc13xxx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mc13783-regulator.c
mc13892-regulator.c
mcp16502.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
mp886x.c regulator: mp886x: add MP8867 support 2020-03-16 18:27:35 +00:00
mp5416.c regulator: mp5416: Fix output discharge enable bit for LDOs 2020-02-17 19:13:26 +00:00
mp8859.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
mpq7920.c regulator: mpq7920: Convert to use .probe_new 2020-01-14 15:25:00 +00:00
mpq7920.h regulator: mpq7920: Fix incorrect defines 2020-01-17 15:34:31 +00:00
mt6311-regulator.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
mt6311-regulator.h regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6323-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
mt6358-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
mt6380-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
mt6397-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
of_regulator.c regulator: Fixes for v5.4 2019-10-23 15:31:17 -04:00
palmas-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
pbias-regulator.c regulator: pbias: Get rid of struct pbias_regulator_data 2019-10-07 13:54:42 +01:00
pcap-regulator.c regulator: pcap-regulator: remove unused variable 'SW3_table' 2019-10-01 12:46:37 +01:00
pcf50633-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pfuze100-regulator.c regulator: pfuze100: add condition check for 'ramp_delay = 0' 2020-06-23 13:15:13 +01:00
pv88060-regulator.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
pv88060-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88080-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88080-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88090-regulator.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
pv88090-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pwm-regulator.c regulator: pwm-regulator: Demote kerneldoc header to standard comment 2020-06-26 15:34:19 +01:00
qcom-rpmh-regulator.c regulator: qcom-rpmh-regulator: Repair dodgy kerneldoc header formatting 2020-06-26 15:34:18 +01:00
qcom_rpm-regulator.c regulator: qcom_rpm: Constify struct regulator_ops 2020-07-01 18:33:14 +01:00
qcom_smd-regulator.c regulator: qcom_smd: Add MP5496 regulators 2020-07-01 21:35:54 +01:00
qcom_spmi-regulator.c regulator: qcom_spmi: Constify struct regulator_ops 2020-07-01 18:33:15 +01:00
qcom_usb_vbus-regulator.c regulator: Add support for QCOM PMIC VBUS booster 2020-07-01 18:07:15 +01:00
rc5t583-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
rk808-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
rn5t618-regulator.c regulator: Fixes for v5.5 2019-12-17 13:08:41 -08:00
rohm-regulator.c regulator: bd718x7: Split driver to common and bd718x7 specific parts 2020-01-24 07:22:53 +00:00
rt5033-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 450 2019-06-05 17:37:18 +02:00
s2mpa01.c regulator: samsung: Rename Samsung to lowercase 2020-01-06 20:47:42 +00:00
s2mps11.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
s5m8767.c Merge branch 'regulator-5.6' into regulator-next 2020-01-23 12:37:06 +00:00
sc2731-regulator.c regulator: sc2731: Constify regulators 2019-03-26 13:25:35 +00:00
sky81452-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
slg51000-regulator.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
slg51000-regulator.h regulator: slg51000: add slg51000 regulator driver 2019-05-13 11:07:43 +01:00
stm32-booster.c regulator: stm32-booster: Remove .min_uV and .list_voltage for fixed regulator 2019-07-23 12:28:01 +01:00
stm32-pwr.c regulator: stm32-pwr: Remove unneeded .min_uV and .list_volage 2019-05-03 15:07:15 +09:00
stm32-vrefbuf.c regulator: stm32-vrefbuf: fix a possible overshoot when re-enabling 2020-03-04 13:57:28 +00:00
stpmic1_regulator.c regulator: stpmic1_regulator: Properly document 'struct stpmic1_regulator_cfg' 2020-06-26 15:34:20 +01:00
stw481x-vmmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
sy8106a-regulator.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
sy8824x.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
ti-abb-regulator.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
tps6105x-regulator.c regulator: tps6105x: add optional devicetree support 2019-11-20 17:10:47 +00:00
tps6507x-regulator.c regulator: tps6507x: Fix boot regression due to testing wrong init_data pointer 2019-05-16 17:11:47 +01:00
tps6524x-regulator.c regulator: tps6524x: Remove *rdev[N_REGULATORS] from struct tps6524x 2019-04-15 09:44:41 +01:00
tps6586x-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tps51632-regulator.c
tps62360-regulator.c
tps65023-regulator.c
tps65086-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
tps65090-regulator.c regulator: tps65090: switch to using devm_fwnode_gpiod_get 2019-10-07 14:02:02 +01:00
tps65132-regulator.c regulator: Convert i2c drivers to use .probe_new 2020-01-13 15:03:06 +00:00
tps65217-regulator.c regulator: tps65217-regulator: Use the returned value of tps65217_reg_read() 2020-06-26 15:34:22 +01:00
tps65218-regulator.c regulator: tps65218-regulator: Remove pointless 'is unsigned int <0' check 2020-06-26 15:34:23 +01:00
tps65910-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
tps65912-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
tps80031-regulator.c regulator: tps80031: remove redundant assignment to variables ret and val 2020-04-14 16:57:44 +01:00
twl-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
twl6030-regulator.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
uniphier-regulator.c regulator: uniphier: use devm_platform_ioremap_resource() to simplify code 2019-10-09 18:17:15 +01:00
userspace-consumer.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
vctrl-regulator.c regulator: vctrl-regulator: Avoid deadlock getting and setting the voltage 2020-01-17 15:32:27 +00:00
vexpress-regulator.c regulator: vexpress: Use PTR_ERR_OR_ZERO() to simplify code 2019-11-18 12:58:24 +00:00
virtual.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
vqmmc-ipq4019-regulator.c regulator: vqmmc-ipq4019: Fix platform_no_drv_owner.cocci warnings 2020-01-17 15:34:21 +00:00
wm831x-dcdc.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
wm831x-isink.c regulator: wm831x: Switch to SPDX identifier 2019-04-17 17:40:29 +01:00
wm831x-ldo.c regulator: use linear_ranges helper 2020-05-08 18:18:13 +01:00
wm8350-regulator.c regulator: wm8350-regulator: Repair odd formatting in documentation 2020-06-25 20:11:14 +01:00
wm8400-regulator.c regulator: wm8400-regulator: Repair dodgy kerneldoc header formatting 2020-06-26 15:34:24 +01:00
wm8994-regulator.c regulator: wm8994: Switch to SPDX identifier 2019-04-17 17:39:58 +01:00