Message ID | 1394555670-14155-1-git-send-email-s.nawrocki@samsung.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from <linux-media-owner@vger.kernel.org>) id 1WNPe5-0006p8-23; Tue, 11 Mar 2014 17:35:13 +0100 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.72/mailfrontend-5) with esmtp id 1WNPe2-0006NE-8j; Tue, 11 Mar 2014 17:35:12 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752866AbaCKQfI (ORCPT <rfc822;mkrufky@linuxtv.org> + 1 other); Tue, 11 Mar 2014 12:35:08 -0400 Received: from mailout1.samsung.com ([203.254.224.24]:57284 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752346AbaCKQfH (ORCPT <rfc822;linux-media@vger.kernel.org>); Tue, 11 Mar 2014 12:35:07 -0400 Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N2A00J9F62F9H90@mailout1.samsung.com>; Wed, 12 Mar 2014 01:35:03 +0900 (KST) X-AuditID: cbfee61a-b7fb26d00000724f-54-531f3b375952 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id AD.E1.29263.73B3F135; Wed, 12 Mar 2014 01:35:03 +0900 (KST) Received: from amdc1344.digital.local ([106.116.147.32]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N2A0064H61RSF80@mmp1.samsung.com>; Wed, 12 Mar 2014 01:35:03 +0900 (KST) From: Sylwester Nawrocki <s.nawrocki@samsung.com> To: linux-media@vger.kernel.org, devicetree@vger.kernel.org Cc: laurent.pinchart@ideasonboard.com, robh+dt@kernel.org, mark.rutland@arm.com, galak@codeaurora.org, kyungmin.park@samsung.com, Sylwester Nawrocki <s.nawrocki@samsung.com> Subject: [PATCH v8 3/10] Documentation: devicetree: Update Samsung FIMC DT binding Date: Tue, 11 Mar 2014 17:34:30 +0100 Message-id: <1394555670-14155-1-git-send-email-s.nawrocki@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1823087.0J3KNi6X3C@avalon> References: <1823087.0J3KNi6X3C@avalon> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprHLMWRmVeSWpSXmKPExsVy+t9jAV1za/lgg+UfxC3mHznHatH/ZiGr xdmmN+wWnROXsFv0bNjKarH0+kUmi9a9R9gtDr9pZ3Xg8Fgzbw2jx+W+XiaP2R0zWT02repk 8+jbsorR4/MmuQC2KC6blNSczLLUIn27BK6Mj7c2sRQsVq9YtfYvawPjLfkuRk4OCQETie+P 9rBD2GISF+6tZ+ti5OIQEljEKPF480Eop4NJ4mPrLGaQKjYBQ4neo32MILaIgLXE8Q/H2EGK mAU2Mkpc6znIBJIQFgiRmHJ7KSuIzSKgKrFlyWuwZl4BN4mFn04C2RxA6xQk5kyyAQlzCmhI bLy8kgXEFhJQl1j/6TfLBEbeBYwMqxhFUwuSC4qT0nMN9YoTc4tL89L1kvNzNzGCQ+2Z1A7G lQ0WhxgFOBiVeHgXaMoHC7EmlhVX5h5ilOBgVhLh/QgS4k1JrKxKLcqPLyrNSS0+xCjNwaIk znug1TpQSCA9sSQ1OzW1ILUIJsvEwSnVwBidL3/J49bye0rl+h4FZnvPCPUo7D+/vDVk8VEW Pf50EWcHeaXCAMV8SUY3l5f/rpjHn8oqXie8iEf9yP7bHU5aJx/xtcZuWrkhO+rcZ0azVKlN k0/MeMl4eerHje8us4Qu29fy/2eug4/HharORZufS/5gvTmP+cRiLsOem7L3WkIqNy17uEyJ pTgj0VCLuag4EQC1c0rKMQIAAA== Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2014.3.11.162415 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODY_SIZE_5000_5999 0, BODY_SIZE_7000_LESS 0, CHILD_EX_X3 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_MEDIA_BODY 0, __CP_NAME_BODY 0, __CP_URI_IN_BODY 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __IN_REP_TO 0, __LINES_OF_YELLING 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' |
Commit Message
Sylwester Nawrocki
March 11, 2014, 4:34 p.m. UTC
This patch documents following updates of the Exynos4 SoC camera subsystem
devicetree binding:
- addition of #clock-cells and clock-output-names properties to 'camera'
node - these are now needed so the image sensor sub-devices can reference
clocks provided by the camera host interface,
- dropped a note about required clock-frequency properties at the
image sensor nodes; the sensor devices can now control their clock
explicitly through the clk API and there is no need to require this
property in the camera host interface binding.
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
---
Changes since v7:
- dropped a note about clock-frequency property in sensor nodes.
Changes since v6:
- #clock-cells, clock-output-names documented as mandatory properties;
- renamed "cam_mclk_{a,b}" to "cam_{a,b}_clkout in the example dts,
this now matches changes in exynos4.dtsi further in the patch series;
- marked "samsung,camclk-out" property as deprecated.
Changes since v5:
- none.
Changes since v4:
- dropped a requirement of specific order of values in clocks/
clock-names properties (Mark) and reference to clock-names in
clock-output-names property description (Mark).
---
.../devicetree/bindings/media/samsung-fimc.txt | 44 +++++++++++++-------
1 file changed, 29 insertions(+), 15 deletions(-)
--
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Comments
On Tuesday 11 March 2014 17:34:30 Sylwester Nawrocki wrote: > This patch documents following updates of the Exynos4 SoC camera subsystem > devicetree binding: > > - addition of #clock-cells and clock-output-names properties to 'camera' > node - these are now needed so the image sensor sub-devices can reference > clocks provided by the camera host interface, > - dropped a note about required clock-frequency properties at the > image sensor nodes; the sensor devices can now control their clock > explicitly through the clk API and there is no need to require this > property in the camera host interface binding. > > Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > Changes since v7: > - dropped a note about clock-frequency property in sensor nodes. > > Changes since v6: > - #clock-cells, clock-output-names documented as mandatory properties; > - renamed "cam_mclk_{a,b}" to "cam_{a,b}_clkout in the example dts, > this now matches changes in exynos4.dtsi further in the patch series; > - marked "samsung,camclk-out" property as deprecated. > > Changes since v5: > - none. > > Changes since v4: > - dropped a requirement of specific order of values in clocks/ > clock-names properties (Mark) and reference to clock-names in > clock-output-names property description (Mark). > --- > .../devicetree/bindings/media/samsung-fimc.txt | 44 +++++++++++------ > 1 file changed, 29 insertions(+), 15 deletions(-) > > diff --git a/Documentation/devicetree/bindings/media/samsung-fimc.txt > b/Documentation/devicetree/bindings/media/samsung-fimc.txt index > 96312f6..922d6f8 100644 > --- a/Documentation/devicetree/bindings/media/samsung-fimc.txt > +++ b/Documentation/devicetree/bindings/media/samsung-fimc.txt > @@ -15,11 +15,21 @@ Common 'camera' node > > Required properties: > > -- compatible : must be "samsung,fimc", "simple-bus" > -- clocks : list of clock specifiers, corresponding to entries in > - the clock-names property; > -- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", > - "pxl_async1" entries, matching entries in the clocks property. > +- compatible: must be "samsung,fimc", "simple-bus" > +- clocks: list of clock specifiers, corresponding to entries in > + the clock-names property; > +- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", > + "pxl_async1" entries, matching entries in the clocks property. > + > +- #clock-cells: from the common clock bindings > (../clock/clock-bindings.txt), + must be 1. A clock provider is associated > with the 'camera' node and it should + be referenced by external sensors > that use clocks provided by the SoC on + CAM_*_CLKOUT pins. The clock > specifier cell stores an index of a clock. + The indices are 0, 1 for > CAM_A_CLKOUT, CAM_B_CLKOUT clocks respectively. + > +- clock-output-names: from the common clock bindings, should contain names > of + clocks registered by the camera subsystem corresponding to > CAM_A_CLKOUT, + CAM_B_CLKOUT output clocks respectively. > > The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be > used to define a required pinctrl state named "default" and optional > pinctrl states: @@ -32,6 +42,7 @@ way around. > > The 'camera' node must include at least one 'fimc' child node. > > + > 'fimc' device nodes > ------------------- > > @@ -88,8 +99,8 @@ port nodes specifies data input - 0, 1 indicates input A, > B respectively. > > Optional properties > > -- samsung,camclk-out : specifies clock output for remote sensor, > - 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; > +- samsung,camclk-out (deprecated) : specifies clock output for remote > sensor, + 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; > > Image sensor nodes > ------------------ > @@ -97,8 +108,6 @@ Image sensor nodes > The sensor device nodes should be added to their control bus controller > (e.g. I2C0) nodes and linked to a port node in the csis or the > parallel-ports node, using the common video interfaces bindings, defined in > video-interfaces.txt. > -The implementation of this bindings requires clock-frequency property to be > -present in the sensor device nodes. > > Example: > > @@ -114,7 +123,7 @@ Example: > vddio-supply = <...>; > > clock-frequency = <24000000>; > - clocks = <...>; > + clocks = <&camera 1>; > clock-names = "mclk"; > > port { > @@ -135,7 +144,7 @@ Example: > vddio-supply = <...>; > > clock-frequency = <24000000>; > - clocks = <...>; > + clocks = <&camera 0>; > clock-names = "mclk"; > > port { > @@ -149,12 +158,17 @@ Example: > > camera { > compatible = "samsung,fimc", "simple-bus"; > - #address-cells = <1>; > - #size-cells = <1>; > - status = "okay"; > - > + clocks = <&clock 132>, <&clock 133>, <&clock 351>, > + <&clock 352>; > + clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", > + "pxl_async1"; > + #clock-cells = <1>; > + clock-output-names = "cam_a_clkout", "cam_b_clkout"; > pinctrl-names = "default"; > pinctrl-0 = <&cam_port_a_clk_active>; > + status = "okay"; > + #address-cells = <1>; > + #size-cells = <1>; > > /* parallel camera ports */ > parallel-ports {
Mark, Could you please also review this patch? It is the only thing pending for this 10 patches series to be merged. Thank you! Mauro Em Tue, 11 Mar 2014 17:38:23 +0100 Laurent Pinchart <laurent.pinchart@ideasonboard.com> escreveu: > On Tuesday 11 March 2014 17:34:30 Sylwester Nawrocki wrote: > > This patch documents following updates of the Exynos4 SoC camera subsystem > > devicetree binding: > > > > - addition of #clock-cells and clock-output-names properties to 'camera' > > node - these are now needed so the image sensor sub-devices can reference > > clocks provided by the camera host interface, > > - dropped a note about required clock-frequency properties at the > > image sensor nodes; the sensor devices can now control their clock > > explicitly through the clk API and there is no need to require this > > property in the camera host interface binding. > > > > Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> > > Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > --- > > Changes since v7: > > - dropped a note about clock-frequency property in sensor nodes. > > > > Changes since v6: > > - #clock-cells, clock-output-names documented as mandatory properties; > > - renamed "cam_mclk_{a,b}" to "cam_{a,b}_clkout in the example dts, > > this now matches changes in exynos4.dtsi further in the patch series; > > - marked "samsung,camclk-out" property as deprecated. > > > > Changes since v5: > > - none. > > > > Changes since v4: > > - dropped a requirement of specific order of values in clocks/ > > clock-names properties (Mark) and reference to clock-names in > > clock-output-names property description (Mark). > > --- > > .../devicetree/bindings/media/samsung-fimc.txt | 44 +++++++++++------ > > 1 file changed, 29 insertions(+), 15 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/media/samsung-fimc.txt > > b/Documentation/devicetree/bindings/media/samsung-fimc.txt index > > 96312f6..922d6f8 100644 > > --- a/Documentation/devicetree/bindings/media/samsung-fimc.txt > > +++ b/Documentation/devicetree/bindings/media/samsung-fimc.txt > > @@ -15,11 +15,21 @@ Common 'camera' node > > > > Required properties: > > > > -- compatible : must be "samsung,fimc", "simple-bus" > > -- clocks : list of clock specifiers, corresponding to entries in > > - the clock-names property; > > -- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", > > - "pxl_async1" entries, matching entries in the clocks property. > > +- compatible: must be "samsung,fimc", "simple-bus" > > +- clocks: list of clock specifiers, corresponding to entries in > > + the clock-names property; > > +- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", > > + "pxl_async1" entries, matching entries in the clocks property. > > + > > +- #clock-cells: from the common clock bindings > > (../clock/clock-bindings.txt), + must be 1. A clock provider is associated > > with the 'camera' node and it should + be referenced by external sensors > > that use clocks provided by the SoC on + CAM_*_CLKOUT pins. The clock > > specifier cell stores an index of a clock. + The indices are 0, 1 for > > CAM_A_CLKOUT, CAM_B_CLKOUT clocks respectively. + > > +- clock-output-names: from the common clock bindings, should contain names > > of + clocks registered by the camera subsystem corresponding to > > CAM_A_CLKOUT, + CAM_B_CLKOUT output clocks respectively. > > > > The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be > > used to define a required pinctrl state named "default" and optional > > pinctrl states: @@ -32,6 +42,7 @@ way around. > > > > The 'camera' node must include at least one 'fimc' child node. > > > > + > > 'fimc' device nodes > > ------------------- > > > > @@ -88,8 +99,8 @@ port nodes specifies data input - 0, 1 indicates input A, > > B respectively. > > > > Optional properties > > > > -- samsung,camclk-out : specifies clock output for remote sensor, > > - 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; > > +- samsung,camclk-out (deprecated) : specifies clock output for remote > > sensor, + 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; > > > > Image sensor nodes > > ------------------ > > @@ -97,8 +108,6 @@ Image sensor nodes > > The sensor device nodes should be added to their control bus controller > > (e.g. I2C0) nodes and linked to a port node in the csis or the > > parallel-ports node, using the common video interfaces bindings, defined in > > video-interfaces.txt. > > -The implementation of this bindings requires clock-frequency property to be > > -present in the sensor device nodes. > > > > Example: > > > > @@ -114,7 +123,7 @@ Example: > > vddio-supply = <...>; > > > > clock-frequency = <24000000>; > > - clocks = <...>; > > + clocks = <&camera 1>; > > clock-names = "mclk"; > > > > port { > > @@ -135,7 +144,7 @@ Example: > > vddio-supply = <...>; > > > > clock-frequency = <24000000>; > > - clocks = <...>; > > + clocks = <&camera 0>; > > clock-names = "mclk"; > > > > port { > > @@ -149,12 +158,17 @@ Example: > > > > camera { > > compatible = "samsung,fimc", "simple-bus"; > > - #address-cells = <1>; > > - #size-cells = <1>; > > - status = "okay"; > > - > > + clocks = <&clock 132>, <&clock 133>, <&clock 351>, > > + <&clock 352>; > > + clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", > > + "pxl_async1"; > > + #clock-cells = <1>; > > + clock-output-names = "cam_a_clkout", "cam_b_clkout"; > > pinctrl-names = "default"; > > pinctrl-0 = <&cam_port_a_clk_active>; > > + status = "okay"; > > + #address-cells = <1>; > > + #size-cells = <1>; > > > > /* parallel camera ports */ > > parallel-ports { > >
On Tue, Mar 11, 2014 at 04:34:30PM +0000, Sylwester Nawrocki wrote: > This patch documents following updates of the Exynos4 SoC camera subsystem > devicetree binding: > > - addition of #clock-cells and clock-output-names properties to 'camera' > node - these are now needed so the image sensor sub-devices can reference > clocks provided by the camera host interface, > - dropped a note about required clock-frequency properties at the > image sensor nodes; the sensor devices can now control their clock > explicitly through the clk API and there is no need to require this > property in the camera host interface binding. > > Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> > --- > Changes since v7: > - dropped a note about clock-frequency property in sensor nodes. > > Changes since v6: > - #clock-cells, clock-output-names documented as mandatory properties; > - renamed "cam_mclk_{a,b}" to "cam_{a,b}_clkout in the example dts, > this now matches changes in exynos4.dtsi further in the patch series; > - marked "samsung,camclk-out" property as deprecated. > > Changes since v5: > - none. > > Changes since v4: > - dropped a requirement of specific order of values in clocks/ > clock-names properties (Mark) and reference to clock-names in > clock-output-names property description (Mark). > --- > .../devicetree/bindings/media/samsung-fimc.txt | 44 +++++++++++++------- > 1 file changed, 29 insertions(+), 15 deletions(-) > > diff --git a/Documentation/devicetree/bindings/media/samsung-fimc.txt b/Documentation/devicetree/bindings/media/samsung-fimc.txt > index 96312f6..922d6f8 100644 > --- a/Documentation/devicetree/bindings/media/samsung-fimc.txt > +++ b/Documentation/devicetree/bindings/media/samsung-fimc.txt > @@ -15,11 +15,21 @@ Common 'camera' node > > Required properties: > > -- compatible : must be "samsung,fimc", "simple-bus" While it was already the case, why is "samsung,fimc" also a simple bus? If it has any properties which are required for the correct use of the child nodes, it is _not_ a simple-bus. > -- clocks : list of clock specifiers, corresponding to entries in > - the clock-names property; > -- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", > - "pxl_async1" entries, matching entries in the clocks property. > +- compatible: must be "samsung,fimc", "simple-bus" > +- clocks: list of clock specifiers, corresponding to entries in > + the clock-names property; > +- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", > + "pxl_async1" entries, matching entries in the clocks property. > + > +- #clock-cells: from the common clock bindings (../clock/clock-bindings.txt), > + must be 1. A clock provider is associated with the 'camera' node and it should > + be referenced by external sensors that use clocks provided by the SoC on > + CAM_*_CLKOUT pins. The clock specifier cell stores an index of a clock. > + The indices are 0, 1 for CAM_A_CLKOUT, CAM_B_CLKOUT clocks respectively. > + > +- clock-output-names: from the common clock bindings, should contain names of > + clocks registered by the camera subsystem corresponding to CAM_A_CLKOUT, > + CAM_B_CLKOUT output clocks respectively. And if we're adding more stuff required by child nodes it's definitely not a simple-bus. Get rid of simple-bus. Get the driver for "samsung,fimc" to probe its children once it has set up. Apologies for the late reply, and sorry to have to be negative on this. Thanks, Mark. > > The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used > to define a required pinctrl state named "default" and optional pinctrl states: > @@ -32,6 +42,7 @@ way around. > > The 'camera' node must include at least one 'fimc' child node. > > + > 'fimc' device nodes > ------------------- > > @@ -88,8 +99,8 @@ port nodes specifies data input - 0, 1 indicates input A, B respectively. > > Optional properties > > -- samsung,camclk-out : specifies clock output for remote sensor, > - 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; > +- samsung,camclk-out (deprecated) : specifies clock output for remote sensor, > + 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; > > Image sensor nodes > ------------------ > @@ -97,8 +108,6 @@ Image sensor nodes > The sensor device nodes should be added to their control bus controller (e.g. > I2C0) nodes and linked to a port node in the csis or the parallel-ports node, > using the common video interfaces bindings, defined in video-interfaces.txt. > -The implementation of this bindings requires clock-frequency property to be > -present in the sensor device nodes. > > Example: > > @@ -114,7 +123,7 @@ Example: > vddio-supply = <...>; > > clock-frequency = <24000000>; > - clocks = <...>; > + clocks = <&camera 1>; > clock-names = "mclk"; > > port { > @@ -135,7 +144,7 @@ Example: > vddio-supply = <...>; > > clock-frequency = <24000000>; > - clocks = <...>; > + clocks = <&camera 0>; > clock-names = "mclk"; > > port { > @@ -149,12 +158,17 @@ Example: > > camera { > compatible = "samsung,fimc", "simple-bus"; > - #address-cells = <1>; > - #size-cells = <1>; > - status = "okay"; > - > + clocks = <&clock 132>, <&clock 133>, <&clock 351>, > + <&clock 352>; > + clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", > + "pxl_async1"; > + #clock-cells = <1>; > + clock-output-names = "cam_a_clkout", "cam_b_clkout"; > pinctrl-names = "default"; > pinctrl-0 = <&cam_port_a_clk_active>; > + status = "okay"; > + #address-cells = <1>; > + #size-cells = <1>; > > /* parallel camera ports */ > parallel-ports { > -- > 1.7.9.5 > > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Mark, Thanks for your review. On 18/03/14 11:02, Mark Rutland wrote: > On Tue, Mar 11, 2014 at 04:34:30PM +0000, Sylwester Nawrocki wrote: >> > This patch documents following updates of the Exynos4 SoC camera subsystem >> > devicetree binding: >> > >> > - addition of #clock-cells and clock-output-names properties to 'camera' >> > node - these are now needed so the image sensor sub-devices can reference >> > clocks provided by the camera host interface, >> > - dropped a note about required clock-frequency properties at the >> > image sensor nodes; the sensor devices can now control their clock >> > explicitly through the clk API and there is no need to require this >> > property in the camera host interface binding. >> > >> > Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> >> > --- >> > Changes since v7: >> > - dropped a note about clock-frequency property in sensor nodes. >> > >> > Changes since v6: >> > - #clock-cells, clock-output-names documented as mandatory properties; >> > - renamed "cam_mclk_{a,b}" to "cam_{a,b}_clkout in the example dts, >> > this now matches changes in exynos4.dtsi further in the patch series; >> > - marked "samsung,camclk-out" property as deprecated. >> > >> > Changes since v5: >> > - none. >> > >> > Changes since v4: >> > - dropped a requirement of specific order of values in clocks/ >> > clock-names properties (Mark) and reference to clock-names in >> > clock-output-names property description (Mark). >> > --- >> > .../devicetree/bindings/media/samsung-fimc.txt | 44 +++++++++++++------- >> > 1 file changed, 29 insertions(+), 15 deletions(-) >> > >> > diff --git a/Documentation/devicetree/bindings/media/samsung-fimc.txt b/Documentation/devicetree/bindings/media/samsung-fimc.txt >> > index 96312f6..922d6f8 100644 >> > --- a/Documentation/devicetree/bindings/media/samsung-fimc.txt >> > +++ b/Documentation/devicetree/bindings/media/samsung-fimc.txt >> > @@ -15,11 +15,21 @@ Common 'camera' node >> > >> > Required properties: >> > >> > -- compatible : must be "samsung,fimc", "simple-bus" > > While it was already the case, why is "samsung,fimc" also a simple bus? IIRC the main reason was to have children automatically instantiated in Linux, also "samsung,fimc" is a master node gathering the all related camera subsystem memory mapped IP blocks. > If it has any properties which are required for the correct use of the > child nodes, it is _not_ a simple-bus. Then this can be considered a separate issue, and could be addressed in a separate patch ? >> > -- clocks : list of clock specifiers, corresponding to entries in >> > - the clock-names property; >> > -- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", >> > - "pxl_async1" entries, matching entries in the clocks property. >> > +- compatible: must be "samsung,fimc", "simple-bus" >> > +- clocks: list of clock specifiers, corresponding to entries in >> > + the clock-names property; >> > +- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", >> > + "pxl_async1" entries, matching entries in the clocks property. >> > + >> > +- #clock-cells: from the common clock bindings (../clock/clock-bindings.txt), >> > + must be 1. A clock provider is associated with the 'camera' node and it should >> > + be referenced by external sensors that use clocks provided by the SoC on >> > + CAM_*_CLKOUT pins. The clock specifier cell stores an index of a clock. >> > + The indices are 0, 1 for CAM_A_CLKOUT, CAM_B_CLKOUT clocks respectively. >> > + >> > +- clock-output-names: from the common clock bindings, should contain names of >> > + clocks registered by the camera subsystem corresponding to CAM_A_CLKOUT, >> > + CAM_B_CLKOUT output clocks respectively. > > And if we're adding more stuff required by child nodes it's definitely > not a simple-bus. > > Get rid of simple-bus. Get the driver for "samsung,fimc" to probe its > children once it has set up. > > Apologies for the late reply, and sorry to have to be negative on this. While I agree with you that the "simple-bus" might not be a best idea, I can't see how your suggestion could be now implemented in Linux, since AFAIK there is no API like of_platform_unpopulate(), so device objects can be removed upon the driver module removal. -- Regards, Sylwester -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Documentation/devicetree/bindings/media/samsung-fimc.txt b/Documentation/devicetree/bindings/media/samsung-fimc.txt index 96312f6..922d6f8 100644 --- a/Documentation/devicetree/bindings/media/samsung-fimc.txt +++ b/Documentation/devicetree/bindings/media/samsung-fimc.txt @@ -15,11 +15,21 @@ Common 'camera' node Required properties: -- compatible : must be "samsung,fimc", "simple-bus" -- clocks : list of clock specifiers, corresponding to entries in - the clock-names property; -- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", - "pxl_async1" entries, matching entries in the clocks property. +- compatible: must be "samsung,fimc", "simple-bus" +- clocks: list of clock specifiers, corresponding to entries in + the clock-names property; +- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0", + "pxl_async1" entries, matching entries in the clocks property. + +- #clock-cells: from the common clock bindings (../clock/clock-bindings.txt), + must be 1. A clock provider is associated with the 'camera' node and it should + be referenced by external sensors that use clocks provided by the SoC on + CAM_*_CLKOUT pins. The clock specifier cell stores an index of a clock. + The indices are 0, 1 for CAM_A_CLKOUT, CAM_B_CLKOUT clocks respectively. + +- clock-output-names: from the common clock bindings, should contain names of + clocks registered by the camera subsystem corresponding to CAM_A_CLKOUT, + CAM_B_CLKOUT output clocks respectively. The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used to define a required pinctrl state named "default" and optional pinctrl states: @@ -32,6 +42,7 @@ way around. The 'camera' node must include at least one 'fimc' child node. + 'fimc' device nodes ------------------- @@ -88,8 +99,8 @@ port nodes specifies data input - 0, 1 indicates input A, B respectively. Optional properties -- samsung,camclk-out : specifies clock output for remote sensor, - 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; +- samsung,camclk-out (deprecated) : specifies clock output for remote sensor, + 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; Image sensor nodes ------------------ @@ -97,8 +108,6 @@ Image sensor nodes The sensor device nodes should be added to their control bus controller (e.g. I2C0) nodes and linked to a port node in the csis or the parallel-ports node, using the common video interfaces bindings, defined in video-interfaces.txt. -The implementation of this bindings requires clock-frequency property to be -present in the sensor device nodes. Example: @@ -114,7 +123,7 @@ Example: vddio-supply = <...>; clock-frequency = <24000000>; - clocks = <...>; + clocks = <&camera 1>; clock-names = "mclk"; port { @@ -135,7 +144,7 @@ Example: vddio-supply = <...>; clock-frequency = <24000000>; - clocks = <...>; + clocks = <&camera 0>; clock-names = "mclk"; port { @@ -149,12 +158,17 @@ Example: camera { compatible = "samsung,fimc", "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - status = "okay"; - + clocks = <&clock 132>, <&clock 133>, <&clock 351>, + <&clock 352>; + clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", + "pxl_async1"; + #clock-cells = <1>; + clock-output-names = "cam_a_clkout", "cam_b_clkout"; pinctrl-names = "default"; pinctrl-0 = <&cam_port_a_clk_active>; + status = "okay"; + #address-cells = <1>; + #size-cells = <1>; /* parallel camera ports */ parallel-ports {