2024-02-15 09:05:16

by Vaishnav Achath

[permalink] [raw]
Subject: [PATCH v4 0/9] Add CSI2RX capture support on TI J7 platforms

Hi,

This series adds support for CSI2RX capture support on J7 platforms,
series was tested for CSI2RX capture on OV5640 sensor and RPI camera
v2 IMX219 sensor on J721e Common Processor Board, J721E Starter kit,
J721S2 Common Processor Board, AM68 Starter Kit, J784s4 EVM and AM69
Starter kit.

V1: https://lore.kernel.org/all/[email protected]/
V2: https://lore.kernel.org/all/[email protected]/
V3: https://lore.kernel.org/all/[email protected]/

Changelog:
V3->V4:
* Add additional port information in overlays to fix DTC warning:
Warning (graph_child_address): graph node has single child node,
#address-cells/#size-cells are not necessary
V2->V3:
* Fix order of properties in patch 6/7/8 as per dts coding style.
V1->V2:
* Address feedback from Jai and Andrew
* Rename overlays to indicate first platform supported/dual camera.
* Add missed build test.
* Add board schematics for all commit messages.

Test logs:
J721E EVM OV5640 - https://gist.github.com/vaishnavachath/b08521386cfbe1939facf39b8b2d796b
J721S2 EVM OV5640 - https://gist.github.com/vaishnavachath/1b0d60da6b6464cf12334cd5e161a79b
J784s4 EVM OV5640 - https://gist.github.com/vaishnavachath/02b70df94d2d41662eff99f4ce966d67
TDA4VM SK IMX219 - https://gist.github.com/vaishnavachath/64fc6edd6cc060027812bebd6573df07
AM68 SK IMX219 - https://gist.github.com/vaishnavachath/d522254ff5e797bc853e0706fbea932a
AM69 SK IMX219 - https://gist.github.com/vaishnavachath/8dbd960cc89d691886df371c53aac399

Only a single set of overlays for dual RPI IMX219 is included in the series
for reference and other overlays to test OV5640 can be found here:
https://gist.github.com/vaishnavachath/d0a052106892fe9f3096733931e9ad5f

Vaishnav Achath (9):
arm64: dts: ti: k3-j721s2-common-proc-board: Enable camera peripherals
arm64: dts: ti: k3-j784s4-evm: Enable camera peripherals
arm64: dts: ti: k3-am68-sk-base-board: Enable camera peripherals
arm64: dts: ti: k3-am69-sk: Enable camera peripherals
arm64: dts: ti: k3-j721e-sk: Model CSI2RX connector mux
arm64: dts: ti: k3-j721e-main: Add CSI2RX capture nodes
arm64: dts: ti: k3-j721s2-main: Add CSI2RX capture nodes
arm64: dts: ti: k3-j784s4-main: Add CSI2RX capture nodes
arm64: dts: ti: k3-j721e-sk: Add overlay for IMX219

arch/arm64/boot/dts/ti/Makefile | 13 ++
.../boot/dts/ti/k3-am68-sk-base-board.dts | 50 +++++
arch/arm64/boot/dts/ti/k3-am69-sk.dts | 51 +++++
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 122 ++++++++++++
.../dts/ti/k3-j721e-sk-csi2-dual-imx219.dtso | 165 ++++++++++++++++
arch/arm64/boot/dts/ti/k3-j721e-sk.dts | 19 +-
.../dts/ti/k3-j721s2-common-proc-board.dts | 25 +++
arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 123 +++++++++++-
arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 25 +++
arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi | 183 +++++++++++++++++-
10 files changed, 772 insertions(+), 4 deletions(-)
create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-sk-csi2-dual-imx219.dtso

--
2.34.1



2024-02-15 09:29:06

by Vaishnav Achath

[permalink] [raw]
Subject: [PATCH v4 8/9] arm64: dts: ti: k3-j784s4-main: Add CSI2RX capture nodes

J784S4 has three CSI2RX capture subsystem featuring Cadence CSI2RX,
DPHY and TI's pixel grabbing wrapper. Add nodes for the same and
keep them disabled by default. J784S4 uses a dedicated BCDMA instance
for CSI-RX traffic, so enable that as well.

J784S4 TRM (Section 12.7 Camera Subsystem):
https://www.ti.com/lit/zip/spruj52

Signed-off-by: Vaishnav Achath <[email protected]>
Reviewed-by: Jai Luthra <[email protected]>
---

