linux-clk.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Patch v2 0/3] ARM: dts: am43x-vpfe/ov2659.patch
@ 2019-11-12 14:29 Benoit Parrot
  2019-11-12 14:29 ` [Patch v2 1/3] ARM: dts: am43xx: add support for clkout1 clock Benoit Parrot
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Benoit Parrot @ 2019-11-12 14:29 UTC (permalink / raw)
  To: Tony Lindgren, Tero Kristo
  Cc: linux-omap, linux-clk, linux-arm-kernel, devicetree,
	linux-kernel, Benoit Parrot

This patch series adds the missing camera endpoint (ov2659) as well as
the required source clocks nodes for the sensor.

On the am437x-sk-evm the camera sensor is sourced from clkout1 but that
clock nodes/tree was removed as it was unsed at the time, we are
re-adding the needed clock nodes here.

Changes since v1:
- Fix clock name to make it generic
- Add non-standard clock node naming to commit message as per Tony's
  comment
- Rename all clock nodes to use '-' instead of '_'

Benoit Parrot (2):
  ARM: dts: am437x-sk-evm: Add VPFE and OV2659 entries
  ARM: dts: am43x-epos-evm: Add VPFE and OV2659 entries

Tero Kristo (1):
  ARM: dts: am43xx: add support for clkout1 clock

 arch/arm/boot/dts/am437x-sk-evm.dts  | 27 +++++++++++++-
 arch/arm/boot/dts/am43x-epos-evm.dts | 23 +++++++++++-
 arch/arm/boot/dts/am43xx-clocks.dtsi | 54 ++++++++++++++++++++++++++++
 3 files changed, 102 insertions(+), 2 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Patch v2 1/3] ARM: dts: am43xx: add support for clkout1 clock
  2019-11-12 14:29 [Patch v2 0/3] ARM: dts: am43x-vpfe/ov2659.patch Benoit Parrot
@ 2019-11-12 14:29 ` Benoit Parrot
  2019-11-12 15:39   ` Tony Lindgren
  2019-11-12 14:29 ` [Patch v2 2/3] ARM: dts: am437x-sk-evm: Add VPFE and OV2659 entries Benoit Parrot
  2019-11-12 14:29 ` [Patch v2 3/3] ARM: dts: am43x-epos-evm: " Benoit Parrot
  2 siblings, 1 reply; 5+ messages in thread
From: Benoit Parrot @ 2019-11-12 14:29 UTC (permalink / raw)
  To: Tony Lindgren, Tero Kristo
  Cc: linux-omap, linux-clk, linux-arm-kernel, devicetree,
	linux-kernel, Benoit Parrot

From: Tero Kristo <t-kristo@ti.com>

clkout1 clock node and its generation tree was missing. Add this based
on the data on TRM and PRCM functional spec.

commit 664ae1ab2536 ("ARM: dts: am43xx: add clkctrl nodes") effectively
reverted this commit 8010f13a40d3 ("ARM: dts: am43xx: add support for
clkout1 clock") which is needed for the ov2659 camera sensor clock
definition hence it is being re-applied here.

Note that because of the current dts node name dependency for mapping to
clock domain, we must still use "clkout1-*ck" naming instead of generic
"clock@" naming for the node. And because of this, it's probably best to
apply the dts node addition together along with the other clock changes.

Fixes: 664ae1ab2536 ("ARM: dts: am43xx: add clkctrl nodes")
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Tested-by: Benoit Parrot <bparrot@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Benoit Parrot <bparrot@ti.com>
---
 arch/arm/boot/dts/am43xx-clocks.dtsi | 54 ++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/arch/arm/boot/dts/am43xx-clocks.dtsi b/arch/arm/boot/dts/am43xx-clocks.dtsi
index 091356f2a8c1..c726cd8dbdf1 100644
--- a/arch/arm/boot/dts/am43xx-clocks.dtsi
+++ b/arch/arm/boot/dts/am43xx-clocks.dtsi
@@ -704,6 +704,60 @@
 		ti,bit-shift = <8>;
 		reg = <0x2a48>;
 	};
+
+	clkout1_osc_div_ck: clkout1-osc-div-ck {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&sys_clkin_ck>;
+		ti,bit-shift = <20>;
+		ti,max-div = <4>;
+		reg = <0x4100>;
+	};
+
+	clkout1_src2_mux_ck: clkout1-src2-mux-ck {
+		#clock-cells = <0>;
+		compatible = "ti,mux-clock";
+		clocks = <&clk_rc32k_ck>, <&sysclk_div>, <&dpll_ddr_m2_ck>,
+			 <&dpll_per_m2_ck>, <&dpll_disp_m2_ck>,
+			 <&dpll_mpu_m2_ck>;
+		reg = <0x4100>;
+	};
+
+	clkout1_src2_pre_div_ck: clkout1-src2-pre-div-ck {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&clkout1_src2_mux_ck>;
+		ti,bit-shift = <4>;
+		ti,max-div = <8>;
+		reg = <0x4100>;
+	};
+
+	clkout1_src2_post_div_ck: clkout1-src2-post-div-ck {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&clkout1_src2_pre_div_ck>;
+		ti,bit-shift = <8>;
+		ti,max-div = <32>;
+		ti,index-power-of-two;
+		reg = <0x4100>;
+	};
+
+	clkout1_mux_ck: clkout1-mux-ck {
+		#clock-cells = <0>;
+		compatible = "ti,mux-clock";
+		clocks = <&clkout1_osc_div_ck>, <&clk_rc32k_ck>,
+			 <&clkout1_src2_post_div_ck>, <&dpll_extdev_m2_ck>;
+		ti,bit-shift = <16>;
+		reg = <0x4100>;
+	};
+
+	clkout1_ck: clkout1-ck {
+		#clock-cells = <0>;
+		compatible = "ti,gate-clock";
+		clocks = <&clkout1_mux_ck>;
+		ti,bit-shift = <23>;
+		reg = <0x4100>;
+	};
 };
 
 &prcm {
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Patch v2 2/3] ARM: dts: am437x-sk-evm: Add VPFE and OV2659 entries
  2019-11-12 14:29 [Patch v2 0/3] ARM: dts: am43x-vpfe/ov2659.patch Benoit Parrot
  2019-11-12 14:29 ` [Patch v2 1/3] ARM: dts: am43xx: add support for clkout1 clock Benoit Parrot
