All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Mehdi Djait <mehdi.djait@linux.intel.com>
Cc: sakari.ailus@linux.intel.com, stanislaw.gruszka@linux.intel.com,
	hdegoede@redhat.com, arnd@arndb.de, alain.volmat@foss.st.com,
	andrzej.hajda@intel.com, benjamin.mugnier@foss.st.com,
	dave.stevenson@raspberrypi.com, hansg@kernel.org,
	hverkuil@xs4all.nl, jacopo.mondi@ideasonboard.com,
	kieran.bingham@ideasonboard.com, khalasa@piap.pl,
	mani@kernel.org, m.felsch@pengutronix.de,
	matthias.fend@emfend.at, mchehab@kernel.org,
	michael.riesch@collabora.com, naush@raspberrypi.com,
	nicholas@rothemail.net, nicolas.dufresne@collabora.com,
	paul.elder@ideasonboard.com, dan.scally@ideasonboard.com,
	pavel@kernel.org, rashanmu@gmail.com, ribalda@chromium.org,
	slongerbeam@gmail.com, tomi.valkeinen@ideasonboard.com,
	umang.jain@ideasonboard.com, linux-media@vger.kernel.org,
	Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Subject: Re: [PATCH v2 02/48] Documentation: media: camera-sensor: Mention v4l2_devm_sensor_clk_get() for obtaining the clock
Date: Tue, 1 Jul 2025 14:03:35 +0300	[thread overview]
Message-ID: <20250701110335.GA28643@pendragon.ideasonboard.com> (raw)
In-Reply-To: <095af35c322e523aba8ea8f70157077f4196feb5.1750942967.git.mehdi.djait@linux.intel.com>