V2->V3: Fix order of properties as per dts coding style.
V1->V2: Update commit message with TRM.

arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi | 183 ++++++++++++++++++++-
1 file changed, 182 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
index 3cb964982792..42e4ca1d0b65 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
@@ -662,6 +662,188 @@ main_i2c6: i2c@2060000 {
status = "disabled";
};

+ ti_csi2rx0: ticsi2rx@4500000 {
+ compatible = "ti,j721e-csi2rx-shim";
+ reg = <0x00 0x04500000 0x00 0x00001000>;
+ ranges;
+ #address-cells = <2>;
+ #size-cells = <2>;
+ dmas = <&main_bcdma_csi 0 0x4940 0>;
+ dma-names = "rx0";
+ power-domains = <&k3_pds 72 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+
+ cdns_csi2rx0: csi-bridge@4504000 {
+ compatible = "ti,j721e-csi2rx", "cdns,csi2rx";
+ reg = <0x00 0x04504000 0x00 0x00001000>;
+ clocks = <&k3_clks 72 2>, <&k3_clks 72 0>, <&k3_clks 72 2>,
+ <&k3_clks 72 2>, <&k3_clks 72 3>, <&k3_clks 72 3>;
+ clock-names = "sys_clk", "p_clk", "pixel_if0_clk",
+ "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk";
+ phys = <&dphy0>;
+ phy-names = "dphy";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi0_port0: port@0 {
+ reg = <0>;
+ status = "disabled";
+ };
+
+ csi0_port1: port@1 {
+ reg = <1>;
+ status = "disabled";
+ };
+
+ csi0_port2: port@2 {
+ reg = <2>;
+ status = "disabled";
+ };
+
+ csi0_port3: port@3 {
+ reg = <3>;
+ status = "disabled";
+ };
+
+ csi0_port4: port@4 {
+ reg = <4>;
+ status = "disabled";
+ };
+ };
+ };
+ };
+
+ ti_csi2rx1: ticsi2rx@4510000 {
+ compatible = "ti,j721e-csi2rx-shim";
+ reg = <0x00 0x04510000 0x00 0x1000>;
+ ranges;
+ #address-cells = <2>;
+ #size-cells = <2>;
+ dmas = <&main_bcdma_csi 0 0x4960 0>;
+ dma-names = "rx0";
+ power-domains = <&k3_pds 73 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+
+ cdns_csi2rx1: csi-bridge@4514000 {
+ compatible = "ti,j721e-csi2rx", "cdns,csi2rx";
+ reg = <0x00 0x04514000 0x00 0x00001000>;
+ clocks = <&k3_clks 73 2>, <&k3_clks 73 0>, <&k3_clks 73 2>,
+ <&k3_clks 73 2>, <&k3_clks 73 3>, <&k3_clks 73 3>;
+ clock-names = "sys_clk", "p_clk", "pixel_if0_clk",
+ "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk";
+ phys = <&dphy1>;
+ phy-names = "dphy";
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi1_port0: port@0 {
+ reg = <0>;
+ status = "disabled";
+ };
+
+ csi1_port1: port@1 {
+ reg = <1>;
+ status = "disabled";
+ };
+
+ csi1_port2: port@2 {
+ reg = <2>;
+ status = "disabled";
+ };
+
+ csi1_port3: port@3 {
+ reg = <3>;
+ status = "disabled";
+ };
+
+ csi1_port4: port@4 {
+ reg = <4>;
+ status = "disabled";
+ };
+ };
+ };
+ };
+
+ ti_csi2rx2: ticsi2rx@4520000 {
+ compatible = "ti,j721e-csi2rx-shim";
+ reg = <0x00 0x04520000 0x00 0x00001000>;
+ ranges;
+ #address-cells = <2>;
+ #size-cells = <2>;
+ dmas = <&main_bcdma_csi 0 0x4980 0>;
+ dma-names = "rx0";
+ power-domains = <&k3_pds 74 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+
+ cdns_csi2rx2: csi-bridge@4524000 {
+ compatible = "ti,j721e-csi2rx", "cdns,csi2rx";
+ reg = <0x00 0x04524000 0x00 0x00001000>;
+ clocks = <&k3_clks 74 2>, <&k3_clks 74 0>, <&k3_clks 74 2>,
+ <&k3_clks 74 2>, <&k3_clks 74 3>, <&k3_clks 74 3>;
+ clock-names = "sys_clk", "p_clk", "pixel_if0_clk",
+ "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk";
+ phys = <&dphy2>;
+ phy-names = "dphy";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi2_port0: port@0 {
+ reg = <0>;
+ status = "disabled";
+ };
+
+ csi2_port1: port@1 {
+ reg = <1>;
+ status = "disabled";
+ };
+
+ csi2_port2: port@2 {
+ reg = <2>;
+ status = "disabled";
+ };
+
+ csi2_port3: port@3 {
+ reg = <3>;
+ status = "disabled";
+ };
+
+ csi2_port4: port@4 {
+ reg = <4>;
+ status = "disabled";
+ };
+ };
+ };
+ };
+
+ dphy0: phy@4580000 {
+ compatible = "cdns,dphy-rx";
+ reg = <0x00 0x04580000 0x00 0x00001100>;
+ #phy-cells = <0>;
+ power-domains = <&k3_pds 212 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
+
+ dphy1: phy@4590000 {
+ compatible = "cdns,dphy-rx";
+ reg = <0x00 0x04590000 0x00 0x00001100>;
+ #phy-cells = <0>;
+ power-domains = <&k3_pds 213 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
+
+ dphy2: phy@45a0000 {
+ compatible = "cdns,dphy-rx";
+ reg = <0x00 0x045a0000 0x00 0x00001100>;
+ #phy-cells = <0>;
+ power-domains = <&k3_pds 214 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
+
main_sdhci0: mmc@4f80000 {
compatible = "ti,j721e-sdhci-8bit";
reg = <0x00 0x04f80000 0x00 0x1000>,
@@ -1224,7 +1406,6 @@ main_bcdma_csi: dma-controller@311a0000 {
ti,sci-dev-id = <281>;
ti,sci-rm-range-rchan = <0x21>;
ti,sci-rm-range-tchan = <0x22>;
- status = "disabled";
};

cpts@310d0000 {
--
2.34.1


2024-02-20 03:57:00

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH v4 0/9] Add CSI2RX capture support on TI J7 platforms

Hi Vaishnav Achath,

On Thu, 15 Feb 2024 14:25:09 +0530, Vaishnav Achath wrote:
> This series adds support for CSI2RX capture support on J7 platforms,
> series was tested for CSI2RX capture on OV5640 sensor and RPI camera
> v2 IMX219 sensor on J721e Common Processor Board, J721E Starter kit,
> J721S2 Common Processor Board, AM68 Starter Kit, J784s4 EVM and AM69
> Starter kit.
>
> V1: https://lore.kernel.org/all/[email protected]/
> V2: https://lore.kernel.org/all/[email protected]/
> V3: https://lore.kernel.org/all/[email protected]/
>
> [...]

I have applied the following to branch ti-k3-dts-next on [1].
Thank you!

[1/9] arm64: dts: ti: k3-j721s2-common-proc-board: Enable camera peripherals
commit: f00c6ead159fb028ac989916ed2999bac2f7d43b
[2/9] arm64: dts: ti: k3-j784s4-evm: Enable camera peripherals
commit: fa646b7096708db6d87b43bedefaddc7c605a9bf
[3/9] arm64: dts: ti: k3-am68-sk-base-board: Enable camera peripherals
commit: 5dcc1aaf0b7aa861bf9cfd48a9db46a4a3b2d47a
[4/9] arm64: dts: ti: k3-am69-sk: Enable camera peripherals
commit: 12d82b15b94c2b44bee7c8c90682850d3ad9b120
[5/9] arm64: dts: ti: k3-j721e-sk: Model CSI2RX connector mux
commit: f87c88947396674586a42a163b72efa3999e3dee
[6/9] arm64: dts: ti: k3-j721e-main: Add CSI2RX capture nodes
commit: 491821cebcf5cfa86dbc6bbf03f45322dea31b11
[7/9] arm64: dts: ti: k3-j721s2-main: Add CSI2RX capture nodes
commit: 6aac91999ede6e855694cdb673a901bb7305c214
[8/9] arm64: dts: ti: k3-j784s4-main: Add CSI2RX capture nodes
commit: 2ba8f21a74b7e75fd1af9ad9ccdbacaf43fe10e4
[9/9] arm64: dts: ti: k3-j721e-sk: Add overlay for IMX219
commit: f767eb9180967c2961d47955dc1a3d099819f244

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
--
Vignesh