From nobody Fri Sep 25 10:05:41 2026 Received: from mail-ej2-f12.google.com (mail-ej2-f12.google.com [74.125.228.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 4C32843551C for ; Mon, 14 Sep 2026 10:26:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.140 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789381569; cv=none; b=Kruxnx+6Sd1mrTJ5t/mgFrEwykWrYHKMLGZIRbqcfwRcLSXwsZygaL6JlNQHqPUjtbEm5NQyTOl1EKlkMknugOc61yNOXTrWWXelMTIxSegDjo9LFH59ErrPbiepCwGbkckTUi4RklgIB0Hcm7TPBOpVtsLoN3+LljNBFEAeDPc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789381569; c=relaxed/simple; bh=DV6Zn0e+VrP+2e9y4U3t9IosQ8IG0O1VTEXmpzxD000=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GvtokOZHCUa4kBCSTmE8xyZZhffH2eE/R/K8SqCWLDvMsvbzxY+pCBvykcscrTSoxuXJM5lL2qFcTrZNt140kO0dfe8gXG6M9UIeENvQhDXIxm9kGkgYERk9YlGmQw5pmDXVPuLfVwtIdsmAIRE3sq7A9WBn1JXJ7fzoW8J/lak= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com; spf=pass smtp.mailfrom=fairphone.com; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b=JB9FODKf; arc=none smtp.client-ip=74.125.228.140 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fairphone.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b="JB9FODKf" Received: by mail-ej2-f12.google.com with SMTP id a640c23a62f3a-c254fa663c1so240136666b.0 for ; Mon, 14 Sep 2026 03:26:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1789381565; x=1789986365; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=oPiwZgYTFcdYlBr5Z9nYswZmRS1da/d4K4QKgW9TWRE=; b=JB9FODKfcl+9uBSpeyjK8C3ZFZ5qiJay9/1QY8DUqHm/8riaaZll3I2BS6FrNfhlby EUUbxBebQWhhz0q+xPMmuPzNoDOn8yWQWiagRiUwntFF6kok0iwRiChhCLYw3sxl3Qx4 95n1l89EzkE+9jv2ZNBS8nVc+uwULZEw5DL2iPbMZ1ENg0cjN1IRnowFXp08YRHfjzjR OZcue1dsWgz7qW1+JJv4d8RV8270P8pKCnzseRdGofxhne33S+HbJo7GDYvuZes5Xn+8 c/duplU+n4dvZlrE9FqDhgz3cwEeU8P8RQ8SzqlLeLMkheQQ1ocmlKQHrh49zOmkanvn 9YWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789381565; x=1789986365; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=oPiwZgYTFcdYlBr5Z9nYswZmRS1da/d4K4QKgW9TWRE=; b=SNcxBZDkOlPSUfZGBDYg8nZRM872Q8CfxJ33TsJuCcOR9XyGovfs2VI3TWrC6QjMR1 XdjtVSBH6f95Qc8aQM3lSgMyJ+fv90fhoCJgDazkg0KDEog5FxaeablMdzAHAt453Ffi olz45PrMlN65Fudbpp69hh9oyC+HT1PzlQ8xNyD2j3I3SfASqyviXE2LOZ2XowiO9UsR zd19wVdI7HcCspwfB6TEJYprh+TcfEf2w/2t0558kCcR0ve6q5tPGV4orY1kHCoEq9s5 VH3MUNXCha3zC1hZ1r53K+dLWKtmZro3Emi4XqziOMlTjL6xK3KCzUrNM3hKJpyPVov4 syTg== X-Forwarded-Encrypted: i=1; AKwUvByazAmBXhiYBcZIOe/h/YB4Aj467CJpLnZgqpmhU+Dg+tU1yHn7kYWo6toMDFtLk45UBIMY6h3S1jC7wsk=@vger.kernel.org X-Gm-Message-State: AFuF++mJi+Pjjbf+kYwbQSFcS7SS0TY+BqSQxr/zr5oZ8kZoe6NV0aNP R0kctOnTlfsrCUb4DxKQjpB5VvwNaW0hPFRcYksmcWQ2zz4lyRo1XVf9EvHZeg6QxR4= X-Gm-Gg: AYBFou2F7OfKXb+I9ijmJZiGApubQAxhLFn2OjMb0QelX+zw9tnTGYGz2g3bqBPCQcW XyBmjIvW4gkDQW2VoAo5Bx6I4zqstyl/pLnERAqvZtIIr5PeI5nOdLiHq49wNx1jXWenMVyziZJ 9TQBkHEnZdfboved+X7kjuOm9iJMS4jtR5NbhFmFznjCKBrPYAkEs85gTcptUmIIFlC2WGcPShL wMVEySUhL8USWuHeHMNGCFCmOVnuLmxizQbqU77niApfV85orBCs7AABWmq1TrsvoM68xtcjcH/ AiCntnSiJw8X1dXFDL8BLNr1TIgUQdVtS7iKLQR8aCBmapHSAKnESBWOHtxmr+uecPHv4L5Cf1Y I3IdWPAEnCXNz/l5iVjKLZ0y+pZ05IWjRFWlXhMykhrJX7v5mNw9QbCipCGEq6eNccZfSgYu01z RrNGySZrzO3D5Z9cYCzrIi/bU3XVqCmwjsHFL3IqF92uDKMRtTSz1AlhsDZV57QREiwrEO8oTyi Q6mR/hxu/250hmlIL2H9qMXrY+EUt+ZL9OQaiRiAlkzCRBFXpGBq+FQoFzfW2Ew1sCN X-Received: by 2002:a17:907:a089:b0:c25:c7a9:7b8a with SMTP id a640c23a62f3a-c29b86b80b0mr186518066b.12.1789381559601; Mon, 14 Sep 2026 03:25:59 -0700 (PDT) Received: from [172.16.220.224] (144-178-202-138.static.ef-service.nl. [144.178.202.138]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c29660654f2sm399985666b.28.2026.09.14.03.25.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 03:25:59 -0700 (PDT) From: Griffin Kroah-Hartman Date: Mon, 14 Sep 2026 12:25:56 +0200 Subject: [PATCH v2 1/3] dt-bindings: media: i2c: dw9800: Redocument DW9800K Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-b4-dw9800k_cleanup-v2-1-6553273aaa33@fairphone.com> References: <20260914-b4-dw9800k_cleanup-v2-0-6553273aaa33@fairphone.com> In-Reply-To: <20260914-b4-dw9800k_cleanup-v2-0-6553273aaa33@fairphone.com> To: Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Andr=C3=A9_Apitzsch?= , Luca Weiss , Daniel Scally , Sakari Ailus , Bjorn Andersson , Konrad Dybcio Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Griffin Kroah-Hartman X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789381558; l=4483; i=griffin.kroah@fairphone.com; s=20250804; h=from:subject:message-id; bh=DV6Zn0e+VrP+2e9y4U3t9IosQ8IG0O1VTEXmpzxD000=; b=yh+rEjyA08btbufejXfbAwYT4R0mgYG3G5u/7zXWn2QCgxPTBGFYBcMS+MJQjCqE3lc7hZyUs GwM0RJF3zFUBlw+GnScf7au1um8uXHhoncbp0ucJVy0Uj728UDxi384 X-Developer-Key: i=griffin.kroah@fairphone.com; a=ed25519; pk=drSBvqKFiR+xucmLWONHSq/wGrW+YvcVtBXFYnYzn8U= The DW9800K's properties are too different to justify sharing the same bindings file as the dw9719, Create a separate bindings documentation for the Dongwoon Anatech DW9800K with it's updated properties. More specifically: The DW9800K did not share the SAC1 and SAC6 modes that the DW9719 used. The DW9800K does not actually have a register that matches the property description of vcm-prescale, instead the description of the clock-presc in the DW9768 is much more applicable to the functionality required according to the DW9800K datasheet. Signed-off-by: Griffin Kroah-Hartman --- .../bindings/media/i2c/dongwoon,dw9719.yaml | 1 - .../bindings/media/i2c/dongwoon,dw9800k.yaml | 91 ++++++++++++++++++= ++++ 2 files changed, 91 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9719.ya= ml b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9719.yaml index 8e8d62436e0d0c4f9af9e52262b23881abd37cec..38db0764c0f70ad49295dcddc18= 2b7e100a68b29 100644 --- a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9719.yaml +++ b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9719.yaml @@ -21,7 +21,6 @@ properties: - dongwoon,dw9718s - dongwoon,dw9719 - dongwoon,dw9761 - - dongwoon,dw9800k =20 reg: maxItems: 1 diff --git a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9800k.y= aml b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9800k.yaml new file mode 100644 index 0000000000000000000000000000000000000000..046c0a88bcefd403d9637dccf03= b516db880d22e --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9800k.yaml @@ -0,0 +1,91 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9800k.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Dongwoon Anatech DW9800K Bi-Direction Voice Coil Motor (Bi-VCM) Con= troller + +maintainers: + - Luca Weiss + - Griffin Kroah-Hartman + +description: + The Dongwoon DW9800K is a single 10-bit digital-to-analog converter with + +-130 mA output current sink capability, designed for linear control of + bi-directional voice coil motors (Bi-VCM) in camera lenses. This chip + provides a Smart Actuator Control (SAC) mode intended for minimizing + mechanical vibration. + +properties: + compatible: + enum: + - dongwoon,dw9800k + + reg: + maxItems: 1 + + vdd-supply: + description: VDD power supply, can range from 2.3V to 4.8V + + dongwoon,sac-mode: + description: > + Slew Rate Control mode to use: direct, LSC (Linear Slope Control) or + SAC2-SAC5 (Smart Actuator Control). + $ref: /schemas/types.yaml#/definitions/uint32 + enum: + - 0 # Direct mode + - 1 # LSC mode + - 2 # SAC2 mode (operation time# 0.48 x Tvib) + - 3 # SAC3 mode (operation time# 0.72 x Tvib) + - 4 # SAC4 mode (operation time# 1.20 x Tvib) + - 5 # SAC5 mode (operation time# 1.64 x Tvib) + default: 3 + + dongwoon,clock-presc: + description: + Indication of VCM internal clock dividing rate select, as one multip= le + factor to calculate VCM ring periodic time Tvib. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: + - 0 # Dividing Rate - 2 + - 1 # Dividing Rate - 1 + - 2 # Dividing Rate - 1/2 + - 3 # Dividing Rate - 1/4 + - 4 # Dividing Rate - 8 + - 5 # Dividing Rate - 4 + default: 1 + + dongwoon,timing-control: + description: + In LSC mode (252 + value * 4) * divider value in microseconds + In SAC mode (6.3 + value * 0.1) * divider value in milliseconds + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0x00 + maximum: 0x3f + default: 0x20 + +required: + - compatible + - reg + - vdd-supply + +additionalProperties: false + +examples: + - | + i2c { + #address-cells =3D <1>; + #size-cells =3D <0>; + + actuator@c { + compatible =3D "dongwoon,dw9800k"; + reg =3D <0x0c>; + + vdd-supply =3D <&pm8937_l17>; + + dongwoon,sac-mode =3D <4>; + dongwoon,clock-presc =3D <0>; + dongwoon,timing-control =3D <16>; + }; + }; --=20 2.43.0 From nobody Fri Sep 25 10:05:41 2026 Received: from mail-ej2-f12.google.com (mail-ej2-f12.google.com [74.125.228.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 EA21A435531 for ; Mon, 14 Sep 2026 10:26:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.140 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789381570; cv=none; b=SBq5CkjbM8iDEve94sAW9Vr/O5zPctMmBfYmGX8VavTr5Xq9XXUlW/PjvwpVuvsCVFVwkaXX28NGfUVXbIf50RBnBEKkg/g6WQKmuFfdhLjX2jwNRNc5PlfH72AweOGNykJFbXYVjxf15vv4JTxmLYYGoiofhh9fAMNE3raTC5k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789381570; c=relaxed/simple; bh=tHP/A638kcr0qMuRXBNOkz9WE+3vDtkM24myYSHP7dw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=U6MJ6xI2KTSh5f2VFwCJPt3u9PJ0fIirWCddQb5ffXqvj+LlONMg8EFrm8uvsIZGbG0wpLTRDRsMdDe2Fo4X17O6kEyGe6F6VDIgSyfARv2FSWyfoDX6aFgA241ZcPE7SeLDbzEicp1/anb0wz/H4VwSAMHd/GfnqnBjdIKc36A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com; spf=pass smtp.mailfrom=fairphone.com; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b=X+4MD8Oz; arc=none smtp.client-ip=74.125.228.140 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fairphone.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b="X+4MD8Oz" Received: by mail-ej2-f12.google.com with SMTP id a640c23a62f3a-c254f9c60d5so118052866b.1 for ; Mon, 14 Sep 2026 03:26:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1789381566; x=1789986366; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=t5OoYDDuzC9zsWMD0q4qHxVpHU53i7SekDMuUVkLvTo=; b=X+4MD8Oz1hWWKY1Z/8LdXmCXXYthyWLv9Oc6uTMKa+rT4ykEpmXmHeLkdcGmezXoyv pLENUIzcdYyOg4pHi3cQf2iXZKoaJJ9B+NzKSmCTsyK6ApJ0coRPYQBYtQ4/23aVZoVb bIuPQPBGAzQuQao6YZ7rp713LDWPjZnwbfF/CqYLbwy4rdTroZFgd7dk/nqbpxD6a/OC yEioPubnqxplmy3adamToFPf35GoOKEYe8FsGJfKNfeG237RKRFyRP1ODb2s4GK6fz2n hJedrxBshao4m1Qg7OuHF+XsPMhHMIJ+5V6rs4UukEg1Go8s5qypjdmOvxKRSS9JYNJF KfEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789381566; x=1789986366; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=t5OoYDDuzC9zsWMD0q4qHxVpHU53i7SekDMuUVkLvTo=; b=G/UtapH49JEvtYK5MmfLF9LC+6uaJ1BpJ3+XMyrMl4D04A+CVtm/hAMAsqroclOaly rdKtUEUeW2akoigs50b+z3UPRuxPA7uXuEUWS5aM07EsJQggxOur6ubmm05bRa88RH5i FD8ZFhMwGAuhTUvowc+Cliw59pvv3j8XdZgqTqGT/a/vrF2ysPprCaKTM7NsuJ6TkRLI 3+p2HZ2mHk9CDARa1JnVTQZgfNkKCcj4Ka0SlZAn4KDkWd/QFGNDSQpUXvPk7TXMiBZd UQfcLuAqkAI2bmQzJ1F8pvw7K9bgkQRH+23ZFEGf79acYkIq7xkhqCC59CcZMx/itAF1 bc2Q== X-Forwarded-Encrypted: i=1; AKwUvByIqHcksA3ffFF0lujtVpXqVYY1U+Zf11gaH3mg9OhkvSp4SSoOlmP4IM9Dx/TTCrl8Sh1ddA1QZS0aO4o=@vger.kernel.org X-Gm-Message-State: AFuF++lgVtVMqT+45KhW9xB00umjn1ZjKVlWRpVhlewV+5V0KBLfoOal r3frsDSGUnOWJ5455IjYBfzO67f9EHGslJzBVBE2pOlruoru/jkbGrnJ+mlVCI5j0DE= X-Gm-Gg: AYBFou3jhaHVQ0Om/bIspCguRc3e66katPqjK9QBsvuiV/WWqodTRpFmMUpeLYGni6j k51rSY3rqyDm4yWO0EyY+tHQuJlVsPFNlzdQ7XIeV9s3Xb2DtPnBRc3F3nLadIfliMUICe6OPLA BRhCQXe59oXMnEu2dwNey6f4vyWutZ4S/PMV2QxyHkr5GaiBcoXjD/mJ8z7Y0rQGQ5JSuD44PBa V/GgMZm5OXRB8pL9rH0wDLiEb9D1svkyZLPIq7V33V55PcwKehPE6LNLmGS5H3iAKs5hElj6JuN QK4W8MiMkezIdyzEcqph2cI90045PcrVw6GTlNbCZdevGWQ+Djh41TrwiQeP619JZZ5UL6r9bd9 uLBP7b7ah0BquZ4xWl+notyAZ39+d/HRSxaZLZFXpYeIQVE0T2YW527XVP8H5NyRO/pnp0/d2q3 tx4TWRH1clALwohWnzFiE2HW4k4d7M+EtQHOmEH2Qd8z1w7ju0nPSnQUntqsP57Ri/yhhwPL3N2 BlaDdve1axlfxIClyk6ahIPIWhwxau0inuxLtiAIc7rgBCZ7HskYL8n7w== X-Received: by 2002:a17:907:1c1b:b0:c25:f7db:4beb with SMTP id a640c23a62f3a-c29b93bcef0mr129068066b.17.1789381566136; Mon, 14 Sep 2026 03:26:06 -0700 (PDT) Received: from [172.16.220.224] (144-178-202-138.static.ef-service.nl. [144.178.202.138]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c29660654f2sm399985666b.28.2026.09.14.03.26.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 03:26:05 -0700 (PDT) From: Griffin Kroah-Hartman Date: Mon, 14 Sep 2026 12:25:57 +0200 Subject: [PATCH v2 2/3] media: i2c: dw9719: Update DW9800K driver Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-b4-dw9800k_cleanup-v2-2-6553273aaa33@fairphone.com> References: <20260914-b4-dw9800k_cleanup-v2-0-6553273aaa33@fairphone.com> In-Reply-To: <20260914-b4-dw9800k_cleanup-v2-0-6553273aaa33@fairphone.com> To: Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Andr=C3=A9_Apitzsch?= , Luca Weiss , Daniel Scally , Sakari Ailus , Bjorn Andersson , Konrad Dybcio Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Griffin Kroah-Hartman X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789381558; l=4038; i=griffin.kroah@fairphone.com; s=20250804; h=from:subject:message-id; bh=tHP/A638kcr0qMuRXBNOkz9WE+3vDtkM24myYSHP7dw=; b=WZUHOUhlfSI4AgKuppoIbkRz1hQA4J8k2c3Y83Jm+ifrITZmA9sKerqvPJT+Fl0/Sow2Tx3v/ 0BLbezmEcWHCdhvicFbMXFBOgqURoQSYewVmQKc2Rz1ADFqQcnYyTDn X-Developer-Key: i=griffin.kroah@fairphone.com; a=ed25519; pk=drSBvqKFiR+xucmLWONHSq/wGrW+YvcVtBXFYnYzn8U= The previous DW9800K driver code was created without access to a datasheet for the part, now that we have one we can clean up some misunderstandings and add some features for further expandability. Signed-off-by: Griffin Kroah-Hartman --- drivers/media/i2c/dw9719.c | 71 ++++++++++++++++++++++++++++++++++++++++--= ---- 1 file changed, 62 insertions(+), 9 deletions(-) diff --git a/drivers/media/i2c/dw9719.c b/drivers/media/i2c/dw9719.c index 3b7ba88fd67c044ef9005a0aac6a5d26ab939a90..982be59b9ee17a12e8c25ab790c= cb8351454c91c 100644 --- a/drivers/media/i2c/dw9719.c +++ b/drivers/media/i2c/dw9719.c @@ -68,9 +68,18 @@ #define DW9761_VCM_PRELOAD CCI_REG8(8) #define DW9761_DEFAULT_VCM_PRELOAD 0x73 =20 -#define DW9800K_DEFAULT_SAC 1 +#define DW9800K_ID 0xEB +#define DW9800K_DEFAULT_SAC 3 #define DW9800K_MODE_SAC_SHIFT 6 -#define DW9800K_DEFAULT_VCM_FREQ 0x10 + +#define DW9800K_RESONANCE CCI_REG8(7) + +#define DW9800K_DEFAULT_DIV 0x01 +#define DW9800K_DIV_SHIFT 6 +#define DW9800K_DIV_LOW_SHIFT 2 + +#define DW9800K_DEFAULT_SACT 0x20 + =20 #define to_dw9719_device(x) container_of(x, struct dw9719_device, sd) =20 @@ -90,6 +99,8 @@ struct dw9719_device { u32 mode_low_bits; u32 sac_mode; u32 vcm_freq; + u32 div; + u32 sac_time; =20 struct dw9719_v4l2_ctrls { struct v4l2_ctrl_handler handler; @@ -140,10 +151,6 @@ static int dw9719_power_up(struct dw9719_device *dw971= 9, bool detect) dw9719->sac_mode =3D DW9718S_DEFAULT_SAC; dw9719->vcm_freq =3D DW9718S_DEFAULT_VCM_FREQ; goto props; - case DW9800K: - dw9719->sac_mode =3D DW9800K_DEFAULT_SAC; - dw9719->vcm_freq =3D DW9800K_DEFAULT_VCM_FREQ; - goto props; default: break; } @@ -165,6 +172,12 @@ static int dw9719_power_up(struct dw9719_device *dw971= 9, bool detect) dw9719->sac_mode =3D DW9761_DEFAULT_SAC; dw9719->vcm_freq =3D DW9761_DEFAULT_VCM_FREQ; break; + case DW9800K_ID: + dw9719->sac_mode =3D DW9800K_DEFAULT_SAC; + dw9719->vcm_freq =3D DW9719_DEFAULT_VCM_FREQ; + dw9719->div =3D DW9800K_DEFAULT_DIV; + dw9719->sac_time =3D DW9800K_DEFAULT_SACT; + break; default: dev_err(dw9719->dev, "Error unknown device id 0x%02llx\n", val); @@ -185,14 +198,54 @@ static int dw9719_power_up(struct dw9719_device *dw97= 19, bool detect) /* Optional indication of VCM prescale */ device_property_read_u32(dw9719->dev, "dongwoon,vcm-prescale", &dw9719->vcm_freq); + + /* Optional indication of clock pre-scale select */ + device_property_read_u32(dw9719->dev, "dongwoon,clock-presc", + &dw9719->div); + + /* Optional indication of SAC timing */ + device_property_read_u32(dw9719->dev, "dongwoon,timing-control", + &dw9719->sac_time); } =20 switch (dw9719->model) { case DW9800K: - cci_write(dw9719->regmap, DW9719_CONTROL, DW9719_ENABLE_RINGING, &ret); + int ring, sac; + + /* + * Enable ringing for SAC3-SAC5 + * + * sac_mode reg Mode + * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D + * 0 0X Direct + * 1 1X LSC + * 2 00 SAC2 + * 3 01 SAC3 + * 4 10 SAC4 + * 5 11 SAC5 + */ + switch (dw9719->sac_mode) { + case 0: + ring =3D 0; + sac =3D 0; + break; + case 1: + ring =3D 0; + sac =3D 2; + break; + default: + ring =3D DW9719_ENABLE_RINGING; + sac =3D dw9719->sac_mode - 2; + break; + } + cci_write(dw9719->regmap, DW9719_CONTROL, ring, &ret); + /* DIV is 3 bits split over the bottom bit in reg 6 and the top 2 bits i= n reg 7 */ cci_write(dw9719->regmap, DW9719_MODE, - dw9719->sac_mode << DW9800K_MODE_SAC_SHIFT, &ret); - cci_write(dw9719->regmap, DW9719_VCM_FREQ, dw9719->vcm_freq, &ret); + (sac << DW9800K_MODE_SAC_SHIFT) | + (dw9719->div >> DW9800K_DIV_LOW_SHIFT), &ret); + cci_write(dw9719->regmap, DW9800K_RESONANCE, + (dw9719->div << DW9800K_DIV_SHIFT) | + dw9719->sac_time, &ret); break; case DW9718S: /* Datasheet says [OCP/UVLO] should be disabled below 2.5V */ --=20 2.43.0 From nobody Fri Sep 25 10:05:41 2026 Received: from mail-ed2-f12.google.com (mail-ed2-f12.google.com [74.125.228.76]) (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 9BE89433BAC for ; Mon, 14 Sep 2026 10:26:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.76 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789381570; cv=none; b=e3N/gBAEr9AYr71PSVQw2x1F13d4ZQKY06W1KJTBh1X1casQ8xgok8pfHknHI2IwTOAyNkXTup8X2oKSbe+SS5+TuUk5ureE+S1OpMLCIYihSz3ZlORRnvJfkUZ8vZkds35XTEfdHFvcZnNWV2GgFgSdKijqUQr8LyOabMTOFaA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789381570; c=relaxed/simple; bh=JTnC7evvvSVnCXtJTc4smePwvrp7zkcqWy6xw6xapD4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jwV1/V8gUsk+P9y6UEejrkZ71sp2PVAnOIUS9MMpFTKTfAJwiJ16Oe5oe2k1urr0c3zeYGzOORoLNA3hVYVw3uugd7MhTNPFqiVQyjdRRroK+LTmRXFdNN6W6mY5cLR7wCTZJ9pLtzAHExkIwmEJKhrH9Dr6HWOibSKKgiSh40Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com; spf=pass smtp.mailfrom=fairphone.com; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b=nwVcHXtZ; arc=none smtp.client-ip=74.125.228.76 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fairphone.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b="nwVcHXtZ" Received: by mail-ed2-f12.google.com with SMTP id 4fb4d7f45d1cf-6a9984f9adcso3678434a12.0 for ; Mon, 14 Sep 2026 03:26:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1789381567; x=1789986367; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=m/xjkeNfa3orUpMBTgLWbWZfnOZ+F/SCd2qFtqtxeTs=; b=nwVcHXtZxtDXe72sBxVwCcyzRywU2DyQ02ZKTKJBNK8e0Q3gIALRZc+DD+Gi7JhuHE U5zX1vTTiTwdEaCUPf0KKf3oiftrr8mqL//DZ0Bzu8E9Us46TcXbkxvWuJgRjxfh7hNL dB7H5cvtOPxE6QM4o+KCA+vxw5w/P5todRRLH1b7zQQr9JJSvJ3tI41Q0V8RMpKzG5w6 5+W8qXcew1XZq+0WhwhfUIwIN/7RHTSGstQTeuWFW/RUr8hMG7v7bApdBfQ3QmKPPLts aNG+7BltkEkkN9Pzmg1S/2NnT8IxWp3q03hg88rjcx+lL+2+DjrUoZmBTid54WTFkAA9 P4zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789381567; x=1789986367; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=m/xjkeNfa3orUpMBTgLWbWZfnOZ+F/SCd2qFtqtxeTs=; b=FGg6akJaxOZNwiWfQq/rEAS74QEh7TYD9b+Plv0qzf+51diZcj0MHmW77i7FVXbrC5 16sTyz38nkrA98GDnpT2mz65+vvy/vS88DDQxWi1udRe7GaxBNmWHDm55fc1g9MvBaDR cYOkgWSmWBO4AzJx50ZJJPTPvEUuzV8AyKL8mSpqtDoXW79y40dcgwUAO9B1WSxFJSoC 7TFffBTwi1Jq3QijxeaPzdnUQwgBJ0isIdsiDKozP7ADr+VeJ/lHeUfkYZtKNp4Bhof7 6S7stWDACNzf3xKquD85r/fq3Z3BnieSOgmQ7QsspYD44tRMYFKb+bIHlf0JR9ouFRfR l5zA== X-Forwarded-Encrypted: i=1; AKwUvBzyDRx68R7xyXE5fRLFx/a1DuoXEFdOTSuv9brNapOVtTB8Qrt4RMwxz9IE/+z8hAP9K9GL6ZAUrgM4ARk=@vger.kernel.org X-Gm-Message-State: AFuF++mpGCgzNJ0mnl6bM8/xDk76ISAdxlATa4ktGN3QtZ+gZz2CWWKd WkPYu6/GF2p3tdz1Dml02y05Z62I+98bbJlvCVOttpZOSu8kFid1hGwlS+5Eerxwxl0= X-Gm-Gg: AYBFou18AefeOU5geEXs4JxJSEPkIF+mKsY/3I/nBy1EedD83hxlR00wB/NzDLmYRNa iLQS1Kjo649R8o1HHDyVdWcFGNFvcbKuI29l00bZBrkIvr92ZWYoU5MvXZw1+xN0x2LH2PXFmDx nTdUbdvCgwp7sbZWdX+EIYddQgoiZzQ3mokPAfYNba3bCTspO+G6u3DgD4Q/7iF7PCM3k/VLaoF rch9aLqTIpcxDnP49q/oCV2bbfvMgBR/EaIP4Vdah1AS5vmRV2tVk1XAJIgO7MH5dGXVlNNiGUG Y8GMbSdwbn1koPUKceXARDLbddDu4+SufDqqCZlu/AEVRI+wuAmmxU1r60bOucoPkxU8RTLUQCg OH3PhLtMAuRNgDETv12p83mf3+Jw3PDe0tjqhYpAZVnILSuftmRGyMYN41oTfMdd6OPhbmByeUf hKrIGyMp5pkqU2qZADLF0h/CL37CItu3WYiIY6YXdzdi14l/hbDcW1KNdT/EhccsWDdhHJR2DGV tpvD1Xklf4GIGTb8+FQjJHQ+Ly8ELAVfHCCikKy4CMsO4i80o9SNaI9P0RexGU9HhNMEw== X-Received: by 2002:a17:907:9409:b0:c26:1648:a067 with SMTP id a640c23a62f3a-c29b874c69amr127928166b.34.1789381566684; Mon, 14 Sep 2026 03:26:06 -0700 (PDT) Received: from [172.16.220.224] (144-178-202-138.static.ef-service.nl. [144.178.202.138]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c29660654f2sm399985666b.28.2026.09.14.03.26.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 03:26:06 -0700 (PDT) From: Griffin Kroah-Hartman Date: Mon, 14 Sep 2026 12:25:58 +0200 Subject: [PATCH v2 3/3] arm64: dts: qcom: qcm6490-fairphone-fp5: Fix DW9800K support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-b4-dw9800k_cleanup-v2-3-6553273aaa33@fairphone.com> References: <20260914-b4-dw9800k_cleanup-v2-0-6553273aaa33@fairphone.com> In-Reply-To: <20260914-b4-dw9800k_cleanup-v2-0-6553273aaa33@fairphone.com> To: Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Andr=C3=A9_Apitzsch?= , Luca Weiss , Daniel Scally , Sakari Ailus , Bjorn Andersson , Konrad Dybcio Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Griffin Kroah-Hartman X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789381558; l=1259; i=griffin.kroah@fairphone.com; s=20250804; h=from:subject:message-id; bh=JTnC7evvvSVnCXtJTc4smePwvrp7zkcqWy6xw6xapD4=; b=UixvnkrGXEGNRyEsuLdRQS6wYyb87osS85TdzSWmu33H/b68rRJUlvsvPGSO1HZz69yXJVTS7 e+qKPeMpv1EAVkjnn2ilPzp7CTjdrwic7uMxC3wLjPSWlV20kFyB3MA X-Developer-Key: i=griffin.kroah@fairphone.com; a=ed25519; pk=drSBvqKFiR+xucmLWONHSq/wGrW+YvcVtBXFYnYzn8U= Update the node for the DW9800K for correctness. Now we correctly select SAC3 mode and enable timing-control with the newly updated device tree bindings. This is a breaking change for a part that was previously functioning, but only due to manual register writes in the driver. Now that we have the correct documentation we are able to update everything to ensure functionality with other devices using this part. Signed-off-by: Griffin Kroah-Hartman --- arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts b/arch/arm6= 4/boot/dts/qcom/qcm6490-fairphone-fp5.dts index fa4566df0a711fa0a08cc71fef3b7a4e1a0d2a4b..cc99590afe3a62a2aee3410844c= a0815c8f43558 100644 --- a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts +++ b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts @@ -744,8 +744,9 @@ camera_imx858_dw9800k: actuator@e { reg =3D <0x0e>; vdd-supply =3D <&vreg_afvdd_2p8>; =20 - dongwoon,sac-mode =3D <1>; - dongwoon,vcm-prescale =3D <16>; + dongwoon,sac-mode =3D <3>; + dongwoon,clock-presc =3D <0>; + dongwoon,timing-control =3D <16>; }; =20 camera@29 { --=20 2.43.0