On Thu, Jun 26, 2025 at 03:33:53PM +0200, Mehdi Djait wrote:
> Add the new v4l2 helper devm_v4l2_sensor_clk_get() to Documentation. the
> helper works on both DT- and ACPI-based platforms to retrieve a
> reference to the clock producer from firmware.
> 
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Co-developed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Mehdi Djait <mehdi.djait@linux.intel.com>
> ---
>  .../driver-api/media/camera-sensor.rst        | 24 +++++++++++++------
>  1 file changed, 17 insertions(+), 7 deletions(-)
> 
> diff --git a/Documentation/driver-api/media/camera-sensor.rst b/Documentation/driver-api/media/camera-sensor.rst
> index c290833165e6..94bd1dae82d5 100644
> --- a/Documentation/driver-api/media/camera-sensor.rst
> +++ b/Documentation/driver-api/media/camera-sensor.rst
> @@ -29,21 +29,31 @@ used in the system. Using another frequency may cause harmful effects
>  elsewhere. Therefore only the pre-determined frequencies are configurable by the
>  user.
>  
> +The external clock frequency shall be retrieved by obtaining the external clock
> +using the ``devm_v4l2_sensor_clk_get()`` helper function, and then getting its
> +frequency with ``clk_get_rate()``. Usage of the helper function guarantees
> +correct behaviour regardless of whether the sensor is integrated in a DT-based
> +or ACPI-based system.
> +
>  ACPI
>  ~~~~
>  
> -Read the ``clock-frequency`` _DSD property to denote the frequency. The driver
> -can rely on this frequency being used.
> +ACPI-based systems typically don't register the sensor external clock with the
> +kernel, but specify the external clock frequency in the ``clock-frequency``
> +_DSD property. The ``devm_v4l2_sensor_clk_get()`` helper creates and returns a
> +fixed clock set at that rate.
>  
>  Devicetree
>  ~~~~~~~~~~
>  
> -The preferred way to achieve this is using ``assigned-clocks``,
> -``assigned-clock-parents`` and ``assigned-clock-rates`` properties. See the
> -`clock device tree bindings
> +Devicetree-based systems declare the sensor external clock in the device tree
> +and reference it from the sensor node. The preferred way to select the external
> +clock frequency is to use the ``assigned-clocks``, ``assigned-clock-parents``
> +and ``assigned-clock-rates`` properties in the sensor node to set the clock
> +rate. See the `clock device tree bindings
>  <https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/clock/clock.yaml>`_
> -for more information. The driver then gets the frequency using
> -``clk_get_rate()``.
> +for more information. The ``devm_v4l2_sensor_clk_get()`` helper retrieves and
> +returns that clock.
>  
>  This approach has the drawback that there's no guarantee that the frequency
>  hasn't been modified directly or indirectly by another driver, or supported by

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2025-07-01 11:04 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-26 13:33 [PATCH v2 00/48] media: Add a helper for obtaining the clock producer Mehdi Djait
2025-06-26 13:33 ` [PATCH v2 01/48] media: v4l2-common: " Mehdi Djait
2025-06-27  7:12   ` Sakari Ailus
2025-07-01  9:51     ` Mehdi Djait
2025-07-01 10:03       ` Sakari Ailus
2025-07-01 10:47         ` Jacopo Mondi
2025-07-01 11:17           ` Laurent Pinchart
2025-07-01 11:46             ` Mehdi Djait
2025-07-06  0:30   ` Laurent Pinchart
2025-07-07 14:30     ` Mehdi Djait
2025-07-07 14:32       ` [PATCH v3] " Mehdi Djait
2025-07-07 21:55         ` Sakari Ailus
2025-08-13 10:15   ` [PATCH v2 01/48] " Hans Verkuil
2025-08-13 12:59     ` Sakari Ailus
2025-08-13 13:08       ` Laurent Pinchart
2025-08-13 13:22         ` Sakari Ailus
2025-08-13 13:23         ` Hans Verkuil
2025-08-13 14:49           ` Sakari Ailus
2025-08-13 15:14             ` Hans Verkuil
2025-08-13 19:45               ` Sakari Ailus
2025-08-14 13:50               ` [PATCH 1/1] media: v4l2-common: Improve devm_v4l2_sensor_clk_get() documentation Sakari Ailus
2025-08-15  6:00                 ` Mehdi Djait
2025-08-15  8:53                   ` Sakari Ailus
2025-06-26 13:33 ` [PATCH v2 02/48] Documentation: media: camera-sensor: Mention v4l2_devm_sensor_clk_get() for obtaining the clock Mehdi Djait
2025-07-01 11:03   ` Laurent Pinchart [this message]
2025-06-26 13:33 ` [PATCH v2 03/48] media: i2c: ar0521: Use the v4l2 helper " Mehdi Djait
2025-06-26 13:33 ` [PATCH v2 04/48] media: i2c: et8ek8: " Mehdi Djait
2025-06-26 13:33 ` [PATCH v2 05/48] media: i2c: gc05a2: " Mehdi Djait
2025-06-26 13:33 ` [PATCH v2 06/48] media: i2c: gc08a3: " Mehdi Djait
2025-06-26 13:33 ` [PATCH v2 07/48] media: i2c: gc2145: " Mehdi Djait
2025-06-26 13:33 ` [PATCH v2 08/48] media: i2c: hi846: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 09/48] media: i2c: imx214: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 10/48] media: i2c: imx219: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 11/48] media: i2c: imx283: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 12/48] media: i2c: imx290: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 13/48] media: i2c: imx296: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 14/48] media: i2c: imx334: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 15/48] media: i2c: imx335: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 16/48] media: i2c: imx412: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 17/48] media: i2c: imx415: " Mehdi Djait
2025-06-26 13:41   ` Michael Riesch
2025-06-26 13:34 ` [PATCH v2 18/48] media: i2c: mt9m001: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 19/48] media: i2c: mt9m111: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 20/48] media: i2c: mt9m114: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 21/48] media: i2c: mt9p031: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 22/48] media: i2c: mt9t112: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 23/48] media: i2c: mt9v032: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 24/48] media: i2c: mt9v111: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 25/48] media: i2c: ov02a10: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 26/48] media: i2c: ov2659: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 27/48] media: i2c: ov2685: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 28/48] media: i2c: ov5640: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 29/48] media: i2c: ov5645: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 30/48] media: i2c: ov5647: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 31/48] media: i2c: ov5648: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 32/48] media: i2c: ov5695: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 33/48] media: i2c: ov64a40: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 34/48] media: i2c: ov6650: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 35/48] media: i2c: ov7740: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 36/48] media: i2c: ov8856: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 37/48] media: i2c: ov8858: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 38/48] media: i2c: ov8865: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 39/48] media: i2c: ov9282: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 40/48] media: i2c: ov9640: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 41/48] media: i2c: ov9650: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 42/48] media: i2c: s5c73m3: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 43/48] media: i2c: s5k5baf: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 44/48] media: i2c: s5k6a3: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 45/48] media: i2c: vd55g1: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 46/48] media: i2c: vd56g3: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 47/48] media: i2c: vgxy61: " Mehdi Djait
2025-06-26 13:34 ` [PATCH v2 48/48] media: i2c: ov2680: " Mehdi Djait

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250701110335.GA28643@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=alain.volmat@foss.st.com \
    --cc=andrzej.hajda@intel.com \
    --cc=arnd@arndb.de \
    --cc=benjamin.mugnier@foss.st.com \
    --cc=dan.scally@ideasonboard.com \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=hansg@kernel.org \
    --cc=hdegoede@redhat.com \
    --cc=hverkuil@xs4all.nl \
    --cc=jacopo.mondi@ideasonboard.com \
    --cc=khalasa@piap.pl \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=m.felsch@pengutronix.de \
    --cc=mani@kernel.org \
    --cc=matthias.fend@emfend.at \
    --cc=mchehab@kernel.org \
    --cc=mehdi.djait@linux.intel.com \
    --cc=michael.riesch@collabora.com \
    --cc=naush@raspberrypi.com \
    --cc=nicholas@rothemail.net \
    --cc=nicolas.dufresne@collabora.com \
    --cc=paul.elder@ideasonboard.com \
    --cc=pavel@kernel.org \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=rashanmu@gmail.com \
    --cc=ribalda@chromium.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=slongerbeam@gmail.com \
    --cc=stanislaw.gruszka@linux.intel.com \
    --cc=tomi.valkeinen@ideasonboard.com \
    --cc=umang.jain@ideasonboard.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.