Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp1649858pxu; Thu, 8 Oct 2020 17:56:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwrFejFNnRv1fCQSFuU0JSsxtdE9QgAE3yaoTOV/LjQmKp8qW9+L2IdcRRc90rRyLW8ezj4 X-Received: by 2002:a17:906:4c84:: with SMTP id q4mr11845712eju.525.1602205000757; Thu, 08 Oct 2020 17:56:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602205000; cv=none; d=google.com; s=arc-20160816; b=uqTQovkBFcYKJx5Uoy+dUjAZJmqGrkF7M2dgQIRG+4UAGKzstdiPLxf6Rc58W+pLNd dbtFaE2L5TshMTWSeGmnII5qBkDJEDwf+iGaiBJnAySQS8eP8o/N9R7jVFdsQiY7cLQD iN5jHoJOQaKtTPj1PAYBgZo2OKvDXwwxCTKR5oMKW4BhVquWGORKQ5odPvs0N71/Piu1 Kcaa6ZYVmXSlT0ZYXpT5NAzNEG4fpIlDCCSfI/j66dMg/7xXYoLFIZXXDztBogQVmCHO 3jTz8Jwe/N8aCfv3YCMNdX+JiSZ3wVMcZFRDnARWh2u/P1rAyDPtkoxF8axd3ju1Yjbm l45Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dmarc-filter:sender :dkim-signature; bh=iMZsobu4errj1Xerzmr09tWrD5DMJzqIEKBDLcR17/I=; b=X2DrfTkFUfs4p7KOzTlJpcuKKKzdkQQ9/4UvPrYBSX1fT6Jp2pf44U01JeHKJnxnmR jYQe4y3QRFNKCI0lixCh4cEdNhJoVJCsJGUV46MzJLycuCPOpeTkJLO03INCkODAT+CT o/3Ag2Ofnz72oiSzjMvJ0LX2Ei5jjYpP4rnYs+gtx+BcRoArB5SMUvskX/O4TB32zVy8 eohl6e+IfH4YNwAY+jyPZ7VzdFxtJjO2SrEBpAoaGYzTZLFsmqH1ZxicuLNt3eQVQvj0 xQWsYL0TD1jEvtn//okTkf4QlSTWxlfX7Zh6zxvpscAco5hKuQ51Cxkxo9Vj5UfIfEEg uBnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=d4BVdEby; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h11si4975778edt.462.2020.10.08.17.56.18; Thu, 08 Oct 2020 17:56:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=d4BVdEby; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729579AbgJHX7u (ORCPT + 99 others); Thu, 8 Oct 2020 19:59:50 -0400 Received: from m42-4.mailgun.net ([69.72.42.4]:50736 "EHLO m42-4.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729398AbgJHX7u (ORCPT ); Thu, 8 Oct 2020 19:59:50 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1602201589; h=Content-Transfer-Encoding: MIME-Version: Message-Id: Date: Subject: Cc: To: From: Sender; bh=iMZsobu4errj1Xerzmr09tWrD5DMJzqIEKBDLcR17/I=; b=d4BVdEby4dlG92GQAHnwQLFbH5kz0eDXJSfQnK6g6Oh9T3apnYCdODDRd/XXTRBBL8eOVcLb HaTYJKMgTJHTE/hcoktfkFLpscBa/+U3j5YKiLsTn1QkAEAaCOmgXkVfEwZaNMK5Up6nIYq0 fpvZyuUBTZHR2Vhpu0TzQUoavxo= X-Mailgun-Sending-Ip: 69.72.42.4 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd 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 5f7fa7edd6d00c7a9e28beb8 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Thu, 08 Oct 2020 23:59:40 GMT Sender: wcheng=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id E421FC433B2; Thu, 8 Oct 2020 23:59:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00,SPF_FAIL autolearn=no autolearn_force=no version=3.4.0 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 4FE3CC433FE; Thu, 8 Oct 2020 23:59:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 4FE3CC433FE 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=fail smtp.mailfrom=wcheng@codeaurora.org From: Wesley Cheng To: sboyd@kernel.org, heikki.krogerus@linux.intel.com, agross@kernel.org, robh+dt@kernel.org, gregkh@linuxfoundation.org, bjorn.andersson@linaro.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, jackp@codeaurora.org, sergei.shtylyov@gmail.com, Wesley Cheng Subject: [PATCH v10 0/4] Introduce PMIC based USB type C detection Date: Thu, 8 Oct 2020 16:59:30 -0700 Message-Id: <20201008235934.8931-1-wcheng@codeaurora.org> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Changes in v10: - Modified the type c dt-binding to remove the DRD switch node outside of the connector, as it is more of a SW entity, whereas the USB connector model focuses more on how the connector pins are connected in the HW design. The binding now matches what is specified in the usb-connector binding. - Change the fwnode to search for the remote endpoint referencing the usb role switch device in qcom-pmic-typec - Rename typec node from "typec" to "usb-typec" 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 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 (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 | 115 ++++++++ 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, 407 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