From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 392013B0AC3 for ; Fri, 28 Aug 2026 09:35:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787909731; cv=none; b=uOPsLS/fOyOYLAhFmj0+IEcdJIs6S4jTCoQL1cmSqJVqnyKQSKhDbXm8x8hUpHcMJ7nERMN4BB/5cpfqyLvzEPMhjtLyJE/YIo/GL9kacsOrKGb4cXcj8KPoCIjAFYUo/7LgQfb64rWVtFBLQGwcO3eyPMz2azQXyqXFx4Eer6Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787909731; c=relaxed/simple; bh=0VlPrtAW1Ag8BlC1d0E8ecL937a7RijURTVfk62h5LE=; h=Message-ID:Date:MIME-Version:From:Subject:To:Cc:References: In-Reply-To:Content-Type; b=L6EwKK1F66KDzRQdEy0zTFfPFvhQeVKy/SpeXGobeJ9EEae4IGtxS1/cvrXJbKGjy7kzd5J5SRVSlvi/aAk90Q6K91DzUx0SYihDlb/epAd+dPfnfgXjy64swm3aHhFgfZeC0q/OleFUur1GpKZbnDCGgFO7wP66qGwx08TRRAg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=A/cYGsZW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PjKXpK1r; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="A/cYGsZW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PjKXpK1r" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67S66YAc2761952 for ; Fri, 28 Aug 2026 09:35:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= aEjLtUeX92IN9RVLRhP3Y0wezNthc8ZyOcZGN19DtsM=; b=A/cYGsZWYJQU6iYf 5xZNCmXzU3YvEqkK1EYaMpHABp0JY3FbP+cnmB8m5WpGp0YlRci4aPYTgv/fobuZ JN0drnLD5nTFHS0vPPZMJs9cZ4eow9rUpfTNbqnrd2GSI8/WYfrWkwif0mPr+sq1 JSm3AgAqGrZNMFnEb3tYtNCqvqnT0xDtr+TzYuQPyQVHZgxkX2tlU6Sca+J1dxiy EolH2F4XRHsBT9RAFeP0PUJFSCgPGv3291mrT6EXCag2oSnycIeSkX1Po/wLBkAf aZjDxijXBZtPjdMNQa6vMUp2SUw19skIywMwXMeQSsn2Wvc8cJB7QqK/YWrOu8N5 pcBIcQ== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gb42p8y1h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 28 Aug 2026 09:35:19 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-38dbf293831so2115128a91.3 for ; Fri, 28 Aug 2026 02:35:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787909719; x=1788514519; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:content-language :references:cc:to:subject:from:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to:content-type; bh=aEjLtUeX92IN9RVLRhP3Y0wezNthc8ZyOcZGN19DtsM=; b=PjKXpK1rVzAOSgweck9IIgf+3oF06NPO+mfMTObbQNBZ+4mEx7mofses+ijLiWSpFA /qVG69lYmd3BgF9IgB4PtrsQQLKok+F2LTmALM++9L8p9bUAawP1Sbl9L4OVMRbHntdU bTznNtuU0qeQiE+zm6Bi/DgVoHSKbEZ7+stcrmImTn6kAunqo80rhWU561JDslMJe9aH 26ttH93syuCu5dhub7W3djLaG7PO72aJAT+rmpolzQPAYto2KLuQsuWhN3dlvj6fg/7h CCnCYE9Mm02L3haiqvQ4Q+GJsvgxYACsw5T2137ZzoFfnOt0nIVQ1cFeG5jXKaZ6xqQv Rh9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787909719; x=1788514519; h=content-transfer-encoding:content-type:in-reply-to:content-language :references:cc:to:subject:from: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=aEjLtUeX92IN9RVLRhP3Y0wezNthc8ZyOcZGN19DtsM=; b=ijApxcbLnLwW5g+EBs06BXcZUSvIVqHF5sg12SpG26/swxrXeufw0dRgBvnWf7Bpvb Rxrg4d7mxvAFAByWvbzGvjsiK05877L3loDFIDy+zx56jd7iVd/pD6F0tY/xc0kc3sgO 5wYGzcSRyqg0Bd1GwtvonO2yDGJDyG7lBMDtGKhQVvSFaUxuMLO33M5GHHtjnuK+6/oP mZoYiTIc8iAqRKF6I3hcFFcHu2rhfsyc9M2G0kyfsyrQFYtUqwGsyj4luEM2NBfq2/tL 2KglrlvaFMCoXrTmB20PZcoBxxnbK+b4MktkXT6cDbCY6JV3OAqaaxLCkPq9XGPVBRoo E2mQ== X-Forwarded-Encrypted: i=1; AHgh+Rq6GWZL8Dj8vl+3XxBXib53j/5KPW+tkyHJHYh0hWzNAxkIF4zK1faHho8kANjK+0r5abyLo+KL7wGH@vger.kernel.org X-Gm-Message-State: AFuF++nFNxkreuS3JsZzq9YA6LRC1gx71uVbj2jWHIjVUCENXZCTYleJ pm5LHMnjdJP6b4sykANR6iMI2c3q4YhTkNGHIFo6BcvA82PXw4o7zU8qAh32VTPF42Kq1xs42CY m6yBQk0OpveXJZlKPMYlAPFeJh4HxsSo9n+K3N5lK3vHjNyt3lOMfKA0OpCv+GrOE X-Gm-Gg: AR+sD11w4dwn7/vnhkKw3Be9nesZYw6vennSf9BOm3GIEkJHGwKR4pn6lbN/P/1z7E8 uu6vjURwTs2q6dCuWwDch6cEIsKzVmwf6Dq1hQgPxTZ2ujPlkjyi+/95TiW899ervDKhZDFrH75 3lbOXgEyuUNUBwOTDpSLl3Lvd7wCJtJOT9SEncglzDb5o1I+F93O6ux2AeUbpk5DzSHSBxhIJQH eaY8OjNY0r+92Rgrpr4cc0PfjBv9YiawVr+T3rhMHB9RHPoMAxcAc2jS/PITd8yFrpBYVuJv5Fz pP61VfohB2rHCrO/uVGTdLPfA2Aw4jt8Ps0vgXykafo2k7Rw56G4WV0XlvZZ/EMkuubarveanNu 7W0h0mogvtNUbAlOM7i8Ie9v9gVdB X-Received: by 2002:a17:90b:6c7:b0:396:6344:3b63 with SMTP id 98e67ed59e1d1-396d0e25905mr11540991a91.2.1787909718760; Fri, 28 Aug 2026 02:35:18 -0700 (PDT) X-Received: by 2002:a17:90b:6c7:b0:396:6344:3b63 with SMTP id 98e67ed59e1d1-396d0e25905mr11540898a91.2.1787909718215; Fri, 28 Aug 2026 02:35:18 -0700 (PDT) Received: from [10.206.96.212] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f9e3cf8sm4311667eec.24.2026.08.28.02.35.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 28 Aug 2026 02:35:17 -0700 (PDT) Message-ID: Date: Fri, 28 Aug 2026 15:05:11 +0530 Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Arpit Saini Subject: Re: [PATCH v2 2/4] arm64: dts: qcom: shikra-cqm-evk: Enable display and add ili7807s panel To: Dmitry Baryshkov Cc: Konrad Dybcio , Nabige Aala , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org References: <20260706-shikra-dt-changes-v2-2-56fcd1659ea4@oss.qualcomm.com> <8a3cc857-0b1c-4bd5-a5ce-a564823ca614@oss.qualcomm.com> <6f8d8cf5-1e35-4d45-b2c1-6f36ac51ad4a@oss.qualcomm.com> <4efaa8d7-56c8-4581-a161-51abb319bdcf@oss.qualcomm.com> <6c89ef9d-3551-4b92-904c-316dbcffcfbd@oss.qualcomm.com> <15957c47-f8bc-4d92-a6b4-88c9a546d807@oss.qualcomm.com> <29ca6303-4368-4aeb-b82f-039aa252780a@oss.qualcomm.com> Content-Language: en-US In-Reply-To: <29ca6303-4368-4aeb-b82f-039aa252780a@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: OHufRp-_OUJDf_O2gm6CuQ-v9y4hM0Pi X-Authority-Analysis: v=2.4 cv=ToDWQjXh c=1 sm=1 tr=0 ts=6a915657 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=wZjUPTm7zW1cFMT4b9gA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-GUID: OHufRp-_OUJDf_O2gm6CuQ-v9y4hM0Pi X-Proofpoint-Spam-Info: AW1haW4tMjYwODI4MDA4MSBTYWx0ZWRfX0vc5XsvP4Lto D0gqQxvaNPpwb/ylX9Hohb6l+LsFl7jGXn9ci8zQMXanhjwk2K4OoUAhTv5CBBVJMFNHBbav+dL p78gYCiTy8fejHisBRTCHFcO5dDUYFE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI4MDA4MSBTYWx0ZWRfX0G7J+wQf/+uo RGqOjlUxEXOxIJpnXwxHH1TvbCEzYVh4vYORoQlZwMAPOUwoxh+9Os6NB04WMUm31NgXYMuA5mH aMJPNDQlTgCS2Vgmh1FxLoPKUWD4sPi/86ff3JpUOYpGlHQGeP+7fBDKdWZy23ii5jj5yEUU25u JZdjwt28JPw1SnseDTqHaUayS+osW9JBYsEkiJIPwxGTwN/ku0QYWQFpXCAPHooYKsoHeX1VD6w 5C8pQGetrWdVviiz+Ol5Gybx+nNyEjFAOR3/o9cDZ5KwXJOUvzLs8TxDoMvu3WHRmO9Sge6t7bq DiK6/i10MymKTf/fjZHIC1BXOke6/axqS8yfT2FgMI3qDYO1rxTFC0X0w7JvadA8OCnmFQFLjjM idA4E5cFRE6DdO6waPNHbPzRH8X+bZcXgbGPG+tfp1RjQIBG+LJIP+61V4G/5GGgtsGb3kxqoCV iarjmYM0rsVIXLxYgiw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-28_02,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608280081 Hi Dmitry, Just following up on this, I've addressed all the review comments, Could you take another look when you have a chance ? Happy to make further changes if needed. Thanks for your time!. Thanks, Arpit On 7/28/2026 11:14 AM, Arpit Saini wrote: > Hi Dmitry, > > On 7/22/2026 3:57 AM, Dmitry Baryshkov wrote: >> On Tue, Jul 21, 2026 at 02:35:42PM +0530, Arpit Saini wrote: >>> Hi Dmitry, >>> >>> On 7/20/2026 6:35 PM, Dmitry Baryshkov wrote: >>>> On Mon, Jul 20, 2026 at 05:37:25PM +0530, Arpit Saini wrote: >>>>> Hi Konrad, >>>>> >>>>> On 7/16/2026 11:21 PM, Konrad Dybcio wrote: >>>>>> On 7/14/26 9:21 AM, Arpit Saini wrote: >>>>>>> Hi Dmitry,Konrad >>>>>>> >>>>>>> On 7/10/2026 6:09 PM, Dmitry Baryshkov wrote: >>>>>>>> On Fri, Jul 10, 2026 at 05:28:04PM +0530, Arpit Saini wrote: >>>>>>>>> Hi Konrad, >>>>>>>>> >>>>>>>>> On 7/10/2026 2:31 PM, Arpit Saini wrote: >>>>>> >>>>>> [...] >>>>>> >>>>>>>>> Normally the backlight EN pin is controlled by a backlight driver. >>>>>>>>> >>>>>>>>> However, this panel uses MIPI DCS based backlight control with no >>>>>>>>> >>>>>>>>> separate backlight driver. Since there is no driver to assert gpio91, >>>>>>>>> >>>>>>>>> we control it via the panel's pinctrl default state.. >>>>>>>>> >>>>>>>>> So this is platform specific pin , we need this to enable/disable >>>>>>>>> >>>>>>>>> the backlight. >>>>>>>> >>>>>>>> Handle it from the panel driver. Also please fix your editor to prevent >>>>>>>> it from inserting extra empty lines. >>>>>>>> >>>>>>> >>>>>>> Earlier I handled it through panel driver, but this GPIO is specific to our >>>>>>> Qualcomm Daughter Card, it is not going to the panel connector. >>>>>> >>>>>> So is it an enable pin of a voltage regulator maybe? I'm having trouble >>>>>> understanding how this is all tied together, given the panel driver >>>>>> uses DCS commands to control the backlight status >>>>>> >>>>>> Konrad >>>>> >>>>> No, it is not a voltage regulator enable. >>>>> GPIO91 (WLED_P1_EN) is the enable pin of the WLED driver IC on the Qualcomm daughter card. >>>>> The WLED driver is a boost LED driver that powers the backlight LEDs. >>>>> The backlight control works in two parts: >>>> >>>> _that powers the backlight LEDs_. >>>> >>>> So it is a power supply. >>>> >>>>> >>>>> 1. GPIO91 must be asserted to enable the WLED driver IC itself. >>>>> 2. The panel's CABC output (a PWM signal) is connected to the WLED driver's PWM input >>>>> and controls the actual brightness. >>>>> This CABC output is driven by the DCS set_display_brightness command sent from the panel driver. >>>>> >>>>> So the DCS commands control brightness via the panel's PWM/CABC output, >>>>> but the WLED driver IC needs to be enabled first via GPIO91. >>>>> >>>>> Since GPIO91 is on the Qualcomm daughter card and not on the panel connector. >>>>> >>>>> Dmitry suggested , it is not appropriate to model it in the panel binding. >>>>> The current approach of asserting it via pinctrl default state in the board DTS keeps it board-specific. >>>>> >>>>> If you have a better suggestion for modelling this, I'm happy to follow your guidance. >>>>> >>>>> SoC (ITP Baseband Card) >>>>> ├── GPIO91 (WLED_P1_EN) ─────────────────────────────────────┐ >>>>> │ │ >>>>> └── DSI ──────────────────────────────────────────────────┐ │ >>>>> │ │ >>>>> ┌──────────────────────────────────────────────────────────┼──┼──────────────────────────────────┐ >>>>> │ Qualcomm Display Daughter Card │ │ │ >>>>> │ │ │ │ >>>>> │ ┌─────────────────────────────────┐ │ │ ┌──────────────────────┐ │ >>>>> │ │ DLC DLC0697 Panel (ILI7807S) │◄────────────────────┘ │ │ WLED Driver IC │ │ >>>>> │ │ │ | │ │ │ >>>>> │ │ DCS set_display_brightness() │ └──►│ EN │ │ >>>>> │ │ │ │ │ │ │ >>>>> │ │ ▼ │ │ │ │ >>>>> │ │ CABC output ───────────────────┼───────────────────────────►│ PWM │ │ >>>>> │ │ │ │ │ │ >>>>> │ │ │ │ LED outputs ────────┼──► Backlight LEDs >>>>> │ └─────────────────────────────────┘ └──────────────────────┘ │ >>>>> │ │ >>>>> └────────────────────────────────────────────────────────────────────────────────────────────────┘ >>>> >>>> This is a nice diagram, but it shows backlight LEDs as something >>>> completely separate. Usually they are a part of the panel. Are they not >>>> in this case? >>>> >>>> I'd be more interested in a different representation of the information. >>>> What are the _actual_ panel inputs? Decribe those (and only those) in >>>> the panel bindings. >>>> >>> >>> No , Backlight LEDs are part of the panel, I will correct the diagram for that, >>> and regards panel bindings, I modeled only the actual panel inputs. >>> >>> Hopefully, this diagram will clear this. >>> >>> ┌─────────────────┐ ┌───────────────────────────────────────────────────────────────────────────────────────────┐ >>> │ SOC Card │ │ Display DC │ >>> │ │ │ ┌──────────────────────────────┐ │ >>> │ DSI0 │ │ │ DLC Display CONN │ │ >>> │ ├─ DSICLK_P/M ─┼─────────┼────────────────────────────────────────────────────────┼──► DSICLK_P/M │ │ >>> │ ├─ DSILN0_P/M ─┼─────────┼────────────────────────────────────────────────────────┼──► DSILN0_P/M │ │ >>> │ ├─ DSILN1_P/M ─┼─────────┼────────────────────────────────────────────────────────┼──► DSILN1_P/M │ │ >>> │ ├─ DSILN2_P/M ─┼─────────┼────────────────────────────────────────────────────────┼──► DSILN2_P/M │ │ >>> │ └─ DSILN3_P/M ─┼─────────┼────────────────────────────────────────────────────────┼──► DSILN3_P/M │ │ >>> │ │ │ │ │ │ >>> │ 1.8V ──────────┼─────────┼──────────────────────────────────── vddi ──────────────┼──► vddi │ │ >>> │ │ │ │ │ │ >>> │ VSYS_PWR ──────┼─────────┼──────┐ │ │ │ >>> │ │ │ │ │ │ │ >>> │ LCD_BIAS_EN ───┼─────────┼──────┼──► ┌──────────────────┐ │ │ │ >>> │ │ │ ├───►│ LCD BIAS DRIVER ├──── VREG_DISP_P (+5.5V)┼──► VREG_DISP_P (+5.5V) │ │ >>> │ │ │ │ └──────────────────┘──── VREG_DISP_N (-5.5V)─┼──► VREG_DISP_N (-5.5V) │ │ >>> │ │ │ │ │ │ │ >>> │ LCD_BKLT_EN ───┼─────────┼──────┼──► ┌──────────────────┐ │ │ │ >>> │ | | | │ WLED DRIVER ├──── VREG_WLED ──────────┼──► VREG_WLED │ │ >>> │ │ │ └───►│ ├──── WLED_SIN1 ─────────┼──► WLED_SIN1 │ │ >>> │ │ │ │ ├──── WLED_SIN2 ─────────┼──► WLED_SIN2 │ │ >>> │ │ │ │ ◄─PWM─┤◄───────────────────────┼◄── CABC │ │ >>> │ │ │ └──────────────────┘ │ │ │ >> >> Perfect. So this is LED device, it provides backlight to the panel. >> Describe it correctly in the DT. >> >> Think of somebody using PM8150's WLED with the panel. >> >> For the panel bindings use only actual panel inputs. Think of it being >> used on a completely different platform, without the DC card. >> > The panel driver already handles this generically. In ili7807s_probe(): > ret = drm_panel_of_backlight(&ctx->panel); > if (ret) > return ret; > > if (!ctx->panel.backlight) { > ctx->panel.backlight = ili7807s_create_backlight(dsi); > if (IS_ERR(ctx->panel.backlight)) > return dev_err_probe(dev, PTR_ERR(ctx->panel.backlight), > "failed to create backlight\n"); > } > > If a platform provides a `backlight` phandle in the panel DT node > (e.g., PM8150 WLED or any other backlight device), drm_panel_of_backlight() > will use that external backlight device. > > The DCS fallback is not created in that case. > > For our Qualcomm display daughter card, the DCS fallback backlight is used. > > So the panel driver is already platform-agnostic: > > - On a platform with PM8150 WLED → provide backlight = <&pm8150_wled> > in the panel DT node, and the panel driver uses it directly. > > - On our daughter card → no backlight phandle, panel driver > creates DCS backlight, GPIO91 is handled via board-level pinctrl. > > Please let me know if there is another way to do this, > or if I have misunderstood your comment. > > Thanks, > Arpit > > >> >>> │ MDP_VSYNC_P ───┼─────────┼────────────────────────────────────────────────────────┼──► MDP_VSYNC_P │ │ >>> │ │ │ │ │ │ >>> │ DISP_RST ──────┼─────────┼────────────────────────────────────────────────────────┼──► DISP_RST │ │ >>> │ │ │ │ │ │ >>> │ Touch ─//──────┼─────────┼────────────────────────────────────────────────────────┼──► Touch signals │ │ >>> │ signals │ │ └──────────────────────────────┘ │ >>> └─────────────────┘ └───────────────────────────────────────────────────────────────────────────────────────────┘ >>> >>> Thanks, >>> Arpit >> >