From patchwork Fri Jun 12 23:19:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 214895 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49CC9C433DF for ; Fri, 12 Jun 2020 23:20:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2085B2078E for ; Fri, 12 Jun 2020 23:20:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mg.codeaurora.org header.i=@mg.codeaurora.org header.b="myXewR9p" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726496AbgFLXTk (ORCPT ); Fri, 12 Jun 2020 19:19:40 -0400 Received: from m43-7.mailgun.net ([69.72.43.7]:15432 "EHLO m43-7.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726428AbgFLXTh (ORCPT ); Fri, 12 Jun 2020 19:19:37 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1592003976; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=QSOzr5wrDqacBKtxNCX2eFHenw8CKJrTOB+F3GlS0og=; b=myXewR9pu6pFetJSwd5ohI0JOyiTVBViayQW6ufI1MBO7QMRDIC5Y/whuFQzAkrpW07MszY/ +1p6mamZk6DbelFM9rw5nVR3zCUrqKbUEN8QLW7Kpj6rgxZLjgXwE2AJ4OB3TR+AQknnZZQ7 aiIvgSz6cIQ7LlZ8IT7yi2lzDNA= X-Mailgun-Sending-Ip: 69.72.43.7 X-Mailgun-Sid: WyIxZTE2YSIsICJsaW51eC11c2JAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n01.prod.us-west-2.postgun.com with SMTP id 5ee40d7fad153efa348d5e9e (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Fri, 12 Jun 2020 23:19:27 GMT Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 2E796C433A0; Fri, 12 Jun 2020 23:19:27 +0000 (UTC) Received: from wcheng-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: wcheng) by smtp.codeaurora.org (Postfix) with ESMTPSA id B18A9C43391; Fri, 12 Jun 2020 23:19:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org B18A9C43391 Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=none smtp.mailfrom=wcheng@codeaurora.org From: Wesley Cheng To: robh+dt@kernel.org, heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org, mark.rutland@arm.com, broonie@kernel.org, lgirdwood@gmail.com, agross@kernel.org, bjorn.andersson@linaro.org Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, lijun.kernel@gmail.com, rdunlap@infradead.org, jackp@codeaurora.org, bryan.odonoghue@linaro.org, Wesley Cheng Subject: [PATCH v2 3/6] arm64: boot: dts: qcom: pm8150b: Add node for USB type C block Date: Fri, 12 Jun 2020 16:19:15 -0700 Message-Id: <20200612231918.8001-4-wcheng@codeaurora.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200612231918.8001-1-wcheng@codeaurora.org> References: <20200612231918.8001-1-wcheng@codeaurora.org> MIME-Version: 1.0 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org The PM8150B has a dedicated USB type C block, which can be used for type C orientation and role detection. Create the reference node to this type C block for further use. Signed-off-by: Wesley Cheng --- arch/arm64/boot/dts/qcom/pm8150b.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/pm8150b.dtsi b/arch/arm64/boot/dts/qcom/pm8150b.dtsi index 322379d5c31f..ec44a8bc2f84 100644 --- a/arch/arm64/boot/dts/qcom/pm8150b.dtsi +++ b/arch/arm64/boot/dts/qcom/pm8150b.dtsi @@ -22,6 +22,14 @@ power-on@800 { status = "disabled"; }; + qcom,typec@1500 { + compatible = "qcom,pm8150b-usb-typec"; + status = "disabled"; + reg = <0x1500>; + interrupts = + <0x2 0x15 0x5 IRQ_TYPE_EDGE_RISING>; + }; + adc@3100 { compatible = "qcom,spmi-adc5"; reg = <0x3100>; From patchwork Fri Jun 12 23:19:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 214897 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 72221C433DF for ; Fri, 12 Jun 2020 23:19:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 42740206D7 for ; Fri, 12 Jun 2020 23:19:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mg.codeaurora.org header.i=@mg.codeaurora.org header.b="EIPK0Yqp" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726462AbgFLXTe (ORCPT ); Fri, 12 Jun 2020 19:19:34 -0400 Received: from mail27.static.mailgun.info ([104.130.122.27]:50135 "EHLO mail27.static.mailgun.info" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726372AbgFLXTc (ORCPT ); Fri, 12 Jun 2020 19:19:32 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1592003971; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=4YGkZbsKguGnYpKIS69O19O/+T6nme5gPEwJRcvkS+0=; b=EIPK0YqpRwtgcy2zHs8hpQ8vh3toQH/vtSMGI8UER8PSVt2+J8SadFARi4rUO7cJPAlK/4Lh N0CGzWE3VThmmYbFKGMHks4qoZKuQnaxKybQ5wrp0vsKW9M0zZ/7xiXPQDS1AAxUXGyQ9UL/ ont5phdNYG4MucYVfFubn/NUU30= X-Mailgun-Sending-Ip: 104.130.122.27 X-Mailgun-Sid: WyIxZTE2YSIsICJsaW51eC11c2JAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n09.prod.us-west-2.postgun.com with SMTP id 5ee40d80fe1db4db89088b35 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Fri, 12 Jun 2020 23:19:28 GMT Received: by smtp.codeaurora.org (Postfix, from userid 1001) id A347DC4339C; Fri, 12 Jun 2020 23:19:28 +0000 (UTC) Received: from wcheng-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: wcheng) by smtp.codeaurora.org (Postfix) with ESMTPSA id D21BCC433CB; Fri, 12 Jun 2020 23:19:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org D21BCC433CB Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=none smtp.mailfrom=wcheng@codeaurora.org From: Wesley Cheng To: robh+dt@kernel.org, heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org, mark.rutland@arm.com, broonie@kernel.org, lgirdwood@gmail.com, agross@kernel.org, bjorn.andersson@linaro.org Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, lijun.kernel@gmail.com, rdunlap@infradead.org, jackp@codeaurora.org, bryan.odonoghue@linaro.org, Wesley Cheng Subject: [PATCH v2 4/6] regulator: Add support for QCOM PMIC VBUS booster Date: Fri, 12 Jun 2020 16:19:16 -0700 Message-Id: <20200612231918.8001-5-wcheng@codeaurora.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200612231918.8001-1-wcheng@codeaurora.org> References: <20200612231918.8001-1-wcheng@codeaurora.org> MIME-Version: 1.0 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Some Qualcomm PMICs have the capability to source the VBUS output to connected peripherals. This driver will register a regulator to the regulator list to enable or disable this source by an external driver. Signed-off-by: Wesley Cheng --- drivers/regulator/Kconfig | 10 ++ drivers/regulator/Makefile | 1 + drivers/regulator/qcom_usb_vbus-regulator.c | 147 ++++++++++++++++++++ 3 files changed, 158 insertions(+) create mode 100644 drivers/regulator/qcom_usb_vbus-regulator.c diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig index 074a2ef55943..f9165f9f9051 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -797,6 +797,16 @@ config REGULATOR_QCOM_SPMI Qualcomm SPMI PMICs as a module. The module will be named "qcom_spmi-regulator". +config REGULATOR_QCOM_USB_VBUS + tristate "Qualcomm USB Vbus regulator driver" + depends on SPMI || COMPILE_TEST + help + If you say yes to this option, support will be included for the + regulator used to enable the VBUS output. + + Say M here if you want to include support for enabling the VBUS output + as a module. The module will be named "qcom_usb-regulator". + config REGULATOR_RC5T583 tristate "RICOH RC5T583 Power regulators" depends on MFD_RC5T583 diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile index c0d6b96ebd78..cbab28aa7b56 100644 --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile @@ -89,6 +89,7 @@ obj-$(CONFIG_REGULATOR_QCOM_RPM) += qcom_rpm-regulator.o obj-$(CONFIG_REGULATOR_QCOM_RPMH) += qcom-rpmh-regulator.o obj-$(CONFIG_REGULATOR_QCOM_SMD_RPM) += qcom_smd-regulator.o obj-$(CONFIG_REGULATOR_QCOM_SPMI) += qcom_spmi-regulator.o +obj-$(CONFIG_REGULATOR_QCOM_USB_VBUS) += qcom_usb_vbus-regulator.o obj-$(CONFIG_REGULATOR_PALMAS) += palmas-regulator.o obj-$(CONFIG_REGULATOR_PFUZE100) += pfuze100-regulator.o obj-$(CONFIG_REGULATOR_PV88060) += pv88060-regulator.o diff --git a/drivers/regulator/qcom_usb_vbus-regulator.c b/drivers/regulator/qcom_usb_vbus-regulator.c new file mode 100644 index 000000000000..2b8129a04684 --- /dev/null +++ b/drivers/regulator/qcom_usb_vbus-regulator.c @@ -0,0 +1,147 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2020, The Linux Foundation. All rights reserved. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define CMD_OTG 0x40 +#define OTG_EN BIT(0) +#define OTG_CFG 0x53 +#define OTG_EN_SRC_CFG BIT(1) + +struct qcom_vbus { + struct device *dev; + u32 base; + struct regmap *regmap; + struct regulator_dev *usb_vbus_reg; +}; + +static int qcom_usb_vbus_enable(struct regulator_dev *rdev) +{ + struct qcom_vbus *vbus_out = rdev_get_drvdata(rdev); + int rc; + + rc = regmap_update_bits(vbus_out->regmap, vbus_out->base + CMD_OTG, + OTG_EN, OTG_EN); + if (rc) + dev_err(vbus_out->dev, "failed to enable usb_vbus\n"); + + return rc; +} + +static int qcom_usb_vbus_disable(struct regulator_dev *rdev) +{ + struct qcom_vbus *vbus_out = rdev_get_drvdata(rdev); + int rc; + + rc = regmap_update_bits(vbus_out->regmap, vbus_out->base + CMD_OTG, + OTG_EN, 0); + if (rc) + dev_err(vbus_out->dev, "failed to disable usb_vbus\n"); + + return rc; +} + +static int qcom_usb_vbus_is_enabled(struct regulator_dev *rdev) +{ + struct qcom_vbus *vbus_out = rdev_get_drvdata(rdev); + unsigned int value = 0; + int rc; + + rc = regmap_read(vbus_out->regmap, vbus_out->base + CMD_OTG, &value); + if (rc) + dev_err(vbus_out->dev, "failed to read OTG_CTL\n"); + + return !!(value & OTG_EN); +} + +static const struct regulator_ops qcom_usb_vbus_reg_ops = { + .enable = qcom_usb_vbus_enable, + .disable = qcom_usb_vbus_disable, + .is_enabled = qcom_usb_vbus_is_enabled, +}; + +static const struct regulator_desc qcom_usb_vbus_rdesc = { + .name = "usb_vbus", + .ops = &qcom_usb_vbus_reg_ops, + .owner = THIS_MODULE, + .type = REGULATOR_VOLTAGE, +}; + +static const struct of_device_id qcom_usb_vbus_regulator_match[] = { + { .compatible = "qcom,pm8150b-vbus-reg" }, + { } +}; +MODULE_DEVICE_TABLE(of, qcom_usb_vbus_regulator_match); + +static int qcom_usb_vbus_regulator_probe(struct platform_device *pdev) +{ + struct qcom_vbus *vbus_out; + struct device *dev = &pdev->dev; + struct regulator_config config = { }; + struct regulator_init_data init_data = { }; + int ret; + u32 reg; + + ret = of_property_read_u32(dev->of_node, "reg", ®); + if (ret < 0) { + dev_err(dev, "no base address found\n"); + return ret; + } + + vbus_out = devm_kzalloc(dev, sizeof(vbus_out), GFP_KERNEL); + if (!vbus_out) + return -ENOMEM; + vbus_out->base = reg; + vbus_out->dev = dev; + + vbus_out->regmap = dev_get_regmap(dev->parent, NULL); + if (!vbus_out->regmap) { + dev_err(dev, "Failed to get regmap\n"); + return -ENOENT; + } + + init_data.constraints.valid_ops_mask |= REGULATOR_CHANGE_STATUS; + config.dev = dev; + config.driver_data = vbus_out; + config.init_data = &init_data; + + vbus_out->usb_vbus_reg = devm_regulator_register(dev, + &qcom_usb_vbus_rdesc, + &config); + if (IS_ERR(vbus_out->usb_vbus_reg)) { + ret = PTR_ERR(vbus_out->usb_vbus_reg); + dev_err(dev, "not able to register vbus reg %d\n", ret); + return ret; + } + + /* Disable HW logic for VBUS enable */ + regmap_update_bits(vbus_out->regmap, vbus_out->base + OTG_CFG, + OTG_EN_SRC_CFG, 0); + + return 0; +} + +static struct platform_driver qcom_usb_vbus_regulator_driver = { + .driver = { + .name = "qcom-usb-vbus-regulator", + .of_match_table = qcom_usb_vbus_regulator_match, + }, + .probe = qcom_usb_vbus_regulator_probe, +}; +module_platform_driver(qcom_usb_vbus_regulator_driver); + +MODULE_DESCRIPTION("Qualcomm USB vbus regulator driver"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:qcom-usb-vbus-regulator"); From patchwork Fri Jun 12 23:19:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 214894 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5BF13C433DF for ; Fri, 12 Jun 2020 23:20:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 35C9B206D7 for ; Fri, 12 Jun 2020 23:20:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mg.codeaurora.org header.i=@mg.codeaurora.org header.b="QCCyKBi1" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726468AbgFLXTf (ORCPT ); Fri, 12 Jun 2020 19:19:35 -0400 Received: from m43-7.mailgun.net ([69.72.43.7]:26977 "EHLO m43-7.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726302AbgFLXTc (ORCPT ); Fri, 12 Jun 2020 19:19:32 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1592003971; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=AeAXk33hC2QGvVdME9/+b4Gj7uF3RQv9KrEUH2pVRD8=; b=QCCyKBi1IMyDxabkBlASKFplg3W/j+9FSC9h4hDAI8p9eKahmQEP0gLibSq37BBk5aNPgzdV XeQKOR275fChv+lAJBzxNxlt2TtEQSFYLuUghDi5tu9ytPM7lsVJgp2cKYhOeHAmXmb027HI /LNPdaBhxuiPvXnpsWK1Ld9K4vc= X-Mailgun-Sending-Ip: 69.72.43.7 X-Mailgun-Sid: WyIxZTE2YSIsICJsaW51eC11c2JAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n08.prod.us-west-2.postgun.com with SMTP id 5ee40d82117610c7ffbd287e (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Fri, 12 Jun 2020 23:19:30 GMT Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 4B223C43391; Fri, 12 Jun 2020 23:19:30 +0000 (UTC) Received: from wcheng-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: wcheng) by smtp.codeaurora.org (Postfix) with ESMTPSA id B6A47C433CA; Fri, 12 Jun 2020 23:19:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org B6A47C433CA Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=none smtp.mailfrom=wcheng@codeaurora.org From: Wesley Cheng To: robh+dt@kernel.org, heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org, mark.rutland@arm.com, broonie@kernel.org, lgirdwood@gmail.com, agross@kernel.org, bjorn.andersson@linaro.org Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, lijun.kernel@gmail.com, rdunlap@infradead.org, jackp@codeaurora.org, bryan.odonoghue@linaro.org, Wesley Cheng Subject: [PATCH v2 5/6] dt-bindings: regulator: Add dt-binding for QCOM PMIC VBUS output regulator Date: Fri, 12 Jun 2020 16:19:17 -0700 Message-Id: <20200612231918.8001-6-wcheng@codeaurora.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200612231918.8001-1-wcheng@codeaurora.org> References: <20200612231918.8001-1-wcheng@codeaurora.org> MIME-Version: 1.0 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org This describes how to enable the Qualcomm PMIC VBUS booster used for providing power to connected USB peripherals when the USB role is host mode. The driver itself will register the vbus_usb regulator, so that external drivers can utilize the enable/disable regulator APIs. Signed-off-by: Wesley Cheng --- .../regulator/qcom,usb-vbus-regulator.yaml | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Documentation/devicetree/bindings/regulator/qcom,usb-vbus-regulator.yaml diff --git a/Documentation/devicetree/bindings/regulator/qcom,usb-vbus-regulator.yaml b/Documentation/devicetree/bindings/regulator/qcom,usb-vbus-regulator.yaml new file mode 100644 index 000000000000..2fa76111cfb9 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/qcom,usb-vbus-regulator.yaml @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/qcom,usb-vbus-regulator.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: The Qualcomm PMIC VBUS output regulator driver + +maintainers: + - Wesley Cheng + +description: | + This regulator driver controls the VBUS output by the Qualcomm PMIC. This + regulator will be enabled in situations where the device is required to + provide power to the connected peripheral. + +properties: + compatible: + enum: + - qcom,pm8150b-vbus-reg + + reg: + maxItems: 1 + description: VBUS output base address + +required: + - compatible + +additionalProperties: false + +examples: + - | + pm8150b { + #address-cells = <1>; + #size-cells = <0>; + qcom,dcdc@1100 { + compatible = "qcom,pm8150b-vbus-reg"; + reg = <0x1100>; + }; + }; +... From patchwork Fri Jun 12 23:19:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 214896 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4D86DC433E0 for ; Fri, 12 Jun 2020 23:19:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 25DC7207DD for ; Fri, 12 Jun 2020 23:19:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mg.codeaurora.org header.i=@mg.codeaurora.org header.b="j/z890ru" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726513AbgFLXTr (ORCPT ); Fri, 12 Jun 2020 19:19:47 -0400 Received: from m43-7.mailgun.net ([69.72.43.7]:15432 "EHLO m43-7.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726502AbgFLXTp (ORCPT ); Fri, 12 Jun 2020 19:19:45 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1592003985; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=iLIxDGwebkVuYKlvhaUeM7RFkIBoT6e0vq1/1dn/deY=; b=j/z890ruoBNnZuPiU28L+7BmlL2KWb2t3Vo2G+mOMKkmy5V9jDRlaWzVV3uIwx0XkkBoQHZl /tu2FIMWEnpxDlutdoJt4x9Gxrp0uZTC9McYhqmIkNgSYcWf8PlWwTcC33HMX/TXd22ku+a+ R5LYcTSGmOFKhnK9KYc6GkIQQto= X-Mailgun-Sending-Ip: 69.72.43.7 X-Mailgun-Sid: WyIxZTE2YSIsICJsaW51eC11c2JAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n07.prod.us-west-2.postgun.com with SMTP id 5ee40d82f3deea03f3c96249 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Fri, 12 Jun 2020 23:19:30 GMT Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 239F8C433AF; Fri, 12 Jun 2020 23:19:30 +0000 (UTC) Received: from wcheng-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: wcheng) by smtp.codeaurora.org (Postfix) with ESMTPSA id B219BC43387; Fri, 12 Jun 2020 23:19:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org B219BC43387 Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=none smtp.mailfrom=wcheng@codeaurora.org From: Wesley Cheng To: robh+dt@kernel.org, heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org, mark.rutland@arm.com, broonie@kernel.org, lgirdwood@gmail.com, agross@kernel.org, bjorn.andersson@linaro.org Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, lijun.kernel@gmail.com, rdunlap@infradead.org, jackp@codeaurora.org, bryan.odonoghue@linaro.org, Wesley Cheng Subject: [PATCH v2 6/6] arm64: boot: dts: qcom: pm8150b: Add DTS node for PMIC VBUS booster Date: Fri, 12 Jun 2020 16:19:18 -0700 Message-Id: <20200612231918.8001-7-wcheng@codeaurora.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200612231918.8001-1-wcheng@codeaurora.org> References: <20200612231918.8001-1-wcheng@codeaurora.org> MIME-Version: 1.0 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Add the required DTS node for the USB VBUS output regulator, which is available on PM8150B. This will provide the VBUS source to connected peripherals. Signed-off-by: Wesley Cheng --- arch/arm64/boot/dts/qcom/pm8150b.dtsi | 6 ++++++ arch/arm64/boot/dts/qcom/sm8150-mtp.dts | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/pm8150b.dtsi b/arch/arm64/boot/dts/qcom/pm8150b.dtsi index ec44a8bc2f84..b7274d9d7341 100644 --- a/arch/arm64/boot/dts/qcom/pm8150b.dtsi +++ b/arch/arm64/boot/dts/qcom/pm8150b.dtsi @@ -22,6 +22,12 @@ power-on@800 { status = "disabled"; }; + qcom,dcdc@1100 { + compatible = "qcom,pm8150b-vbus-reg"; + status = "disabled"; + reg = <0x1100>; + }; + qcom,typec@1500 { compatible = "qcom,pm8150b-usb-typec"; status = "disabled"; diff --git a/arch/arm64/boot/dts/qcom/sm8150-mtp.dts b/arch/arm64/boot/dts/qcom/sm8150-mtp.dts index 6c6325c3af59..3845d19893eb 100644 --- a/arch/arm64/boot/dts/qcom/sm8150-mtp.dts +++ b/arch/arm64/boot/dts/qcom/sm8150-mtp.dts @@ -426,6 +426,13 @@ &usb_1 { status = "okay"; }; +&spmi_bus { + pmic@2 { + qcom,dcdc@1100 { + status = "okay"; + }; +}; + &usb_1_dwc3 { dr_mode = "peripheral"; };