From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 27F5FC88E5C for ; Sun, 13 Sep 2026 17:07:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=idYLxpJvgTr2DMfBQxvwbPwB/F0kN9bs8cE/maWhNeA=; b=JZJySS0mNBXVxB B831wpXts7D9UYCtZ/arg/GGd/ajI8hffLrsg7iqjg9AZFosehTu1pfQU/XaoM50DH2r/bE86B99f QiwKKbdgFHslG4Jbkc5WvZQmrvLS0JC0IA5b4zT3xF/LCJxQCkmxuM0muB6WHVn9aWOr43jnbyZrh 2GQemDbszmise1JWSJChoGJ2iDVWmpQTtIaYD5ROldb1ZNtNUOOfnIDuYMR3OvtQfbyJM2hFKfQgF m5kpkfgO0d78dHxIIwdihlTNi3XdxzDLEjwLqtAzh96r3rX43GZc8zFqhOUvr/DzuFXlH2QOFFRxD xU3Y9DmZohG/21Kt5lKA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x5nfR-00000001qZh-3ToZ; Sun, 13 Sep 2026 17:07:01 +0000 Received: from mail-wm2-x10.google.com ([2a00:1450:4864:31::10]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x5nfP-00000001qZJ-0tOQ for linux-phy@lists.infradead.org; Sun, 13 Sep 2026 17:07:00 +0000 Received: by mail-wm2-x10.google.com with SMTP id 5b1f17b1804b1-49b912e2406so5016795e9.1 for ; Sun, 13 Sep 2026 10:06:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789319217; x=1789924017; darn=lists.infradead.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=CLfGELYFsfdMyOIjPBzlfKUMxy/FgAuN3WPbdQvjEjI=; b=i4YD29Jc4FU2eN3nkAj5e7fl3Wf9Cboz825hivoRDLwyiqJybY7MX3nRV7qLjqzN/c DG/HYpfb3f+6YYTx/uQUqtPKaGzsmieYcYiKCT/OJ75GqG/iU853Yx5CgBoHzO6E1J3h 7VPyE2XH+y/9Xpt4j825epd/MI81LqQUqI1W4+11tY0PGg4FjR8xXqjEnw64BVQdP21X lB0kTQxPE3AV3ewUSowySDWqkQUJAmQJhsd9XCHpHLpmHngX+pyUfjAU/tJCIbBCHwVl 6IRS3XMxpJvSn1kRSaRTj5yXr+/pSyvk2ktCCzPVxDxRSZqLKO7GyHkCc4f0pE5FBStk yq5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789319217; x=1789924017; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=CLfGELYFsfdMyOIjPBzlfKUMxy/FgAuN3WPbdQvjEjI=; b=VVsAsbuhbiE40eFUbzAKPWId6eYtTxN/MKSXs164LmkclgPjC9NZW6SyoS9zpBb7nd n/QVoasFgH9Mkv2/a0dpRDlQTv+g5h2mN4sPuN7YX7S42szOKIfzB+zagj2uRUYXI4He z/I4nk+DDVZkuybdYewD+PVLzlJVCL6MJjIMbbhD1UyAFlbWsUTd32bbI3EfY60B8RQD bo7lFNbuUsEmiiGUTM2OHUSaJPNKa8ASaN96TuJFsQggmYKLlaWjR9uBBnI4+9SU3N4f BQgzb5oNDycG2bWIO5Z1L3U9+scXwEYnFT0KLeqbGsjGooqG74daHv5AnslEkp7wTlkt 5OzQ== X-Forwarded-Encrypted: i=1; AKwUvBx1bvSTMVrcHKBZhRal3A1wuq8DiswBTNDJe29N3hg4u7xg8dZXmR0HQgoDpxMx9xJyiCQf2J/BZpA=@lists.infradead.org X-Gm-Message-State: AFuF++lAlIT7fv47vuvdghoF1BhE7MLxUfZ0hpm9j4vATE9J7S9LDYpN CkA0uyjurcZPxDRgPNmHyqMlg6C8H4j4QoaCKjJ6UH6kWcdtfFidIaGT X-Gm-Gg: AYBFou0xepKuBQMq5X9aregccpE/NkqZLwIR3geGSUrUK5pnPtpHnGiXbyJ3dMnUn2J dEDnL+C9gxMf0OtfQzl/oeggQJRRdolSzGpq8TLb/32u53zjB5fmRcaAiELdPPwEiLFIubqhick FFUj8WwgP2tQMjNTa/pOzfVe8vQrmNGQJfkVGBwi030i67IA0CsaE1B6Ym4LNRKUTn29EKNjkCM UMZCSecs15TTsY0ekNFGiLNC+6O4kdC4aymJbb3pxowhspQmQGebJK9f2uhz90bFaNKShc+B3A2 eSNxiQRcrEqw1UKrj3x7Yg/8O9xfTx8FKhhtYADkBCBw+TfVqh6L9woFOBpOuJFsCKxwX77MUW6 CWQIRay5fZpbKMGtq6jZpCZdX6ScFUYKROsFTcG+yWuRhmJwD46+ez5HPwM7cdheULOVv5HeatB +6bbM1jx9e6tP0osA1iHLjFYhKGwIon8XttXxa4ALw+tJBWQmEDklNgppJGA/2+ySoCI0+eFVMb RSP5j7BHbCAp6ZFm7lCwQ== X-Received: by 2002:a05:600d:4443:20b0:49d:257c:a735 with SMTP id 5b1f17b1804b1-49e76065da4mr22473745e9.11.1789319216429; Sun, 13 Sep 2026 10:06:56 -0700 (PDT) Received: from [192.168.1.10] ([95.43.220.235]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-49e6aac22bbsm116205845e9.0.2026.09.13.10.06.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 13 Sep 2026 10:06:54 -0700 (PDT) Message-ID: <7dfe251c-7c1f-46c9-a3e4-fb7388ddae49@gmail.com> Date: Sun, 13 Sep 2026 20:06:52 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 4/7] phy: cpcap-usb: add DCP detection and make UART idle mode optional To: Manivannan Sadhasivam Cc: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Aaro Koskinen , Andreas Kemnade , Kevin Hilman , Roger Quadros , Tony Lindgren , Linus Walleij , Bartosz Golaszewski , linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-gpio@vger.kernel.org References: <20260711204210.197144-1-ivo.g.dimitrov.75@gmail.com> <20260711204210.197144-5-ivo.g.dimitrov.75@gmail.com> Content-Language: en-GB From: Ivaylo Dimitrov In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260913_100659_302419_2C5E46AA X-CRM114-Status: GOOD ( 30.03 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org CgpPbiA5LjA5LjI2INCzLiAxOTowNyDRhy4sIE1hbml2YW5uYW4gU2FkaGFzaXZhbSB3cm90ZToK PiBPbiBTYXQsIEp1bCAxMSwgMjAyNiBhdCAxMTo0MjowN1BNICswMzAwLCBJdmF5bG8gRGltaXRy b3Ygd3JvdGU6Cj4+IEhhbmRsZSBEQ1Agc2VwYXJhdGVseSBmcm9tIFVTQiBob3N0IGNvbm5lY3Rp b25zIHVzaW5nIENQQ0FQIGNoYXJnZXIKPj4gZGV0ZWN0aW9uIHN0YXR1cy4KPj4KPj4gTWFrZSB0 aGUgZXhpc3RpbmcgaWRsZSBVQVJUIG1vZGUgb3B0aW9uYWwgdmlhIHRoZSAiZW5hYmxlX3VhcnQi IG1vZHVsZQo+PiBwYXJhbWV0ZXIuIFdoZW4gZGlzYWJsZWQgKGRlZmF1bHQpLCB0aGUgUEhZIHJl bWFpbnMgaW4gaXRzIFVTQi9jaGFyZ2VyCj4+IGRldGVjdGlvbiBjb25maWd1cmF0aW9uIHdoaWxl IGlkbGUuCj4+Cj4+IEFsc28gaW5pdGlhbGl6ZSB0aGUgUEhZIGludG8gdGhlIGJhc2VsaW5lIGNv bmZpZ3VyYXRpb24gcmVxdWlyZWQgZm9yCj4+IHJlbGlhYmxlIGNoYXJnZXIgZGV0ZWN0aW9uIGR1 cmluZyBwcm9iZS4KPj4KPj4gVXNlIHRoZSBvcHRpb25hbCAic2FmZSIgcGluY3RybCBzdGF0ZSBi ZWZvcmUgc3dpdGNoaW5nIGJldHdlZW4gbW9kZXMgdG8KPj4gYXZvaWQgZ2xpdGNoZXMgb24gVVNC IG9yIFVBUlQgbGluZXMuCj4+Cj4gCj4gTG9va3MgbGlrZSB0aGlzIGNoYW5nZSBpcyBkb2luZyBt dWx0aXBsZSB0aGluZ3MgYXQgb25jZS4gUGxlYXNlIHNwbGl0IHRoZQo+IGNoYW5nZXMgbG9naWNh bGx5IHRvIHNlcGFyYXRlIHBhdGNoZXMuCj4gCndpbGwgc3BsaXRpbmcgaW4gdHdvOgoKcGF0Y2gx OiBlbmFibGVfdWFydCArIHNhZmUgcGluY3RybApwYXRjaDI6IERDUCBkZXRlY3Rpb24gKyBpbml0 IG9uIHByb2JlCgpiZSBvayBvciB5b3Ugd2FudCBtZSB0byBzcGxpdCBldmVuIG1vcmU/IFRvIG1l IGl0IG1ha2VzIHNlbnNlIGFzIAplbmFibGVfdWFydCB3aWxsIGJlIGZldyBsaW5lcyBvbmx5IGlm IHNlbnQgYXMgYSBzZXBhcmF0ZSBwYXRjaCBhbmQgSSAKZG9uJ3QgdGhpbmsgc3BsaXR0aW5nIERD UCBkZXRlY3Rpb24gKyBpbml0IG9uIHByb2JlIG1ha2VzIHNlbnNlLgoKPj4gTm90ZTogRW5hYmxp bmcgVUFSVCBpZGxlIG1vZGUgaW5jcmVhc2VzIGlkbGUgcG93ZXIgY29uc3VtcHRpb24gKGJ5IDI1 bVcKPj4gb24gZHJvaWQ0KS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogSXZheWxvIERpbWl0cm92IDxp dm8uZy5kaW1pdHJvdi43NUBnbWFpbC5jb20+Cj4+Cj4+ICMgQ29uZmxpY3RzOgo+PiAjCWRyaXZl cnMvcGh5L21vdG9yb2xhL3BoeS1jcGNhcC11c2IuYwo+IAo+IFdoYXQgaXMgdGhpcyBjb25mbGlj dD8KCmFuIGFydGVmYWN0IGZyb20gbnRoIGxvY2FsIHJlYmFzZS9tZXJnZSBiZWZvcmUgc3VibWlz c2lvbiA6KSAuCgo+IAo+PiAtLS0KPj4gICBkcml2ZXJzL3BoeS9tb3Rvcm9sYS9waHktY3BjYXAt dXNiLmMgfCAzMDEgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCj4+ICAgMSBmaWxlIGNoYW5n ZWQsIDIzOCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGh5L21vdG9yb2xhL3BoeS1jcGNhcC11c2IuYyBiL2RyaXZlcnMvcGh5L21vdG9y b2xhL3BoeS1jcGNhcC11c2IuYwo+PiBpbmRleCA3NDExNDVjODllNWIuLjJkNzcwZmYxOWU5MyAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9waHkvbW90b3JvbGEvcGh5LWNwY2FwLXVzYi5jCj4+ICsr KyBiL2RyaXZlcnMvcGh5L21vdG9yb2xhL3BoeS1jcGNhcC11c2IuYwo+PiBAQCAtMTEwLDYgKzEx MCwxNSBAQCBlbnVtIGNwY2FwX2dwaW9fbW9kZSB7Cj4+ICAgCUNQQ0FQX09UR19ETV9EUCwKPj4g ICB9Owo+PiAgIAo+PiArZW51bSBjcGNhcF9tb2RlIHsKPj4gKwlDUENBUF9VTktOT1dOLAo+PiAr CUNQQ0FQX0lETEUsCj4+ICsJQ1BDQVBfQ0hBUkdFUiwKPj4gKwlDUENBUF9VU0IsCj4+ICsJQ1BD QVBfVVNCX0hPU1QsCj4+ICsJQ1BDQVBfRE9DSywKPj4gK307Cj4+ICsKPj4gICBzdHJ1Y3QgY3Bj YXBfcGh5X2RkYXRhIHsKPj4gICAJc3RydWN0IHJlZ21hcCAqcmVnOwo+PiAgIAlzdHJ1Y3QgZGV2 aWNlICpkZXY7Cj4+IEBAIC0xMTksMTUgKzEyOCwxOSBAQCBzdHJ1Y3QgY3BjYXBfcGh5X2RkYXRh IHsKPj4gICAJc3RydWN0IHBpbmN0cmxfc3RhdGUgKnBpbnNfdWxwaTsKPj4gICAJc3RydWN0IHBp bmN0cmxfc3RhdGUgKnBpbnNfdXRtaTsKPj4gICAJc3RydWN0IHBpbmN0cmxfc3RhdGUgKnBpbnNf dWFydDsKPj4gKwlzdHJ1Y3QgcGluY3RybF9zdGF0ZSAqcGluc19zYWZlOwo+PiAgIAlzdHJ1Y3Qg Z3Bpb19kZXNjICpncGlvWzJdOwo+PiAgIAlzdHJ1Y3QgaWlvX2NoYW5uZWwgKnZidXM7Cj4+ICAg CXN0cnVjdCBpaW9fY2hhbm5lbCAqaWQ7Cj4+ICAgCXN0cnVjdCByZWd1bGF0b3IgKnZ1c2I7Cj4+ ICAgCWF0b21pY190IGFjdGl2ZTsKPj4gLQl1bnNpZ25lZCBpbnQgdmJ1c19wcm92aWRlcjoxOwo+ PiAtCXVuc2lnbmVkIGludCBkb2NrZWQ6MTsKPj4gKwllbnVtIGNwY2FwX21vZGUgbW9kZTsKPj4g ICB9Owo+PiAgIAo+PiArc3RhdGljIGJvb2wgY3BjYXBfZW5hYmxlX3VhcnQ7Cj4+ICttb2R1bGVf cGFyYW1fbmFtZWQoZW5hYmxlX3VhcnQsIGNwY2FwX2VuYWJsZV91YXJ0LCBib29sLCAwNjQ0KTsK Pj4gK01PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX3VhcnQsCj4+ICsJCSAiRW5hYmxlIFVBUlQgb24g dGhlIFVTQiBjb25uZWN0b3Igd2hpbGUgaWRsZSAoaW5jcmVhc2VzIHBvd2VyIGNvbnN1bXB0aW9u KSIpOwo+IAo+IFVzZSBvZiBtb2R1bGUgcGFyYW1zIGlzIGRpc2NvdXJhZ2VkIHRoZXNlIGRheXMu IEFsc28sIHlvdSBhcmUgZGlzYWJsaW5nIGl0IGJ5Cj4gZGVmYXVsdCwgd2hpY2ggY291bGQgY2F1 c2Ugc3VycHJpc2VzIHRvIHVzZXJzIHdobyBoYXZlIGJvYXJkcyB3aXJlZCB1cCBmb3IgZGVidWcK PiBjb25zb2xlLiBCdXQgY29uc2lkZXJpbmcgdGhhdCBpdCBjb25zdW1lcyBhIGxvdCBvZiBwb3dl ciwgSSB0aGluayBpdCBpcyBPSyB0bwo+IGRpc2FibGUgaXQgdGhpcyB3YXkuIEkgY2FuJ3QgdGhp bmsgb2YgYW5vdGhlciB3YXkgdG8gYWRkIHRoaXMga25vYi4KPiAKCk1lIG5laXRoZXIsIHRoYXQn cyB3aHkgSSBjYW1lIHVwIHdpdGggYSBtb2R1bGUgcGFyYW1ldGVyLiBZZXMsIEkgCnVuZGVyc3Rh bmQgZGlzYWJsaW5nIGl0IGJ5IGRlZmF1bHQgbWF5IGNhdXNlIHJlZ3Jlc3Npb24gZm9yIHNvbWUg CihwcmVzdW1hYmx5IGtub3dsZWRnZWFibGUpIHVzZXJzLCBob3dldmVyLCBJIHRoaW5rIHN0cmlw cGluZyB+MjUlIGZyb20gCmlkbGUgcG93ZXIgdXNhZ2UgZm9yIHRoZSBvdGhlcnMgd29ydGhzIGl0 LgoKPj4gICBzdGF0aWMgYm9vbCBjcGNhcF91c2JfdmJ1c192YWxpZChzdHJ1Y3QgY3BjYXBfcGh5 X2RkYXRhICpkZGF0YSkKPj4gICB7Cj4+ICAgCWludCBlcnJvciwgdmFsdWUgPSAwOwo+PiBAQCAt MTk2LDggKzIwOSw5IEBAIHN0YXRpYyBpbnQgY3BjYXBfcGh5X2dldF9pbnRzX3N0YXRlKHN0cnVj dCBjcGNhcF9waHlfZGRhdGEgKmRkYXRhLAo+PiAgIAlyZXR1cm4gMDsKPj4gICB9Cj4+ICAgCj4g Cj4gWy4uLl0KPiAKPj4gQEAgLTQ3MywyMSArNTU5LDEwIEBAIHN0YXRpYyBpbnQgY3BjYXBfdXNi X3NldF91c2JfbW9kZShzdHJ1Y3QgY3BjYXBfcGh5X2RkYXRhICpkZGF0YSkKPj4gICB7Cj4+ICAg CWludCBlcnJvcjsKPj4gICAKPj4gLQkvKiBEaXNhYmxlIGxpbmVzIHRvIHByZXZlbnQgZ2xpdGNo ZXMgZnJvbSB3YWtpbmcgdXAgbWRtNjYwMCAqLwo+PiAtCWVycm9yID0gY3BjYXBfdXNiX2dwaW9f c2V0X21vZGUoZGRhdGEsIENQQ0FQX1VOS05PV05fRElTQUJMRUQpOwo+PiArCWVycm9yID0gY3Bj YXBfdXNiX3NldF9zYWZlX21vZGUoZGRhdGEpOwo+PiAgIAlpZiAoZXJyb3IpCj4+ICAgCQlyZXR1 cm4gZXJyb3I7Cj4+ICAgCj4+IC0JaWYgKGRkYXRhLT5waW5zX3V0bWkpIHsKPj4gLQkJZXJyb3Ig PSBwaW5jdHJsX3NlbGVjdF9zdGF0ZShkZGF0YS0+cGlucywgZGRhdGEtPnBpbnNfdXRtaSk7Cj4+ IC0JCWlmIChlcnJvcikgewo+PiAtCQkJZGV2X2VycihkZGF0YS0+ZGV2LCAiY291bGQgbm90IHNl dCB1c2IgbW9kZTogJWlcbiIsCj4+IC0JCQkJZXJyb3IpOwo+PiAtCj4+IC0JCQlyZXR1cm4gZXJy b3I7Cj4+IC0JCX0KPj4gLQl9Cj4+IC0KPj4gICAJZXJyb3IgPSByZWdtYXBfdXBkYXRlX2JpdHMo ZGRhdGEtPnJlZywgQ1BDQVBfUkVHX1VTQkMxLAo+PiAgIAkJCQkgICBDUENBUF9CSVRfVkJVU1BE LCAwKTsKPj4gICAJaWYgKGVycm9yKQo+PiBAQCAtNTAzLDExICs1NzgsMjMgQEAgc3RhdGljIGlu dCBjcGNhcF91c2Jfc2V0X3VzYl9tb2RlKHN0cnVjdCBjcGNhcF9waHlfZGRhdGEgKmRkYXRhKQo+ PiAgIAkJZ290byBvdXRfZXJyOwo+PiAgIAo+PiAgIAllcnJvciA9IHJlZ21hcF91cGRhdGVfYml0 cyhkZGF0YS0+cmVnLCBDUENBUF9SRUdfVVNCQzIsCj4+IC0JCQkJICAgQ1BDQVBfQklUX1VTQlhD VlJFTiwKPj4gKwkJCQkgICBDUENBUF9CSVRfVVNCWENWUkVOIHwKPj4gKwkJCQkgICBDUENBUF9C SVRfVUFSVE1VWDAgfAo+PiArCQkJCSAgIENQQ0FQX0JJVF9FTVVNT0RFMCwKPiAKPiBBcyBTYXNo aWtvIG5vdGVkLCB5b3UgYXJlIG5vdCBjbGVhcmluZyBDUENBUF9CSVRfVVNCU1VTUEVORCBiaXQg c2V0IGluCj4gY3BjYXBfdXNiX3NldF9pZGxlX21vZGUoKS4KPiAKClZlbmRvciBrZXJuZWwgZG9l cyBub3QgZG8gaXQgYW5kIHdlIGFyZSB1c2luZyB0aGUgcGF0Y2ggd2l0aCAKQ1BDQVBfQklUX1VT QlNVU1BFTkQgbm90IGNsZWFyZWQgZm9yIGZldyBtb250aHMgd2l0aCBubyBpc3N1ZXMgCndoYXRz b2V2ZXIsIHNvIEkgYW0gbm90IGNvbnZpbmNlZCB0aGlzIGlzIG5lZWRlZC4gSG93ZXZlciwgdGVz dHMgb24gdGhlIApkZXZpY2UgZGlkbid0IHNob3cgYW55IGRpZmZlcmVuY2UgaWYgSSBjbGVhciB0 aGUgYml0IHNvIE9LLCB3aWxsIGRvLgoKPj4gICAJCQkJICAgQ1BDQVBfQklUX1VTQlhDVlJFTik7 Cj4+ICAgCWlmIChlcnJvcikKPj4gICAJCWdvdG8gb3V0X2VycjsKPj4gICAKPj4gKwlpZiAoZGRh dGEtPnBpbnNfdXRtaSkgewo+PiArCQllcnJvciA9IHBpbmN0cmxfc2VsZWN0X3N0YXRlKGRkYXRh LT5waW5zLCBkZGF0YS0+cGluc191dG1pKTsKPj4gKwkJaWYgKGVycm9yKSB7Cj4+ICsJCQlkZXZf ZXJyKGRkYXRhLT5kZXYsICJjb3VsZCBub3Qgc2V0IHVzYiBtb2RlOiAlaVxuIiwKPj4gKwkJCQll cnJvcik7Cj4+ICsKPj4gKwkJCXJldHVybiBlcnJvcjsKPj4gKwkJfQo+PiArCX0KPj4gKwo+PiAg IAkvKiBFbmFibGUgVVNCIG1vZGUgKi8KPj4gICAJZXJyb3IgPSBjcGNhcF91c2JfZ3Bpb19zZXRf bW9kZShkZGF0YSwgQ1BDQVBfT1RHX0RNX0RQKTsKPj4gICAJaWYgKGVycm9yKQo+PiBAQCAtNTIx LDYgKzYwOCwzOCBAQCBzdGF0aWMgaW50IGNwY2FwX3VzYl9zZXRfdXNiX21vZGUoc3RydWN0IGNw Y2FwX3BoeV9kZGF0YSAqZGRhdGEpCj4+ICAgCXJldHVybiBlcnJvcjsKPj4gICB9Cj4+ICAgCj4+ ICtzdGF0aWMgaW50IGNwY2FwX3VzYl9zZXRfZGNwX21vZGUoc3RydWN0IGNwY2FwX3BoeV9kZGF0 YSAqZGRhdGEpCj4+ICt7Cj4+ICsJaW50IGVycm9yOwo+PiArCj4+ICsJZXJyb3IgPSBjcGNhcF91 c2Jfc2V0X3NhZmVfbW9kZShkZGF0YSk7Cj4+ICsJaWYgKGVycm9yKQo+PiArCQlyZXR1cm4gZXJy b3I7Cj4+ICsKPj4gKwllcnJvciA9IHJlZ21hcF91cGRhdGVfYml0cyhkZGF0YS0+cmVnLCBDUENB UF9SRUdfVVNCQzIsCj4+ICsJCQkJICAgQ1BDQVBfQklUX1VTQlhDVlJFTiB8Cj4+ICsJCQkJICAg Q1BDQVBfQklUX1VBUlRNVVgwIHwKPj4gKwkJCQkgICBDUENBUF9CSVRfRU1VTU9ERTAsIDApOwo+ PiArCWlmIChlcnJvcikKPj4gKwkJZ290byBvdXRfZXJyOwo+PiArCj4+ICsJZXJyb3IgPSByZWdt YXBfdXBkYXRlX2JpdHMoZGRhdGEtPnJlZywgQ1BDQVBfUkVHX1VTQkMzLAo+PiArCQkJCSAgIENQ Q0FQX0JJVF9TVVNQRU5EX1NQSSwgMCk7Cj4+ICsJaWYgKGVycm9yKQo+PiArCQlnb3RvIG91dF9l cnI7Cj4+ICsKPj4gKwllcnJvciA9IGNwY2FwX3VzYl9ncGlvX3NldF9tb2RlKGRkYXRhLCBDUENB UF9ETV9EUCk7Cj4+ICsJaWYgKGVycm9yKQo+PiArCQlnb3RvIG91dF9lcnI7Cj4+ICsKPj4gKwly ZXR1cm4gMDsKPj4gKwo+PiArb3V0X2VycjoKPj4gKwlkZXZfZXJyKGRkYXRhLT5kZXYsICIlcyBm YWlsZWQgd2l0aCAlaVxuIiwgX19mdW5jX18sIGVycm9yKTsKPiAKPiBEb24ndCBwcmludCBmdW5j dGlvbiBuYW1lcyBpbiB0aGUgZXJyb3IgbG9nLgo+IAoKT2suCgpXaWxsIHNlbmQgbmV3IHNlcmll cywganVzdCBMTUsgaWYgeW91IHdhbnQgdGhlIHBhdGNoIHNwbGl0IGluIDIgb3IgbW9yZSAKcGF0 Y2hlcy4KClRoYW5rcywKSXZvCgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1waHkK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm2-f12.google.com (mail-wm2-f12.google.com [74.125.225.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6AD221EB5FD for ; Sun, 13 Sep 2026 17:06:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.140 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319220; cv=none; b=kBdtBGYJ8k62H34c5fIEZFgdUjMfS2jjwpV5QTnx73SOv75LquYmTUwjlVa7zM8c/+2pIdACZxhZ6o8mG77Z4cPOrvgGzHroc4TKpl+dMgmXW03s97Nk5wqnV+18oBtcHcoRiArwXJgy0DDh4I1QeWLpH+ZwqPxwDb4UVuIWyMI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319220; c=relaxed/simple; bh=55HOlgxv5Osy61VeA0QW3rB1klhKperyZUva8emw96E=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=LEkhPRzwvO42rsbkZR7Mg21e19+VfX3gQBY1nRyjZebpOl9maBYsZsweaVPmU/nezbivlRENo6t9LCk4r7qKb/5mWOvoMFHXj4iMyHBmAw6Q6JRSX53fqgwNqv81Xsob+44O0nEh0AW7dqX7Gitip3YyJJTW58Hzn52KQvgAUBE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dekYmsWU; arc=none smtp.client-ip=74.125.225.140 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dekYmsWU" Received: by mail-wm2-f12.google.com with SMTP id 5b1f17b1804b1-49ce364488dso3727355e9.0 for ; Sun, 13 Sep 2026 10:06:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789319217; x=1789924017; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=CLfGELYFsfdMyOIjPBzlfKUMxy/FgAuN3WPbdQvjEjI=; b=dekYmsWUMA7orNWR6WnDt3hnCugYL9EL5TDQAiY5o7DHGi0kZ6P3aa+BKVulfH0MU2 JR5PzjfyJALmC4niZdo2ziA6iK2Zhyyi7LUJj0RXuN54DkAcYuT7uEyaVGsGBiWabpQc v5LfckbHJotM4pgsQKpOWHeVVY04nArvmu3uI99e6aJ16K7bohTfkwRtCRpOpraIAGtT zQLvfTNhCKjdVy272vFGDiZPFm+DhLah/lQkiDtNp3VMiA15jWKAYqvGOqFcKcVpPyKZ D6FlgIU8PbWHBFOVrWc8ZuJf/udoIjz9PwxzwS5+TXfiWoq2bjSicAvqGmlQf9QpYKwi pBGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789319217; x=1789924017; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=CLfGELYFsfdMyOIjPBzlfKUMxy/FgAuN3WPbdQvjEjI=; b=J/KQOe9113AAHQX43JC3f6lK4HcwH5MEMGrG5KJW0v+LMr0BJ36Vw2/LoLjVaGFgNO FqANEQFSKpoc4faFPaLbRcPBMjarLz14e60WgP14HePxY7Au+zBow9915m6fkskWlW5Z C36oA/F9ocIonWoq2X6NPSke4BjknztZz66MVqIY+SlaWdlDpDTrtb3GBbHTDlKgllaX MOP+/0bJXn7eYP48awnnoBQS6Ebc8Wd5sHOgmeDkPRyAOTCyY+T5/Uq38LD/AJ7ZJTKO V74WsL/wUhejJNTeSc9Vg3c+6Fdzp3PGus3sxNCIqsW1w0M1I/XT0+hLdsSstOH3jlEc W76g== X-Forwarded-Encrypted: i=1; AKwUvByMSEo7tTAkoWRdWtZZDiFQAT0ZAmbRWPQFBpQyGjcPe3PGyJ+U/W+HD2P5lObDL/Qr1HKZCwyICrJ9@vger.kernel.org X-Gm-Message-State: AFuF++mdK5GcoIcqM+wwZ5M7E3qE4J06F09vVbg+7f+4mnEU4FXtIPS/ eM5NrfL4mlh4KTb6cNRY5xn2gqctzx/DCv0d2mjTgHs+waK1uLKxhFja X-Gm-Gg: AYBFou2Mp8eVyk3HvEPZ/h6JJ4xNhPLOl5r+kax8/BP6yELesikWEtcjWKseiMOMBxT 9pB7ee3hlrA1KpSBJYAWZxePo2DW2npLlBhBLGJgKvWom1MjBF12CMpQGddIgyWuvWzz+uKhupN aDjjk/srqSZBqRqjbniAYrxZIsSiD17H4LZHT2IOUPLYiVuj2fpL+uv5eLvhiJqCOD3BHDR5IrE dI9gp/D3jSaWGKezwCT6Zc5vw9gJKb1K888+HJWBX+5m9wP7yOcqSHY8/w+YBLSqMh7OscuGiqT QIe02MC4IUzyYGxqMsxpLd/CHJcHjXT44yoottFWmyIz93EilQJ2yaWWyj7HNvx8XtaQrGNFRaM lW/KHLdRdC0ALpzQdyw6YgE8ARd66bru1KH4CjjLEpBjYv5a0jTFPNOmON1i3K4x+HhdEoZwy25 IQbXj4W2muZkmixggbh5A7qxJIdjwNpbIGC36UK00AqfFGiwNZrBfagUUrqmWAUr1w5Lft0XlJt tvUKOw109NZgewnsdez3A== X-Received: by 2002:a05:600d:4443:20b0:49d:257c:a735 with SMTP id 5b1f17b1804b1-49e76065da4mr22473745e9.11.1789319216429; Sun, 13 Sep 2026 10:06:56 -0700 (PDT) Received: from [192.168.1.10] ([95.43.220.235]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-49e6aac22bbsm116205845e9.0.2026.09.13.10.06.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 13 Sep 2026 10:06:54 -0700 (PDT) Message-ID: <7dfe251c-7c1f-46c9-a3e4-fb7388ddae49@gmail.com> Date: Sun, 13 Sep 2026 20:06:52 +0300 Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 4/7] phy: cpcap-usb: add DCP detection and make UART idle mode optional To: Manivannan Sadhasivam Cc: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Aaro Koskinen , Andreas Kemnade , Kevin Hilman , Roger Quadros , Tony Lindgren , Linus Walleij , Bartosz Golaszewski , linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-gpio@vger.kernel.org References: <20260711204210.197144-1-ivo.g.dimitrov.75@gmail.com> <20260711204210.197144-5-ivo.g.dimitrov.75@gmail.com> Content-Language: en-GB From: Ivaylo Dimitrov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 9.09.26 г. 19:07 ч., Manivannan Sadhasivam wrote: > On Sat, Jul 11, 2026 at 11:42:07PM +0300, Ivaylo Dimitrov wrote: >> Handle DCP separately from USB host connections using CPCAP charger >> detection status. >> >> Make the existing idle UART mode optional via the "enable_uart" module >> parameter. When disabled (default), the PHY remains in its USB/charger >> detection configuration while idle. >> >> Also initialize the PHY into the baseline configuration required for >> reliable charger detection during probe. >> >> Use the optional "safe" pinctrl state before switching between modes to >> avoid glitches on USB or UART lines. >> > > Looks like this change is doing multiple things at once. Please split the > changes logically to separate patches. > will spliting in two: patch1: enable_uart + safe pinctrl patch2: DCP detection + init on probe be ok or you want me to split even more? To me it makes sense as enable_uart will be few lines only if sent as a separate patch and I don't think splitting DCP detection + init on probe makes sense. >> Note: Enabling UART idle mode increases idle power consumption (by 25mW >> on droid4). >> >> Signed-off-by: Ivaylo Dimitrov >> >> # Conflicts: >> # drivers/phy/motorola/phy-cpcap-usb.c > > What is this conflict? an artefact from nth local rebase/merge before submission :) . > >> --- >> drivers/phy/motorola/phy-cpcap-usb.c | 301 +++++++++++++++++++++------ >> 1 file changed, 238 insertions(+), 63 deletions(-) >> >> diff --git a/drivers/phy/motorola/phy-cpcap-usb.c b/drivers/phy/motorola/phy-cpcap-usb.c >> index 741145c89e5b..2d770ff19e93 100644 >> --- a/drivers/phy/motorola/phy-cpcap-usb.c >> +++ b/drivers/phy/motorola/phy-cpcap-usb.c >> @@ -110,6 +110,15 @@ enum cpcap_gpio_mode { >> CPCAP_OTG_DM_DP, >> }; >> >> +enum cpcap_mode { >> + CPCAP_UNKNOWN, >> + CPCAP_IDLE, >> + CPCAP_CHARGER, >> + CPCAP_USB, >> + CPCAP_USB_HOST, >> + CPCAP_DOCK, >> +}; >> + >> struct cpcap_phy_ddata { >> struct regmap *reg; >> struct device *dev; >> @@ -119,15 +128,19 @@ struct cpcap_phy_ddata { >> struct pinctrl_state *pins_ulpi; >> struct pinctrl_state *pins_utmi; >> struct pinctrl_state *pins_uart; >> + struct pinctrl_state *pins_safe; >> struct gpio_desc *gpio[2]; >> struct iio_channel *vbus; >> struct iio_channel *id; >> struct regulator *vusb; >> atomic_t active; >> - unsigned int vbus_provider:1; >> - unsigned int docked:1; >> + enum cpcap_mode mode; >> }; >> >> +static bool cpcap_enable_uart; >> +module_param_named(enable_uart, cpcap_enable_uart, bool, 0644); >> +MODULE_PARM_DESC(enable_uart, >> + "Enable UART on the USB connector while idle (increases power consumption)"); > > Use of module params is discouraged these days. Also, you are disabling it by > default, which could cause surprises to users who have boards wired up for debug > console. But considering that it consumes a lot of power, I think it is OK to > disable it this way. I can't think of another way to add this knob. > Me neither, that's why I came up with a module parameter. Yes, I understand disabling it by default may cause regression for some (presumably knowledgeable) users, however, I think stripping ~25% from idle power usage for the others worths it. >> static bool cpcap_usb_vbus_valid(struct cpcap_phy_ddata *ddata) >> { >> int error, value = 0; >> @@ -196,8 +209,9 @@ static int cpcap_phy_get_ints_state(struct cpcap_phy_ddata *ddata, >> return 0; >> } >> > > [...] > >> @@ -473,21 +559,10 @@ static int cpcap_usb_set_usb_mode(struct cpcap_phy_ddata *ddata) >> { >> int error; >> >> - /* Disable lines to prevent glitches from waking up mdm6600 */ >> - error = cpcap_usb_gpio_set_mode(ddata, CPCAP_UNKNOWN_DISABLED); >> + error = cpcap_usb_set_safe_mode(ddata); >> if (error) >> return error; >> >> - if (ddata->pins_utmi) { >> - error = pinctrl_select_state(ddata->pins, ddata->pins_utmi); >> - if (error) { >> - dev_err(ddata->dev, "could not set usb mode: %i\n", >> - error); >> - >> - return error; >> - } >> - } >> - >> error = regmap_update_bits(ddata->reg, CPCAP_REG_USBC1, >> CPCAP_BIT_VBUSPD, 0); >> if (error) >> @@ -503,11 +578,23 @@ static int cpcap_usb_set_usb_mode(struct cpcap_phy_ddata *ddata) >> goto out_err; >> >> error = regmap_update_bits(ddata->reg, CPCAP_REG_USBC2, >> - CPCAP_BIT_USBXCVREN, >> + CPCAP_BIT_USBXCVREN | >> + CPCAP_BIT_UARTMUX0 | >> + CPCAP_BIT_EMUMODE0, > > As Sashiko noted, you are not clearing CPCAP_BIT_USBSUSPEND bit set in > cpcap_usb_set_idle_mode(). > Vendor kernel does not do it and we are using the patch with CPCAP_BIT_USBSUSPEND not cleared for few months with no issues whatsoever, so I am not convinced this is needed. However, tests on the device didn't show any difference if I clear the bit so OK, will do. >> CPCAP_BIT_USBXCVREN); >> if (error) >> goto out_err; >> >> + if (ddata->pins_utmi) { >> + error = pinctrl_select_state(ddata->pins, ddata->pins_utmi); >> + if (error) { >> + dev_err(ddata->dev, "could not set usb mode: %i\n", >> + error); >> + >> + return error; >> + } >> + } >> + >> /* Enable USB mode */ >> error = cpcap_usb_gpio_set_mode(ddata, CPCAP_OTG_DM_DP); >> if (error) >> @@ -521,6 +608,38 @@ static int cpcap_usb_set_usb_mode(struct cpcap_phy_ddata *ddata) >> return error; >> } >> >> +static int cpcap_usb_set_dcp_mode(struct cpcap_phy_ddata *ddata) >> +{ >> + int error; >> + >> + error = cpcap_usb_set_safe_mode(ddata); >> + if (error) >> + return error; >> + >> + error = regmap_update_bits(ddata->reg, CPCAP_REG_USBC2, >> + CPCAP_BIT_USBXCVREN | >> + CPCAP_BIT_UARTMUX0 | >> + CPCAP_BIT_EMUMODE0, 0); >> + if (error) >> + goto out_err; >> + >> + error = regmap_update_bits(ddata->reg, CPCAP_REG_USBC3, >> + CPCAP_BIT_SUSPEND_SPI, 0); >> + if (error) >> + goto out_err; >> + >> + error = cpcap_usb_gpio_set_mode(ddata, CPCAP_DM_DP); >> + if (error) >> + goto out_err; >> + >> + return 0; >> + >> +out_err: >> + dev_err(ddata->dev, "%s failed with %i\n", __func__, error); > > Don't print function names in the error log. > Ok. Will send new series, just LMK if you want the patch split in 2 or more patches. Thanks, Ivo