@ 2019-11-12 14:29 ` Benoit Parrot
  2019-11-12 14:29 ` [Patch v2 3/3] ARM: dts: am43x-epos-evm: " Benoit Parrot
  2 siblings, 0 replies; 5+ messages in thread
From: Benoit Parrot @ 2019-11-12 14:29 UTC (permalink / raw)
  To: Tony Lindgren, Tero Kristo
  Cc: linux-omap, linux-clk, linux-arm-kernel, devicetree,
	linux-kernel, Benoit Parrot

Add VPFE device nodes entries.
Add OmniVision OV2659 sensor device nodes and linkage.

The sensor clock (xvclk) is sourced from clkout1.
Add clock entries to properly select clkout1 and set its parent
clock to sys_clkin_ck.

Signed-off-by: Benoit Parrot <bparrot@ti.com>
---
 arch/arm/boot/dts/am437x-sk-evm.dts | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
index 74eaa6a3b258..25222497f828 100644
--- a/arch/arm/boot/dts/am437x-sk-evm.dts
+++ b/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -272,6 +272,12 @@
 		>;
 	};
 
+	clkout1_pin: pinmux_clkout1_pin {
+		pinctrl-single,pins = <
+			0x270 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* XDMA_EVENT_INTR0/CLKOUT1 */
+		>;
+	};
+
 	cpsw_default: cpsw_default {
 		pinctrl-single,pins = <
 			/* Slave 1 */
@@ -593,6 +599,25 @@
 	pinctrl-0 = <&i2c1_pins>;
 	clock-frequency = <400000>;
 
+	ov2659@30 {
+		compatible = "ovti,ov2659";
+		reg = <0x30>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&clkout1_pin>;
+
+		clocks = <&clkout1_mux_ck>;
+		clock-names = "xvclk";
+		assigned-clocks = <&clkout1_mux_ck>;
+		assigned-clock-parents = <&clkout1_osc_div_ck>;
+
+		port {
+			ov2659_1: endpoint {
+				remote-endpoint = <&vpfe0_ep>;
+				link-frequencies = /bits/ 64 <70000000>;
+			};
+		};
+	};
+
 	edt-ft5306@38 {
 		status = "okay";
 		compatible = "edt,edt-ft5306", "edt,edt-ft5x06";
@@ -877,7 +902,7 @@
 	/* Camera port */
 	port {
 		vpfe0_ep: endpoint {
-			/* remote-endpoint = <&sensor>; add once we have it */
+			remote-endpoint = <&ov2659_1>;
 			ti,am437x-vpfe-interface = <0>;
 			bus-width = <8>;
 			hsync-active = <0>;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Patch v2 3/3] ARM: dts: am43x-epos-evm: Add VPFE and OV2659 entries
  2019-11-12 14:29 [Patch v2 0/3] ARM: dts: am43x-vpfe/ov2659.patch Benoit Parrot
  2019-11-12 14:29 ` [Patch v2 1/3] ARM: dts: am43xx: add support for clkout1 clock Benoit Parrot
  2019-11-12 14:29 ` [Patch v2 2/3] ARM: dts: am437x-sk-evm: Add VPFE and OV2659 entries Benoit Parrot
@ 2019-11-12 14:29 ` Benoit Parrot
  2 siblings, 0 replies; 5+ messages in thread
From: Benoit Parrot @ 2019-11-12 14:29 UTC (permalink / raw)
  To: Tony Lindgren, Tero Kristo
  Cc: linux-omap, linux-clk, linux-arm-kernel, devicetree,
	linux-kernel, Benoit Parrot

Add VPFE device nodes entries.
Add OmniVision OV2659 sensor device nodes and linkage.

Since Rev1.2a on this board the sensor source clock (xvclk) has a
dedicated 12Mhz oscillator instead of using clkout1.
Add 'audio_mstrclk' fixed clock object to represent it.

Signed-off-by: Benoit Parrot <bparrot@ti.com>
---
 arch/arm/boot/dts/am43x-epos-evm.dts | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index 95314121d111..b0df37014888 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -145,6 +145,12 @@
 			system-clock-frequency = <12000000>;
 		};
 	};
+
+	audio_mstrclk: clock {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <12000000>;
+	};
 };
 
 &am43xx_pinmux {
@@ -696,6 +702,21 @@
 		IOVDD-supply = <&dcdc4>; /* V3_3D -> DCDC4 */
 		DVDD-supply = <&ldo1>; /* V1_8AUD -> V1_8D -> LDO1 */
 	};
+
+	ov2659@30 {
+		compatible = "ovti,ov2659";
+		reg = <0x30>;
+
+		clocks = <&audio_mstrclk>;
+		clock-names = "xvclk";
+
+		port {
+			ov2659_1: endpoint {
+				remote-endpoint = <&vpfe1_ep>;
+				link-frequencies = /bits/ 64 <70000000>;
+			};
+		};
+	};
 };
 
 &i2c2 {
@@ -962,7 +983,7 @@
 
 	port {
 		vpfe1_ep: endpoint {
-			/* remote-endpoint = <&sensor>; add once we have it */
+			remote-endpoint = <&ov2659_1>;
 			ti,am437x-vpfe-interface = <0>;
 			bus-width = <8>;
 			hsync-active = <0>;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Patch v2 1/3] ARM: dts: am43xx: add support for clkout1 clock
  2019-11-12 14:29 ` [Patch v2 1/3] ARM: dts: am43xx: add support for clkout1 clock Benoit Parrot
@ 2019-11-12 15:39   ` Tony Lindgren
  0 siblings, 0 replies; 5+ messages in thread
From: Tony Lindgren @ 2019-11-12 15:39 UTC (permalink / raw)
  To: Benoit Parrot
  Cc: Tero Kristo, devicetree, linux-kernel, linux-omap, linux-clk,
	linux-arm-kernel

* Benoit Parrot <bparrot@ti.com> [191112 14:30]:
> From: Tero Kristo <t-kristo@ti.com>
> 
> clkout1 clock node and its generation tree was missing. Add this based
> on the data on TRM and PRCM functional spec.
> 
> commit 664ae1ab2536 ("ARM: dts: am43xx: add clkctrl nodes") effectively
> reverted this commit 8010f13a40d3 ("ARM: dts: am43xx: add support for
> clkout1 clock") which is needed for the ov2659 camera sensor clock
> definition hence it is being re-applied here.
> 
> Note that because of the current dts node name dependency for mapping to
> clock domain, we must still use "clkout1-*ck" naming instead of generic
> "clock@" naming for the node. And because of this, it's probably best to
> apply the dts node addition together along with the other clock changes.
> 
> Fixes: 664ae1ab2536 ("ARM: dts: am43xx: add clkctrl nodes")
> Signed-off-by: Tero Kristo <t-kristo@ti.com>
> Tested-by: Benoit Parrot <bparrot@ti.com>
> Signed-off-by: Tony Lindgren <tony@atomide.com>

Hmm I don't think I did any work on this, the above should be:

Acked-by: Tony Lindgren <tony@atomide.com>

> Signed-off-by: Benoit Parrot <bparrot@ti.com>
> ---
>  arch/arm/boot/dts/am43xx-clocks.dtsi | 54 ++++++++++++++++++++++++++++
>  1 file changed, 54 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/am43xx-clocks.dtsi b/arch/arm/boot/dts/am43xx-clocks.dtsi
> index 091356f2a8c1..c726cd8dbdf1 100644
> --- a/arch/arm/boot/dts/am43xx-clocks.dtsi
> +++ b/arch/arm/boot/dts/am43xx-clocks.dtsi
> @@ -704,6 +704,60 @@
>  		ti,bit-shift = <8>;
>  		reg = <0x2a48>;
>  	};
> +
> +	clkout1_osc_div_ck: clkout1-osc-div-ck {
> +		#clock-cells = <0>;
> +		compatible = "ti,divider-clock";
> +		clocks = <&sys_clkin_ck>;
> +		ti,bit-shift = <20>;
> +		ti,max-div = <4>;
> +		reg = <0x4100>;
> +	};
> +
> +	clkout1_src2_mux_ck: clkout1-src2-mux-ck {
> +		#clock-cells = <0>;
> +		compatible = "ti,mux-clock";
> +		clocks = <&clk_rc32k_ck>, <&sysclk_div>, <&dpll_ddr_m2_ck>,
> +			 <&dpll_per_m2_ck>, <&dpll_disp_m2_ck>,
> +			 <&dpll_mpu_m2_ck>;
> +		reg = <0x4100>;
> +	};
> +
> +	clkout1_src2_pre_div_ck: clkout1-src2-pre-div-ck {
> +		#clock-cells = <0>;
> +		compatible = "ti,divider-clock";
> +		clocks = <&clkout1_src2_mux_ck>;
> +		ti,bit-shift = <4>;
> +		ti,max-div = <8>;
> +		reg = <0x4100>;
> +	};
> +
> +	clkout1_src2_post_div_ck: clkout1-src2-post-div-ck {
> +		#clock-cells = <0>;
> +		compatible = "ti,divider-clock";
> +		clocks = <&clkout1_src2_pre_div_ck>;
> +		ti,bit-shift = <8>;
> +		ti,max-div = <32>;
> +		ti,index-power-of-two;
> +		reg = <0x4100>;
> +	};
> +
> +	clkout1_mux_ck: clkout1-mux-ck {
> +		#clock-cells = <0>;
> +		compatible = "ti,mux-clock";
> +		clocks = <&clkout1_osc_div_ck>, <&clk_rc32k_ck>,
> +			 <&clkout1_src2_post_div_ck>, <&dpll_extdev_m2_ck>;
> +		ti,bit-shift = <16>;
> +		reg = <0x4100>;
> +	};
> +
> +	clkout1_ck: clkout1-ck {
> +		#clock-cells = <0>;
> +		compatible = "ti,gate-clock";
> +		clocks = <&clkout1_mux_ck>;
> +		ti,bit-shift = <23>;
> +		reg = <0x4100>;
> +	};
>  };
>  
>  &prcm {
> -- 
> 2.17.1
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-11-12 15:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-12 14:29 [Patch v2 0/3] ARM: dts: am43x-vpfe/ov2659.patch Benoit Parrot
2019-11-12 14:29 ` [Patch v2 1/3] ARM: dts: am43xx: add support for clkout1 clock Benoit Parrot
2019-11-12 15:39   ` Tony Lindgren
2019-11-12 14:29 ` [Patch v2 2/3] ARM: dts: am437x-sk-evm: Add VPFE and OV2659 entries Benoit Parrot
2019-11-12 14:29 ` [Patch v2 3/3] ARM: dts: am43x-epos-evm: " Benoit Parrot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).