From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v4,11/13] staging: typec: tcpci: keep the not connecting cc line open From: Jun Li Message-Id: <1522253178-32414-12-git-send-email-jun.li@nxp.com> Date: Thu, 29 Mar 2018 00:06:16 +0800 To: robh+dt@kernel.org, gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com, linux@roeck-us.net Cc: a.hajda@samsung.com, shufan_lee@richtek.com, peter.chen@nxp.com, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-imx@nxp.com, jun.li@nxp.com, devel@driverdev.osuosl.org List-ID: V2hpbGUgc2V0IHBvbGFyaXR5LCB3ZSBzaG91bGQga2VlcCB0aGUgbm90IGNvbm5lY3RpbmcgY2Mg bGluZSB0byBiZQpvcGVuLgoKU2lnbmVkLW9mZi1ieTogTGkgSnVuIDxqdW4ubGlAbnhwLmNvbT4K LS0tCiBkcml2ZXJzL3N0YWdpbmcvdHlwZWMvdGNwY2kuYyB8IDE4ICsrKysrKysrKysrKysrLS0t LQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmMgYi9kcml2ZXJzL3N0YWdpbmcv dHlwZWMvdGNwY2kuYwppbmRleCBkNWI0ZTRlLi5iNThiZDU5IDEwMDY0NAotLS0gYS9kcml2ZXJz L3N0YWdpbmcvdHlwZWMvdGNwY2kuYworKysgYi9kcml2ZXJzL3N0YWdpbmcvdHlwZWMvdGNwY2ku YwpAQCAtMTg1LDE1ICsxODUsMjUgQEAgc3RhdGljIGludCB0Y3BjaV9zZXRfcG9sYXJpdHkoc3Ry dWN0IHRjcGNfZGV2ICp0Y3BjLAogCQkJICAgICAgZW51bSB0eXBlY19jY19wb2xhcml0eSBwb2xh cml0eSkKIHsKIAlzdHJ1Y3QgdGNwY2kgKnRjcGNpID0gdGNwY190b190Y3BjaSh0Y3BjKTsKKwl1 bnNpZ25lZCBpbnQgcmVnOwogCWludCByZXQ7CiAKLQlyZXQgPSByZWdtYXBfd3JpdGUodGNwY2kt PnJlZ21hcCwgVENQQ19UQ1BDX0NUUkwsCi0JCQkgICAocG9sYXJpdHkgPT0gVFlQRUNfUE9MQVJJ VFlfQ0MyKSA/Ci0JCQkgICBUQ1BDX1RDUENfQ1RSTF9PUklFTlRBVElPTiA6IDApOworCS8qIEtl ZXAgdGhlIGRpc2Nvbm5lY3QgY2MgbGluZSBvcGVuICovCisJcmV0ID0gcmVnbWFwX3JlYWQodGNw Y2ktPnJlZ21hcCwgVENQQ19ST0xFX0NUUkwsICZyZWcpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1 cm4gcmV0OwogCi0JcmV0dXJuIDA7CisJaWYgKHBvbGFyaXR5ID09IFRZUEVDX1BPTEFSSVRZX0ND MikKKwkJcmVnIHw9IFRDUENfUk9MRV9DVFJMX0NDX09QRU4gPDwgVENQQ19ST0xFX0NUUkxfQ0Mx X1NISUZUOworCWVsc2UKKwkJcmVnIHw9IFRDUENfUk9MRV9DVFJMX0NDX09QRU4gPDwgVENQQ19S T0xFX0NUUkxfQ0MyX1NISUZUOworCXJldCA9IHJlZ21hcF93cml0ZSh0Y3BjaS0+cmVnbWFwLCBU Q1BDX1JPTEVfQ1RSTCwgcmVnKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJl dHVybiByZWdtYXBfd3JpdGUodGNwY2ktPnJlZ21hcCwgVENQQ19UQ1BDX0NUUkwsCisJCQkgICAo cG9sYXJpdHkgPT0gVFlQRUNfUE9MQVJJVFlfQ0MyKSA/CisJCQkgICBUQ1BDX1RDUENfQ1RSTF9P UklFTlRBVElPTiA6IDApOwogfQogCiBzdGF0aWMgaW50IHRjcGNpX3NldF92Y29ubihzdHJ1Y3Qg dGNwY19kZXYgKnRjcGMsIGJvb2wgZW5hYmxlKQo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Li Jun Subject: [PATCH v4 11/13] staging: typec: tcpci: keep the not connecting cc line open Date: Thu, 29 Mar 2018 00:06:16 +0800 Message-ID: <1522253178-32414-12-git-send-email-jun.li@nxp.com> References: <1522253178-32414-1-git-send-email-jun.li@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1522253178-32414-1-git-send-email-jun.li@nxp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" To: robh+dt@kernel.org, gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com, linux@roeck-us.net Cc: devel@driverdev.osuosl.org, devicetree@vger.kernel.org, peter.chen@nxp.com, linux-usb@vger.kernel.org, a.hajda@samsung.com, linux-imx@nxp.com, jun.li@nxp.com, shufan_lee@richtek.com List-Id: devicetree@vger.kernel.org While set polarity, we should keep the not connecting cc line to be open. Signed-off-by: Li Jun --- drivers/staging/typec/tcpci.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c index d5b4e4e..b58bd59 100644 --- a/drivers/staging/typec/tcpci.c +++ b/drivers/staging/typec/tcpci.c @@ -185,15 +185,25 @@ static int tcpci_set_polarity(struct tcpc_dev *tcpc, enum typec_cc_polarity polarity) { struct tcpci *tcpci = tcpc_to_tcpci(tcpc); + unsigned int reg; int ret; - ret = regmap_write(tcpci->regmap, TCPC_TCPC_CTRL, - (polarity == TYPEC_POLARITY_CC2) ? - TCPC_TCPC_CTRL_ORIENTATION : 0); + /* Keep the disconnect cc line open */ + ret = regmap_read(tcpci->regmap, TCPC_ROLE_CTRL, ®); if (ret < 0) return ret; - return 0; + if (polarity == TYPEC_POLARITY_CC2) + reg |= TCPC_ROLE_CTRL_CC_OPEN << TCPC_ROLE_CTRL_CC1_SHIFT; + else + reg |= TCPC_ROLE_CTRL_CC_OPEN << TCPC_ROLE_CTRL_CC2_SHIFT; + ret = regmap_write(tcpci->regmap, TCPC_ROLE_CTRL, reg); + if (ret < 0) + return ret; + + return regmap_write(tcpci->regmap, TCPC_TCPC_CTRL, + (polarity == TYPEC_POLARITY_CC2) ? + TCPC_TCPC_CTRL_ORIENTATION : 0); } static int tcpci_set_vconn(struct tcpc_dev *tcpc, bool enable) -- 2.7.4