* [PATCH v3 0/2] Enable DW9714V camera focus coil on SHIFT 6MQ
@ 2026-08-03 9:50 David Heidelberg via B4 Relay
2026-08-03 9:50 ` [PATCH v3 1/2] dt-bindings: media: i2c: dongwoon,dw9714: Document DW9714A and V variant David Heidelberg via B4 Relay
2026-08-03 9:50 ` [PATCH v3 2/2] arm64: dts: qcom: sdm845-shift-axolotl: Add actuator for main rear camera David Heidelberg via B4 Relay
0 siblings, 2 replies; 5+ messages in thread
From: David Heidelberg via B4 Relay @ 2026-08-03 9:50 UTC (permalink / raw)
To: Alexander Martinz, Bjorn Andersson, Conor Dooley, Konrad Dybcio,
Krzysztof Kozlowski, Mauro Carvalho Chehab, Rob Herring,
Sakari Ailus
Cc: Krzysztof Kozlowski, devicetree, linux-arm-msm, linux-kernel,
linux-media, phone-devel, David Heidelberg, Krzysztof Kozlowski
Implements wiring for:
- SGM2036 linear regulator used to turn on the focus coil [1]
- Dongwoon 9714V focus coil used by IMX519 camera sensor [2]
[1] https://www.sg-micro.com/rect/assets/efa85993-263c-41aa-9274-b488f59f85d5/SGM2036.pdf
[2] https://datasheet4u.com/pdf/1247146/DW9714V.pdf
Open question for future work: modeling the I2C bus supply.
Like many similar chips, the DW9714 has a single VDD supply, but its I2C
lines go through a level shifter to a 1.8V rail, and there is currently no
place in DT to describe that rail so it gets enabled during I2C access to
the device. As a stopgap, this series models it as an always-on, see the
comment in the vreg_lvs1a_1p8 node).
Direction agreed with Rob Herring and Mark Brown on IRC:
- Modeling the level shifter itself is overkill as long as it is just a
supply; modeling the connector would come first if needed.
- Since each side of the shifter has its own supply, the proper solution
is a generic 'bus-supply' property valid in both the I2C controller and
device nodes.
- Defining it per-device-schema would ideally use an I2C equivalent of
spi-peripheral-props.yaml, which does not exist yet. The pragmatic
interim is to define bus-supply in i2c-controller.yaml for both places
and add 'bus-supply: true' to schemas that need it now (dw9714),
deferring the peripheral-props question until more shared device
properties accumulate.
Once bus-supply exists, the regulator-always-on workaround in this DTS can
be dropped.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
Changes in v3:
- Multiline compatible. (Konrad)
- Dropped output-low from avdd_cam pinctrl. (Konrad)
- Then dropped whole sleep pinctrl state, as it's same as default.
- Reworded the TODO. (Konrad)
- Dropped camss node. (claude)
- Moved before cdsp_pas (sort)
- Dropped unused regulator label.
- Switched the i2c bus shifter with the regulator VDD, as previously it
was incorrectly wired and keep always-on on the i2c bus shifter.
- Link to v2: https://patch.msgid.link/20260730-dw9714v-v2-0-d5da19e6c60b@ixit.cz
Changes in v2:
- Address Sashiko findings.
- Link to v1: https://patch.msgid.link/20260729-dw9714v-v1-0-3c479b3cf8c0@ixit.cz
---
David Heidelberg (2):
dt-bindings: media: i2c: dongwoon,dw9714: Document DW9714A and V variant
arm64: dts: qcom: sdm845-shift-axolotl: Add actuator for main rear camera
.../bindings/media/i2c/dongwoon,dw9714.yaml | 14 +++++--
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 48 ++++++++++++++++++++++
2 files changed, 59 insertions(+), 3 deletions(-)
---
base-commit: 95d6a9ccef99117115e41e9adb271243bd5e985b
change-id: 20260416-dw9714v-4566465ebe7d
Best regards,
--
David Heidelberg <david@ixit.cz>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 1/2] dt-bindings: media: i2c: dongwoon,dw9714: Document DW9714A and V variant
2026-08-03 9:50 [PATCH v3 0/2] Enable DW9714V camera focus coil on SHIFT 6MQ David Heidelberg via B4 Relay
@ 2026-08-03 9:50 ` David Heidelberg via B4 Relay
2026-08-10 9:38 ` Sakari Ailus
2026-08-03 9:50 ` [PATCH v3 2/2] arm64: dts: qcom: sdm845-shift-axolotl: Add actuator for main rear camera David Heidelberg via B4 Relay
1 sibling, 1 reply; 5+ messages in thread
From: David Heidelberg via B4 Relay @ 2026-08-03 9:50 UTC (permalink / raw)
To: Alexander Martinz, Bjorn Andersson, Conor Dooley, Konrad Dybcio,
Krzysztof Kozlowski, Mauro Carvalho Chehab, Rob Herring,
Sakari Ailus
Cc: Krzysztof Kozlowski, devicetree, linux-arm-msm, linux-kernel,
linux-media, phone-devel, David Heidelberg, Krzysztof Kozlowski
From: David Heidelberg <david@ixit.cz>
DW9714A is successor of DW9714 and DW9714V is successor of the DW9714A.
All actuators are backward compatible, but they do introduce new features,
such as Smart Actuator Control (SAC) mode which can minimize the
mechanical vibration and achieve very fast mechanical settling time.
Support for SAC can be implemented in the future.
Nit: fix typo in description by removing duplicate information.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
.../devicetree/bindings/media/i2c/dongwoon,dw9714.yaml | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
index 66229a3dc05d6..7c2769e6c4880 100644
--- a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
+++ b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
@@ -5,22 +5,30 @@ $id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9714.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dongwoon Anatech DW9714 camera voice coil lens driver
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description:
- DW9174 is a 10-bit DAC with current sink capability. It is intended for
- driving voice coil lenses in camera modules.
+ 10-bit DAC with current sink capability. It is intended for driving
+ voice coil lenses in camera modules.
properties:
compatible:
- const: dongwoon,dw9714
+ oneOf:
+ - items:
+ - const: dongwoon,dw9714v
+ - const: dongwoon,dw9714a
+ - const: dongwoon,dw9714
+ - items:
+ - const: dongwoon,dw9714a
+ - const: dongwoon,dw9714
+ - const: dongwoon,dw9714
reg:
maxItems: 1
powerdown-gpios:
description:
XSD pin for shutdown (active low)
--
2.55.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] arm64: dts: qcom: sdm845-shift-axolotl: Add actuator for main rear camera
2026-08-03 9:50 [PATCH v3 0/2] Enable DW9714V camera focus coil on SHIFT 6MQ David Heidelberg via B4 Relay
2026-08-03 9:50 ` [PATCH v3 1/2] dt-bindings: media: i2c: dongwoon,dw9714: Document DW9714A and V variant David Heidelberg via B4 Relay
@ 2026-08-03 9:50 ` David Heidelberg via B4 Relay
1 sibling, 0 replies; 5+ messages in thread
From: David Heidelberg via B4 Relay @ 2026-08-03 9:50 UTC (permalink / raw)
To: Alexander Martinz, Bjorn Andersson, Conor Dooley, Konrad Dybcio,
Krzysztof Kozlowski, Mauro Carvalho Chehab, Rob Herring,
Sakari Ailus
Cc: Krzysztof Kozlowski, devicetree, linux-arm-msm, linux-kernel,
linux-media, phone-devel, David Heidelberg
From: David Heidelberg <david@ixit.cz>
Main rear camera uses Dongwoon DW9714V actuator. Add regulator and
actuator node.
Since the actuator sits on the CCI I2C bus, whose 1.8V side is fed by
vreg_lvs1a_1p8 and there is no place to describe that, keep it always-on
for now, until bus-supply exists.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 48 +++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
index e31c784eff3de..358ce1930d4e1 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
@@ -81,16 +81,34 @@ ramoops: ramoops@b0000000 {
battery: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <3850000>;
voltage-min-design-microvolt = <3600000>;
voltage-max-design-microvolt = <4400000>;
};
+ /* SGM2036-2.8YUDH4G/TR */
+ cam_main_af_2p8: regulator-cam-main-af-2p8 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "cam_main_af_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-enable-ramp-delay = <100>;
+
+ gpio = <&tlmm 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&cam_main_af_default_state>;
+ pinctrl-names = "default";
+
+ vin-supply = <&vreg_bob>;
+ };
+
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
};
vreg_s4a_1p8: pm8998-smps4 {
@@ -403,16 +421,23 @@ vreg_l28a_3p0: ldo28 {
regulator-min-microvolt = <2856000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_lvs1a_1p8: lvs1 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+
+ /*
+ * Supplies the 1.8V side of the CCI I2C level
+ * shifter; keep enabled until a generic
+ * bus-supply property exists.
+ */
+ regulator-always-on;
};
vreg_lvs2a_1p8: lvs2 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};
@@ -441,16 +466,32 @@ regulators-2 {
vreg_s3c_0p6: smps3 {
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <600000>;
};
};
};
+&cci {
+ status = "okay";
+};
+
+&cci_i2c0 {
+ /* main camera actuator */
+ camera-lens@c {
+ compatible = "dongwoon,dw9714v",
+ "dongwoon,dw9714a",
+ "dongwoon,dw9714";
+ reg = <0x0c>;
+
+ vcc-supply = <&cam_main_af_2p8>;
+ };
+};
+
&cdsp_pas {
firmware-name = "qcom/sdm845/SHIFT/axolotl/cdsp.mbn";
status = "okay";
};
&gcc {
protected-clocks = <GCC_QSPI_CORE_CLK>,
@@ -699,16 +740,23 @@ &slpi_pas {
firmware-name = "qcom/sdm845/SHIFT/axolotl/slpi.mbn";
status = "okay";
};
&tlmm {
gpio-reserved-ranges = <0 4>, <81 4>;
+ cam_main_af_default_state: cam-main-af-default-state {
+ pins = "gpio8";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
sdc2_default_state: sdc2-default-state {
clk-pins {
pins = "sdc2_clk";
drive-strength = <16>;
bias-disable;
};
cmd-pins {
--
2.55.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] dt-bindings: media: i2c: dongwoon,dw9714: Document DW9714A and V variant
2026-08-03 9:50 ` [PATCH v3 1/2] dt-bindings: media: i2c: dongwoon,dw9714: Document DW9714A and V variant David Heidelberg via B4 Relay
@ 2026-08-10 9:38 ` Sakari Ailus
2026-08-10 10:24 ` David Heidelberg
0 siblings, 1 reply; 5+ messages in thread
From: Sakari Ailus @ 2026-08-10 9:38 UTC (permalink / raw)
To: david
Cc: Alexander Martinz, Bjorn Andersson, Conor Dooley, Konrad Dybcio,
Krzysztof Kozlowski, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, devicetree, linux-arm-msm, linux-kernel,
linux-media, phone-devel, Krzysztof Kozlowski
Hi David,
On Mon, Aug 03, 2026 at 11:50:25AM +0200, David Heidelberg via B4 Relay wrote:
> From: David Heidelberg <david@ixit.cz>
>
> DW9714A is successor of DW9714 and DW9714V is successor of the DW9714A.
>
> All actuators are backward compatible, but they do introduce new features,
> such as Smart Actuator Control (SAC) mode which can minimize the
> mechanical vibration and achieve very fast mechanical settling time.
> Support for SAC can be implemented in the future.
What kind of configuration does SAC require? Such things generally aren't
configured from the userspace, compare e.g. with the dw9719 bindings
discussion.
>
> Nit: fix typo in description by removing duplicate information.
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> .../devicetree/bindings/media/i2c/dongwoon,dw9714.yaml | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
> index 66229a3dc05d6..7c2769e6c4880 100644
> --- a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
> +++ b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
> @@ -5,22 +5,30 @@ $id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9714.yaml#
> $schema: http://devicetree.org/meta-schemas/core.yaml#
>
> title: Dongwoon Anatech DW9714 camera voice coil lens driver
>
> maintainers:
> - Krzysztof Kozlowski <krzk@kernel.org>
>
> description:
> - DW9174 is a 10-bit DAC with current sink capability. It is intended for
> - driving voice coil lenses in camera modules.
> + 10-bit DAC with current sink capability. It is intended for driving
> + voice coil lenses in camera modules.
>
> properties:
> compatible:
> - const: dongwoon,dw9714
> + oneOf:
> + - items:
> + - const: dongwoon,dw9714v
> + - const: dongwoon,dw9714a
> + - const: dongwoon,dw9714
> + - items:
> + - const: dongwoon,dw9714a
> + - const: dongwoon,dw9714
> + - const: dongwoon,dw9714
>
> reg:
> maxItems: 1
>
> powerdown-gpios:
> description:
> XSD pin for shutdown (active low)
>
>
--
Regards,
Sakari Ailus
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] dt-bindings: media: i2c: dongwoon,dw9714: Document DW9714A and V variant
2026-08-10 9:38 ` Sakari Ailus
@ 2026-08-10 10:24 ` David Heidelberg
0 siblings, 0 replies; 5+ messages in thread
From: David Heidelberg @ 2026-08-10 10:24 UTC (permalink / raw)
To: Sakari Ailus
Cc: Alexander Martinz, Bjorn Andersson, Conor Dooley, Konrad Dybcio,
Krzysztof Kozlowski, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, devicetree, linux-arm-msm, linux-kernel,
linux-media, phone-devel, Krzysztof Kozlowski
On 10/08/2026 11:38, Sakari Ailus wrote:
> Hi David,
>
> On Mon, Aug 03, 2026 at 11:50:25AM +0200, David Heidelberg via B4 Relay wrote:
>> From: David Heidelberg <david@ixit.cz>
>>
>> DW9714A is successor of DW9714 and DW9714V is successor of the DW9714A.
>>
>> All actuators are backward compatible, but they do introduce new features,
>> such as Smart Actuator Control (SAC) mode which can minimize the
>> mechanical vibration and achieve very fast mechanical settling time.
>> Support for SAC can be implemented in the future.
>
> What kind of configuration does SAC require? Such things generally aren't
> configured from the userspace, compare e.g. with the dw9719 bindings
> discussion.
I don't have extra deep insight (except basic how the sensor works).
By default all dw9714* sensors starts in the default "legacy" mode.
The clanker after looking at datasheets and kernel struct produced, if it make
sense:
the mode and the vibration period (SAC_CFG/PRESC/SACT) have to match
the mechanical tVIB of the actuator and lens assembly of the given camera
module, the same way dongwoon,aac-mode/aac-timing/clock-presc do for
dongwoon,dw9768 and dongwoon,sac-mode/vcm-prescale for dongwoon,dw9719.
Those properties are left out until there is driver support and measured
values; note the DW9714V mode set differs from DW9719's, so its enum cannot
be reused as is.
David
>
>>
>> Nit: fix typo in description by removing duplicate information.
>>
>> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
>> ---
>> .../devicetree/bindings/media/i2c/dongwoon,dw9714.yaml | 14 +++++++++++---
>> 1 file changed, 11 insertions(+), 3 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
>> index 66229a3dc05d6..7c2769e6c4880 100644
>> --- a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
>> +++ b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
>> @@ -5,22 +5,30 @@ $id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9714.yaml#
>> $schema: http://devicetree.org/meta-schemas/core.yaml#
>>
>> title: Dongwoon Anatech DW9714 camera voice coil lens driver
>>
>> maintainers:
>> - Krzysztof Kozlowski <krzk@kernel.org>
>>
>> description:
>> - DW9174 is a 10-bit DAC with current sink capability. It is intended for
>> - driving voice coil lenses in camera modules.
>> + 10-bit DAC with current sink capability. It is intended for driving
>> + voice coil lenses in camera modules.
>>
>> properties:
>> compatible:
>> - const: dongwoon,dw9714
>> + oneOf:
>> + - items:
>> + - const: dongwoon,dw9714v
>> + - const: dongwoon,dw9714a
>> + - const: dongwoon,dw9714
>> + - items:
>> + - const: dongwoon,dw9714a
>> + - const: dongwoon,dw9714
>> + - const: dongwoon,dw9714
>>
>> reg:
>> maxItems: 1
>>
>> powerdown-gpios:
>> description:
>> XSD pin for shutdown (active low)
>>
>>
>
--
David Heidelberg
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-08-10 10:25 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-03 9:50 [PATCH v3 0/2] Enable DW9714V camera focus coil on SHIFT 6MQ David Heidelberg via B4 Relay
2026-08-03 9:50 ` [PATCH v3 1/2] dt-bindings: media: i2c: dongwoon,dw9714: Document DW9714A and V variant David Heidelberg via B4 Relay
2026-08-10 9:38 ` Sakari Ailus
2026-08-10 10:24 ` David Heidelberg
2026-08-03 9:50 ` [PATCH v3 2/2] arm64: dts: qcom: sdm845-shift-axolotl: Add actuator for main rear camera David Heidelberg via B4 Relay
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox