[v8,3/10] Documentation: devicetree: Update Samsung FIMC DT binding

Message ID 1394555670-14155-1-git-send-email-s.nawrocki@samsung.com (mailing list archive)
State Superseded, archived
Headers

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

Laurent Pinchart March 11, 2014, 4:38 p.m. UTC | #1
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 {
  
Mauro Carvalho Chehab March 12, 2014, 3:41 p.m. UTC | #2
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 {
> 
>
  
Mark Rutland March 18, 2014, 10:02 a.m. UTC | #3
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
  
Sylwester Nawrocki March 18, 2014, 11:31 a.m. UTC | #4
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
  

Patch

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 {