Skip to content

Commit 28ecaaa

Browse files
changhuangliangConchuOD
authored andcommitted
riscv: dts: starfive: jh7110: Add camera subsystem nodes
Add camera subsystem nodes for the StarFive JH7110 SoC. They contain the dphy-rx, csi2rx, camss nodes. Signed-off-by: Changhuang Liang <[email protected]> Signed-off-by: Conor Dooley <[email protected]>
1 parent d065399 commit 28ecaaa

File tree

2 files changed

+116
-0
lines changed

2 files changed

+116
-0
lines changed

arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,55 @@
125125
clock-frequency = <49152000>;
126126
};
127127

128+
&camss {
129+
assigned-clocks = <&ispcrg JH7110_ISPCLK_DOM4_APB_FUNC>,
130+
<&ispcrg JH7110_ISPCLK_MIPI_RX0_PXL>;
131+
assigned-clock-rates = <49500000>, <198000000>;
132+
status = "okay";
133+
134+
ports {
135+
#address-cells = <1>;
136+
#size-cells = <0>;
137+
138+
port@0 {
139+
reg = <0>;
140+
};
141+
142+
port@1 {
143+
reg = <1>;
144+
145+
camss_from_csi2rx: endpoint {
146+
remote-endpoint = <&csi2rx_to_camss>;
147+
};
148+
};
149+
};
150+
};
151+
152+
&csi2rx {
153+
assigned-clocks = <&ispcrg JH7110_ISPCLK_VIN_SYS>;
154+
assigned-clock-rates = <297000000>;
155+
status = "okay";
156+
157+
ports {
158+
#address-cells = <1>;
159+
#size-cells = <0>;
160+
161+
port@0 {
162+
reg = <0>;
163+
164+
/* remote MIPI sensor endpoint */
165+
};
166+
167+
port@1 {
168+
reg = <1>;
169+
170+
csi2rx_to_camss: endpoint {
171+
remote-endpoint = <&camss_from_csi2rx>;
172+
};
173+
};
174+
};
175+
};
176+
128177
&gmac0 {
129178
phy-handle = <&phy0>;
130179
phy-mode = "rgmii-id";

arch/riscv/boot/dts/starfive/jh7110.dtsi

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,6 +1113,32 @@
11131113
#power-domain-cells = <1>;
11141114
};
11151115

1116+
csi2rx: csi@19800000 {
1117+
compatible = "starfive,jh7110-csi2rx", "cdns,csi2rx";
1118+
reg = <0x0 0x19800000 0x0 0x10000>;
1119+
clocks = <&ispcrg JH7110_ISPCLK_VIN_SYS>,
1120+
<&ispcrg JH7110_ISPCLK_VIN_APB>,
1121+
<&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF0>,
1122+
<&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF1>,
1123+
<&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF2>,
1124+
<&ispcrg JH7110_ISPCLK_VIN_PIXEL_IF3>;
1125+
clock-names = "sys_clk", "p_clk",
1126+
"pixel_if0_clk", "pixel_if1_clk",
1127+
"pixel_if2_clk", "pixel_if3_clk";
1128+
resets = <&ispcrg JH7110_ISPRST_VIN_SYS>,
1129+
<&ispcrg JH7110_ISPRST_VIN_APB>,
1130+
<&ispcrg JH7110_ISPRST_VIN_PIXEL_IF0>,
1131+
<&ispcrg JH7110_ISPRST_VIN_PIXEL_IF1>,
1132+
<&ispcrg JH7110_ISPRST_VIN_PIXEL_IF2>,
1133+
<&ispcrg JH7110_ISPRST_VIN_PIXEL_IF3>;
1134+
reset-names = "sys", "reg_bank",
1135+
"pixel_if0", "pixel_if1",
1136+
"pixel_if2", "pixel_if3";
1137+
phys = <&csi_phy>;
1138+
phy-names = "dphy";
1139+
status = "disabled";
1140+
};
1141+
11161142
ispcrg: clock-controller@19810000 {
11171143
compatible = "starfive,jh7110-ispcrg";
11181144
reg = <0x0 0x19810000 0x0 0x10000>;
@@ -1130,6 +1156,47 @@
11301156
power-domains = <&pwrc JH7110_PD_ISP>;
11311157
};
11321158

1159+
csi_phy: phy@19820000 {
1160+
compatible = "starfive,jh7110-dphy-rx";
1161+
reg = <0x0 0x19820000 0x0 0x10000>;
1162+
clocks = <&ispcrg JH7110_ISPCLK_M31DPHY_CFG_IN>,
1163+
<&ispcrg JH7110_ISPCLK_M31DPHY_REF_IN>,
1164+
<&ispcrg JH7110_ISPCLK_M31DPHY_TX_ESC_LAN0>;
1165+
clock-names = "cfg", "ref", "tx";
1166+
resets = <&ispcrg JH7110_ISPRST_M31DPHY_HW>,
1167+
<&ispcrg JH7110_ISPRST_M31DPHY_B09_AON>;
1168+
power-domains = <&aon_syscon JH7110_AON_PD_DPHY_RX>;
1169+
#phy-cells = <0>;
1170+
};
1171+
1172+
camss: isp@19840000 {
1173+
compatible = "starfive,jh7110-camss";
1174+
reg = <0x0 0x19840000 0x0 0x10000>,
1175+
<0x0 0x19870000 0x0 0x30000>;
1176+
reg-names = "syscon", "isp";
1177+
clocks = <&ispcrg JH7110_ISPCLK_DOM4_APB_FUNC>,
1178+
<&ispcrg JH7110_ISPCLK_ISPV2_TOP_WRAPPER_C>,
1179+
<&ispcrg JH7110_ISPCLK_DVP_INV>,
1180+
<&ispcrg JH7110_ISPCLK_VIN_P_AXI_WR>,
1181+
<&ispcrg JH7110_ISPCLK_MIPI_RX0_PXL>,
1182+
<&syscrg JH7110_SYSCLK_ISP_TOP_CORE>,
1183+
<&syscrg JH7110_SYSCLK_ISP_TOP_AXI>;
1184+
clock-names = "apb_func", "wrapper_clk_c", "dvp_inv",
1185+
"axiwr", "mipi_rx0_pxl", "ispcore_2x",
1186+
"isp_axi";
1187+
resets = <&ispcrg JH7110_ISPRST_ISPV2_TOP_WRAPPER_P>,
1188+
<&ispcrg JH7110_ISPRST_ISPV2_TOP_WRAPPER_C>,
1189+
<&ispcrg JH7110_ISPRST_VIN_P_AXI_RD>,
1190+
<&ispcrg JH7110_ISPRST_VIN_P_AXI_WR>,
1191+
<&syscrg JH7110_SYSRST_ISP_TOP>,
1192+
<&syscrg JH7110_SYSRST_ISP_TOP_AXI>;
1193+
reset-names = "wrapper_p", "wrapper_c", "axird",
1194+
"axiwr", "isp_top_n", "isp_top_axi";
1195+
power-domains = <&pwrc JH7110_PD_ISP>;
1196+
interrupts = <92>, <87>, <90>, <88>;
1197+
status = "disabled";
1198+
};
1199+
11331200
voutcrg: clock-controller@295c0000 {
11341201
compatible = "starfive,jh7110-voutcrg";
11351202
reg = <0x0 0x295c0000 0x0 0x10000>;

0 commit comments

Comments
 (0)