2019-11-12 14:28:02

by Benoit Parrot

[permalink] [raw]
Subject: [Patch v2 0/3] ARM: dts: am43x-vpfe/ov2659.patch

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


2019-11-12 14:28:08

by Benoit Parrot

[permalink] [raw]
Subject: [Patch v2 1/3] ARM: dts: am43xx: add support for clkout1 clock

From: Tero Kristo <[email protected]>

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 <[email protected]>
Tested-by: Benoit Parrot <[email protected]>
Signed-off-by: Tony Lindgren <[email protected]>
Signed-off-by: Benoit Parrot <[email protected]>
---
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

2019-11-12 14:30:13

by Benoit Parrot

[permalink] [raw]
Subject: [Patch v2 2/3] ARM: dts: am437x-sk-evm: Add VPFE and OV2659 entries

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 <[email protected]>
---
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

2019-11-12 14:30:28

by Benoit Parrot

[permalink] [raw]
Subject: [Patch v2 3/3] ARM: dts: am43x-epos-evm: Add VPFE and OV2659 entries

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 <[email protected]>
---
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

2019-11-12 15:43:16

by Tony Lindgren

[permalink] [raw]
Subject: Re: [Patch v2 1/3] ARM: dts: am43xx: add support for clkout1 clock

* Benoit Parrot <[email protected]> [191112 14:30]:
> From: Tero Kristo <[email protected]>
>
> 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 <[email protected]>
> Tested-by: Benoit Parrot <[email protected]>
> Signed-off-by: Tony Lindgren <[email protected]>

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

Acked-by: Tony Lindgren <[email protected]>

> Signed-off-by: Benoit Parrot <[email protected]>
> ---
> 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
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel