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 5F371378D94 for ; Mon, 2 Feb 2026 15:11:56 +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=1770045118; cv=none; b=V9Vk0Q43P75Z0Me2d/G8Drqa0w9BeGzlrKO/XeDcwxLP+68Q4o8/px1S7O2Y+Ab5K+vQiQRnqddfGGBioMt7fCSpmPBIK2FCBN7ZCYDZ/cF0gSeRe+24yNzjlh2fsN7GRpVqNDr9QmCohGqeQxAHZ/dBgXLUiYs6ea/SSofEBoM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770045118; c=relaxed/simple; bh=shXiJFtbQdDIh/GK1WrwJuVnSt557APEJloCbYV0jEs=; h=Message-ID:Date:MIME-Version:From:Subject:To:Cc:References: In-Reply-To:Content-Type; b=HlBXIaxMIsKM39si/QaPU2f1ArcpKbSkT200GGKaYEM3frLvOFPoRv6meEFl8z9S79o3H+lmbePXn3EFFqC6q+EERwrh/lAc/O6OdeHv3yrF2Oc6cMHfTyy2MkzsZur3xn8Y0UbqNGRWOjSAcqMkRo40ISGr5uXFl4maFicB5WM= 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=ThbKyOoG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Vh0vhhm5; 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="ThbKyOoG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Vh0vhhm5" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 612CVJA1255929 for ; Mon, 2 Feb 2026 15:11:55 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= ouKV+1TUSDl/lItIRyWwLr7s50QOXOG13eWEPnJuc/E=; b=ThbKyOoGMEaFxdli qWs55VNUg8TJoURVmdfGW7NcnZdSIFUF+W/i7O7yVVSHJTLrBz01kipzZEJISrae PBXRTqqy/t3JPD/Woy4iZnEV5DrtRUN6r5o+X+eqABIjviKh4wltGBfSmmPgeivj ZFz1pXMbxLxns9RswBs0foXUeKD3KRAMvhGZZ+a/NJJT+rmNo7StrmA4qbtuFF5K otgo5XLVs6oVhWCN7imuKBHLzJaq02vc/xe89rgSP/M3wV8kWxO6vYsqpRdkrsNl tfDF9nhjiM/tAjqRuhtLVdz12yUqUvMfRqoXMXavdvzVUIFtSM1et5xCHaM8ye/f +mH4uA== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c2v0kgehx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 02 Feb 2026 15:11:55 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8c70a08daf3so1205742685a.3 for ; Mon, 02 Feb 2026 07:11:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770045115; x=1770649915; darn=vger.kernel.org; h=content-transfer-encoding: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; bh=ouKV+1TUSDl/lItIRyWwLr7s50QOXOG13eWEPnJuc/E=; b=Vh0vhhm56veOmyn1tE1QKEOEE60ixzyVXktVtYlHy57tTs5GlEqKAUv7gmB8eO3R+E OARXZjyGa7bjugXgFtn3Mev7EkTqRZB4lbh9wken3YyrskQ1d0b2GTzKoTDMcxCtvDHh 4MdUW8wN0KCrrtYRrneD+Vbfor5oTj6KoXfRHETkJ2jWLabWdUNz4nzxzjAuDcSlHT+T SHPKk7SkTyHKR7BzikPIll8NGzJ97L5FLH8L0Or/FL4n0yIdPgoh7g4ogFOsc8uX8Yga nVEae0HllGPIAfGpNvHHRycssHatGI2M5nOviks5oI0q4fV+XrcDq/uLZd+tMNWXsumF MHuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770045115; x=1770649915; h=content-transfer-encoding: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; bh=ouKV+1TUSDl/lItIRyWwLr7s50QOXOG13eWEPnJuc/E=; b=d7kHOucoAkHyBBT2uSkI4TFrmOTTw9T8SGfMOE7tN9OaALv6bt+MrDZXRpDjgKr9OM olv5fXIyP6UHeHBHIExoDx1ht9NAVJQsSQK/ZPVElSJgYG7Za96PYO9fVc5rQ6wT1z7t C1/zD6Ukol2bV/xlhay2FhCNzbSiD4DJfHZMF6lCrwY1/IT0UEbuUlWntfvwQ6hPJKN2 vyenQ+azLziYgp43SwXEC+t2U3DboGnmWTab1T90BK4Bg4AJ/nfba26Y9J2yVoMopP+y BOK+TEuX+LBQwZPwvO0bQwLBReZ34Gyd/qpUQPnFLiuC4fSK0koxgRdJRgI9/cUI6rsO F+ag== X-Forwarded-Encrypted: i=1; AJvYcCXiUUhXe4L0iyd+h/feqDzO6rTWz1Scr/iRUuZBF5Y1FRR8guqky29LoycbHxHlp0N4KQDuJdDGVNQLMVM=@vger.kernel.org X-Gm-Message-State: AOJu0YxE4NSTrD8ZiKhzP4LgsGPXm+EMB/bOYaJHXeLO/m/NvvSND7DR QLVILoQ6BKaaaqIj4jFtM6Q2Fp6Dg3+6yp+1ppKMVtPDG4ZGzmbPV90sC67PhzwnOLVARqrnyDD x2LvAmcCp7xztAJWTzOFS98AzHKgM5+qjMMwiJLGq6KIKXJw6CZ9dximfZLvM6spxvhc= X-Gm-Gg: AZuq6aID5ni6W+sMUMYCm76fRpKgb09cLlFD2xsN5VB9IbCy2aoXQFyHwoipVmk/4PH dXY2M/DSjcZE9N1yxlaEsexNmUjQgToh1s8IyXQnWcoy7yvFF2Wt3sy5X1Nr+JS0RN1PdbNx1Wg WIP8k1q1DB7Q62CS4oGEJtDzpVQNYJsfrcOA/F1RivX5bx/qzqaD7g8qRKfmjmV09yameaedEMx fWSfSUjC4BBVw5hkbyiV5/ZqxC7cc+1v0vUsSaU7qOGWX9sTmk/v08SWV3fkkvPoPfAfjj0Z+Rz k6yW8ynAMNvQ2gGwzlfi+xuf9SRGMzB3vP/4PJxNcdJL3RU2fuF9xm5V0DTqgWpzZiVVF4ApPvR Lndgi2s9WefLO1yYwWkTGTRt3dkT2Cx221amyiZLaj7svo/shkTrEuuTgVFzKBcCSnbc4JS+uJX YlQlo69egDhQyVx1JjWW4chHUKZwsb3yc88nJQ16sl1+k90FOzU9RXszNWQbsMFPaV2pe2EvgMO BYY X-Received: by 2002:a05:620a:4054:b0:8b2:dfb3:dc2a with SMTP id af79cd13be357-8c9eb314706mr1481620785a.75.1770045114278; Mon, 02 Feb 2026 07:11:54 -0800 (PST) X-Received: by 2002:a05:620a:4054:b0:8b2:dfb3:dc2a with SMTP id af79cd13be357-8c9eb314706mr1481614385a.75.1770045113639; Mon, 02 Feb 2026 07:11:53 -0800 (PST) Received: from ?IPV6:2001:1c00:c32:7800:5bfa:a036:83f0:f9ec? (2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:5bfa:a036:83f0:f9ec]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8dbeffedd3sm863400066b.29.2026.02.02.07.11.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 Feb 2026 07:11:53 -0800 (PST) Message-ID: <591ac511-d339-40d1-9cae-299e068a9b17@oss.qualcomm.com> Date: Mon, 2 Feb 2026 16:11:52 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: johannes.goede@oss.qualcomm.com Subject: Re: [PATCH 2/2] media: i2c: ov13b10: Support tps68470 regulator and gpio To: Arun T Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org References: <20260130092431.2335363-1-arun.t@intel.com> <20260130092431.2335363-2-arun.t@intel.com> Content-Language: en-US, nl In-Reply-To: <20260130092431.2335363-2-arun.t@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Authority-Analysis: v=2.4 cv=Reqdyltv c=1 sm=1 tr=0 ts=6980bebb cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=QyXUC8HyAAAA:8 a=yQ_Oy8pCjmFIsukoX0sA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjAyMDEyMCBTYWx0ZWRfX54P2Xiu3VliK As3DjDjdDXmCe+vZoMp+QC5LlvZILd9zzgLaE5W6CtqMm8t2AgPEpsC1d1MIRnuzurywBEUxul8 8CvqmH2S7XzqdGFkG7hx2SSLB8PE2otpCWngYI51LI9IcI/vgSN4FFSV1Ai8hvk6bJKlXYWQlBk PrTD/vb0FVjYXSbe4DrhVgMrQjQ0G9xKfukxn2OYqFv8tOEbDZvr12yshbFuPADpddzhpHHjK7m 2XV6uG4XOGXxsOuPkCDbvJzAlVEDKzFymHVRVaR4JiDOwAdqlv8/qb1d1K3qaLWaqmjb+JQH+2c Au9MQmduHaFpks4n+1g2bkduZMzDSzMjICKqFYx2KBribCkrgwlsMRaIvvyWdiQdCxTPU/VQrKZ p9ydV4b0Oi60pbqBum2eSCiRbTC6nK08/iemIWpqjZE8UnangJaBs3twcUh58ihNKTMEfTwJSah dgRddtNxQeRWPJrdS4Q== X-Proofpoint-GUID: UouVnHSh3V_pyCWDMjksG_HQXLFp4eWN X-Proofpoint-ORIG-GUID: UouVnHSh3V_pyCWDMjksG_HQXLFp4eWN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-02_04,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602020120 Hi Arun, Thank you for your patch. On 30-Jan-26 10:24, Arun T wrote: > Ov13b10 sensor get clock and regulator from TPS68470 PMIC. > Added tps68470 regulator/gpio names in power_on() > > Signed-off-by: Arun T > --- > drivers/media/i2c/ov13b10.c | 38 ++++++++++++++++++++++++++++++++++--- > 1 file changed, 35 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/i2c/ov13b10.c b/drivers/media/i2c/ov13b10.c > index 5421874732bc..c2469c88c722 100644 > --- a/drivers/media/i2c/ov13b10.c > +++ b/drivers/media/i2c/ov13b10.c > @@ -709,6 +709,10 @@ struct ov13b10 { > > struct clk *img_clk; > struct regulator *avdd; > + struct regulator *vio; > + struct regulator *core; > + struct gpio_desc *enable; This new enable gpio does not seem to get used in the patch at all ? > + > struct gpio_desc *reset; > > /* V4L2 Controls */ > @@ -1475,12 +1479,19 @@ static int ov13b10_get_pm_resources(struct ov13b10 *ov13b) > unsigned long freq; > int ret; > > - ov13b->reset = devm_gpiod_get_optional(ov13b->dev, "reset", GPIOD_OUT_LOW); > + if (strstr(dev_name(ov13b->dev), "OVTI13B1:01")) > + ov13b->reset = devm_gpiod_get_optional(ov13b->dev, "s_resetn", GPIOD_OUT_LOW); > + else > + ov13b->reset = devm_gpiod_get_optional(ov13b->dev, "reset", GPIOD_OUT_LOW); Nack, you're adding a lookup in patch 1/2, simply use "reset" there instead of "s_resetn" and then you don't need this. More importantly board/platform specific info like this must NOT be present in sensor drivers. All uses of "if (strstr(dev_name(ov13b->dev), "OVTI13B1:01"))" in this patch MUST be dropped. > if (IS_ERR(ov13b->reset)) > return dev_err_probe(ov13b->dev, PTR_ERR(ov13b->reset), > "failed to get reset gpio\n"); > > - ov13b->img_clk = devm_v4l2_sensor_clk_get(ov13b->dev, NULL); > + if (strstr(dev_name(ov13b->dev), "OVTI13B1:01")) > + ov13b->img_clk = devm_v4l2_sensor_clk_get(ov13b->dev, "tps68470-clk"); > + else > + ov13b->img_clk = devm_v4l2_sensor_clk_get(ov13b->dev, NULL); > + Same here, the old code with the NULL name arg will work fine since there should be only 1 clk provider. > if (IS_ERR(ov13b->img_clk)) > return dev_err_probe(ov13b->dev, PTR_ERR(ov13b->img_clk), > "failed to get imaging clock\n"); > @@ -1490,8 +1501,11 @@ static int ov13b10_get_pm_resources(struct ov13b10 *ov13b) > return dev_err_probe(ov13b->dev, -EINVAL, > "external clock %lu is not supported\n", > freq); > + if (strstr(dev_name(ov13b->dev), "OVTI13B1:01")) > + ov13b->avdd = devm_regulator_get_optional(ov13b->dev, "ana"); > + else > + ov13b->avdd = devm_regulator_get_optional(ov13b->dev, "avdd"); Again you're providing the map information in patch 1/2 just call it avdd! > > - ov13b->avdd = devm_regulator_get_optional(ov13b->dev, "avdd"); > if (IS_ERR(ov13b->avdd)) { > ret = PTR_ERR(ov13b->avdd); > ov13b->avdd = NULL; > @@ -1499,6 +1513,24 @@ static int ov13b10_get_pm_resources(struct ov13b10 *ov13b) > return dev_err_probe(ov13b->dev, ret, > "failed to get avdd regulator\n"); > } > + if (strstr(dev_name(ov13b->dev), "OVTI13B1:01")){ > + ov13b->avdd = devm_regulator_get_optional(ov13b->dev, "dovdd"); > + if (IS_ERR(ov13b->avdd)) { > + ret = PTR_ERR(ov13b->avdd); > + ov13b->avdd = NULL; > + if (ret != -ENODEV) > + return dev_err_probe(ov13b->dev, ret, > + "failed to get avdd regulator\n"); > + } > + ov13b->avdd = devm_regulator_get_optional(ov13b->dev, "dvdd"); > + if (IS_ERR(ov13b->avdd)) { > + ret = PTR_ERR(ov13b->avdd); > + ov13b->avdd = NULL; > + if (ret != -ENODEV) > + return dev_err_probe(ov13b->dev, ret, > + "failed to get avdd regulator\n"); > + } > + } You're using ov13b->avdd to store the other 2 regulators too that cannot be right... Also for adding multiple regulators you should use the bulk regulator API, see e.g. : https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/media/i2c/hi556.c?id=375fc903e57cb3ca4d2d5408de98d6369d4c8334 And there is no need for the if (strstr(dev_name(ov13b->dev), "OVTI13B1:01")){ here, the regulator core will provide dummy regulators on boards where there are no regulators defined for dovdd and dvdd. Regards, Hans