.../boot/dts/amlogic/amlogic-c3-c308l-aw419.dts | 84 +++++++++++++++++++++ arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi | 88 ++++++++++++++++++++++ 2 files changed, 172 insertions(+)
From: Keke Li <keke.li@amlogic.com>
Add the IMX290 sensor node description to the device tree file,
which will be controlled via I2C bus with image data transmission
through MIPI CSI-2 interface.
Add CSI-2, adapter and ISP nodes for C3 family.
Signed-off-by: Keke Li <keke.li@amlogic.com>
---
The C3 ISP driver and device-tree bindings have been
submitted. To facilitate using the C3 ISP driver, the
related device nodes need to be added.
---
.../boot/dts/amlogic/amlogic-c3-c308l-aw419.dts | 84 +++++++++++++++++++++
arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi | 88 ++++++++++++++++++++++
2 files changed, 172 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts b/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
index 45f8631f9feb..e026604c55e6 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
+++ b/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
@@ -17,6 +17,7 @@ / {
aliases {
serial0 = &uart_b;
spi0 = &spifc;
+ i2c2 = &i2c2;
};
memory@0 {
@@ -146,6 +147,36 @@ sdcard: regulator-sdcard {
regulator-boot-on;
regulator-always-on;
};
+
+ camera_vdddo_1v8: regulator-camera-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "CAMERA_VDDDO";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ vin-supply = <&vcc_3v3>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ camera_vdda_2v9: regulator-camera-2v9 {
+ compatible = "regulator-fixed";
+ regulator-name = "CAMERA_VDDA";
+ regulator-min-microvolt = <2900000>;
+ regulator-max-microvolt = <2900000>;
+ vin-supply = <&vcc_5v>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ camera_vddd_1v2: regulator-camera-1v2 {
+ compatible = "regulator-fixed";
+ regulator-name = "CAMERA_VDDD";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ vin-supply = <&vcc_3v3>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
};
&uart_b {
@@ -258,3 +289,56 @@ &sd {
vmmc-supply = <&sdcard>;
vqmmc-supply = <&sdcard>;
};
+
+&i2c2 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins1>;
+ clock-frequency = <100000>; /* default 100k */
+
+ imx290: sensor0@1a {
+ compatible = "sony,imx290";
+ reg = <0x1a>;
+ clocks = <&clkc_pll CLKID_MCLK0>;
+ clock-names = "xclk";
+ clock-frequency = <37125000>;
+ assigned-clocks = <&clkc_pll CLKID_MCLK_PLL>,
+ <&clkc_pll CLKID_MCLK0>;
+ assigned-clock-rates = <74250000>, <37125000>;
+
+ vdddo-supply = <&camera_vdddo_1v8>;
+ vdda-supply = <&camera_vdda_2v9>;
+ vddd-supply = <&camera_vddd_1v2>;
+
+ reset-gpios = <&gpio GPIOE_4 GPIO_ACTIVE_LOW>;
+
+ port {
+ imx290_out: endpoint {
+ data-lanes = <1 2 3 4>;
+ link-frequencies = /bits/ 64 <222750000 148500000>;
+ remote-endpoint = <&c3_mipi_csi_in>;
+ };
+ };
+ };
+};
+
+&csi2 {
+ status = "okay";
+
+ ports {
+ port@0 {
+ c3_mipi_csi_in: endpoint {
+ remote-endpoint = <&imx290_out>;
+ data-lanes = <1 2 3 4>;
+ };
+ };
+ };
+};
+
+&adap {
+ status = "okay";
+};
+
+&isp {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
index cb9ea3ca6ee0..a62fd8534209 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
@@ -992,5 +992,93 @@ mdio0: mdio {
#size-cells = <0>;
};
};
+
+ csi2: csi2@ff018000 {
+ compatible = "amlogic,c3-mipi-csi2";
+ reg = <0x0 0xff018000 0x0 0x100>,
+ <0x0 0xff019000 0x0 0x300>,
+ <0x0 0xff01a000 0x0 0x100>;
+ reg-names = "aphy", "dphy", "host";
+ power-domains = <&pwrc PWRC_C3_MIPI_ISP_WRAP_ID>;
+ clocks = <&clkc_periphs CLKID_VAPB>,
+ <&clkc_periphs CLKID_CSI_PHY0>;
+ clock-names = "vapb", "phy0";
+ assigned-clocks = <&clkc_periphs CLKID_VAPB>,
+ <&clkc_periphs CLKID_CSI_PHY0>;
+ assigned-clock-rates = <0>, <200000000>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ };
+
+ port@1 {
+ reg = <1>;
+ c3_mipi_csi_out: endpoint {
+ remote-endpoint = <&c3_adap_in>;
+ };
+ };
+ };
+ };
+
+ adap: adap@ff010000 {
+ compatible = "amlogic,c3-mipi-adapter";
+ reg = <0x0 0xff010000 0x0 0x100>,
+ <0x0 0xff01b000 0x0 0x100>,
+ <0x0 0xff01d000 0x0 0x200>;
+ reg-names = "top", "fd", "rd";
+ power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
+ clocks = <&clkc_periphs CLKID_VAPB>,
+ <&clkc_periphs CLKID_ISP0>;
+ clock-names = "vapb", "isp0";
+ assigned-clocks = <&clkc_periphs CLKID_VAPB>,
+ <&clkc_periphs CLKID_ISP0>;
+ assigned-clock-rates = <0>, <400000000>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ c3_adap_in: endpoint {
+ remote-endpoint = <&c3_mipi_csi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ c3_adap_out: endpoint {
+ remote-endpoint = <&c3_isp_in>;
+ };
+ };
+ };
+ };
+
+ isp: isp@ff000000 {
+ compatible = "amlogic,c3-isp";
+ reg = <0x0 0xff000000 0x0 0xf000>;
+ reg-names = "isp";
+ power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
+ clocks = <&clkc_periphs CLKID_VAPB>,
+ <&clkc_periphs CLKID_ISP0>;
+ clock-names = "vapb", "isp0";
+ assigned-clocks = <&clkc_periphs CLKID_VAPB>,
+ <&clkc_periphs CLKID_ISP0>;
+ assigned-clock-rates = <0>, <400000000>;
+ interrupts = <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>;
+ status = "disabled";
+
+ port {
+ c3_isp_in: endpoint {
+ remote-endpoint = <&c3_adap_out>;
+ };
+ };
+ };
};
};
---
base-commit: 84b92a499e7eca54ba1df6f6c6e01766025943f1
change-id: 20250731-b4-c3isp-16531391a1cb
Best regards,
--
Keke Li <keke.li@amlogic.com>
Hi,
On Thu, 18 Sep 2025 16:35:09 +0800, Keke Li wrote:
> Add the IMX290 sensor node description to the device tree file,
> which will be controlled via I2C bus with image data transmission
> through MIPI CSI-2 interface.
>
> Add CSI-2, adapter and ISP nodes for C3 family.
>
>
> [...]
Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.19/arm64-dt)
[1/1] dts: arm64: amlogic: Add ISP related nodes for C3
https://git.kernel.org/amlogic/c/63aa70a1f84f5dfabbac28d60e12949705876648
These changes has been applied on the intermediate git tree [1].
The v6.19/arm64-dt branch will then be sent via a formal Pull Request to the Linux SoC maintainers
for inclusion in their intermediate git branches in order to be sent to Linus during
the next merge window, or sooner if it's a set of fixes.
In the cases of fixes, those will be merged in the current release candidate
kernel and as soon they appear on the Linux master branch they will be
backported to the previous Stable and Long-Stable kernels [2].
The intermediate git branches are merged daily in the linux-next tree [3],
people are encouraged testing these pre-release kernels and report issues on the
relevant mailing-lists.
If problems are discovered on those changes, please submit a signed-off-by revert
patch followed by a corrective changeset.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
--
Neil
On 18/09/2025 10:35, Keke Li via B4 Relay wrote:
> From: Keke Li <keke.li@amlogic.com>
>
> Add the IMX290 sensor node description to the device tree file,
> which will be controlled via I2C bus with image data transmission
> through MIPI CSI-2 interface.
>
> Add CSI-2, adapter and ISP nodes for C3 family.
>
> Signed-off-by: Keke Li <keke.li@amlogic.com>
> ---
> The C3 ISP driver and device-tree bindings have been
> submitted. To facilitate using the C3 ISP driver, the
> related device nodes need to be added.
No need to resend until the bindings are merged.
Neil
> ---
> .../boot/dts/amlogic/amlogic-c3-c308l-aw419.dts | 84 +++++++++++++++++++++
> arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi | 88 ++++++++++++++++++++++
> 2 files changed, 172 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts b/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
> index 45f8631f9feb..e026604c55e6 100644
> --- a/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
> +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
> @@ -17,6 +17,7 @@ / {
> aliases {
> serial0 = &uart_b;
> spi0 = &spifc;
> + i2c2 = &i2c2;
> };
>
> memory@0 {
> @@ -146,6 +147,36 @@ sdcard: regulator-sdcard {
> regulator-boot-on;
> regulator-always-on;
> };
> +
> + camera_vdddo_1v8: regulator-camera-1v8 {
> + compatible = "regulator-fixed";
> + regulator-name = "CAMERA_VDDDO";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + vin-supply = <&vcc_3v3>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + camera_vdda_2v9: regulator-camera-2v9 {
> + compatible = "regulator-fixed";
> + regulator-name = "CAMERA_VDDA";
> + regulator-min-microvolt = <2900000>;
> + regulator-max-microvolt = <2900000>;
> + vin-supply = <&vcc_5v>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + camera_vddd_1v2: regulator-camera-1v2 {
> + compatible = "regulator-fixed";
> + regulator-name = "CAMERA_VDDD";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + vin-supply = <&vcc_3v3>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> };
>
> &uart_b {
> @@ -258,3 +289,56 @@ &sd {
> vmmc-supply = <&sdcard>;
> vqmmc-supply = <&sdcard>;
> };
> +
> +&i2c2 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c2_pins1>;
> + clock-frequency = <100000>; /* default 100k */
> +
> + imx290: sensor0@1a {
> + compatible = "sony,imx290";
> + reg = <0x1a>;
> + clocks = <&clkc_pll CLKID_MCLK0>;
> + clock-names = "xclk";
> + clock-frequency = <37125000>;
> + assigned-clocks = <&clkc_pll CLKID_MCLK_PLL>,
> + <&clkc_pll CLKID_MCLK0>;
> + assigned-clock-rates = <74250000>, <37125000>;
> +
> + vdddo-supply = <&camera_vdddo_1v8>;
> + vdda-supply = <&camera_vdda_2v9>;
> + vddd-supply = <&camera_vddd_1v2>;
> +
> + reset-gpios = <&gpio GPIOE_4 GPIO_ACTIVE_LOW>;
> +
> + port {
> + imx290_out: endpoint {
> + data-lanes = <1 2 3 4>;
> + link-frequencies = /bits/ 64 <222750000 148500000>;
> + remote-endpoint = <&c3_mipi_csi_in>;
> + };
> + };
> + };
> +};
> +
> +&csi2 {
> + status = "okay";
> +
> + ports {
> + port@0 {
> + c3_mipi_csi_in: endpoint {
> + remote-endpoint = <&imx290_out>;
> + data-lanes = <1 2 3 4>;
> + };
> + };
> + };
> +};
> +
> +&adap {
> + status = "okay";
> +};
> +
> +&isp {
> + status = "okay";
> +};
> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
> index cb9ea3ca6ee0..a62fd8534209 100644
> --- a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
> @@ -992,5 +992,93 @@ mdio0: mdio {
> #size-cells = <0>;
> };
> };
> +
> + csi2: csi2@ff018000 {
> + compatible = "amlogic,c3-mipi-csi2";
> + reg = <0x0 0xff018000 0x0 0x100>,
> + <0x0 0xff019000 0x0 0x300>,
> + <0x0 0xff01a000 0x0 0x100>;
> + reg-names = "aphy", "dphy", "host";
> + power-domains = <&pwrc PWRC_C3_MIPI_ISP_WRAP_ID>;
> + clocks = <&clkc_periphs CLKID_VAPB>,
> + <&clkc_periphs CLKID_CSI_PHY0>;
> + clock-names = "vapb", "phy0";
> + assigned-clocks = <&clkc_periphs CLKID_VAPB>,
> + <&clkc_periphs CLKID_CSI_PHY0>;
> + assigned-clock-rates = <0>, <200000000>;
> + status = "disabled";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + };
> +
> + port@1 {
> + reg = <1>;
> + c3_mipi_csi_out: endpoint {
> + remote-endpoint = <&c3_adap_in>;
> + };
> + };
> + };
> + };
> +
> + adap: adap@ff010000 {
> + compatible = "amlogic,c3-mipi-adapter";
> + reg = <0x0 0xff010000 0x0 0x100>,
> + <0x0 0xff01b000 0x0 0x100>,
> + <0x0 0xff01d000 0x0 0x200>;
> + reg-names = "top", "fd", "rd";
> + power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
> + clocks = <&clkc_periphs CLKID_VAPB>,
> + <&clkc_periphs CLKID_ISP0>;
> + clock-names = "vapb", "isp0";
> + assigned-clocks = <&clkc_periphs CLKID_VAPB>,
> + <&clkc_periphs CLKID_ISP0>;
> + assigned-clock-rates = <0>, <400000000>;
> + status = "disabled";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + c3_adap_in: endpoint {
> + remote-endpoint = <&c3_mipi_csi_out>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + c3_adap_out: endpoint {
> + remote-endpoint = <&c3_isp_in>;
> + };
> + };
> + };
> + };
> +
> + isp: isp@ff000000 {
> + compatible = "amlogic,c3-isp";
> + reg = <0x0 0xff000000 0x0 0xf000>;
> + reg-names = "isp";
> + power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
> + clocks = <&clkc_periphs CLKID_VAPB>,
> + <&clkc_periphs CLKID_ISP0>;
> + clock-names = "vapb", "isp0";
> + assigned-clocks = <&clkc_periphs CLKID_VAPB>,
> + <&clkc_periphs CLKID_ISP0>;
> + assigned-clock-rates = <0>, <400000000>;
> + interrupts = <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>;
> + status = "disabled";
> +
> + port {
> + c3_isp_in: endpoint {
> + remote-endpoint = <&c3_adap_out>;
> + };
> + };
> + };
> };
> };
>
> ---
> base-commit: 84b92a499e7eca54ba1df6f6c6e01766025943f1
> change-id: 20250731-b4-c3isp-16531391a1cb
>
> Best regards,
Hi Neil
Thanks for your reply.
On 2025/9/19 22:43, Neil Armstrong wrote:
> [You don't often get email from neil.armstrong@linaro.org. Learn why
> this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> [ EXTERNAL EMAIL ]
>
> On 18/09/2025 10:35, Keke Li via B4 Relay wrote:
>> From: Keke Li <keke.li@amlogic.com>
>>
>> Add the IMX290 sensor node description to the device tree file,
>> which will be controlled via I2C bus with image data transmission
>> through MIPI CSI-2 interface.
>>
>> Add CSI-2, adapter and ISP nodes for C3 family.
>>
>> Signed-off-by: Keke Li <keke.li@amlogic.com>
>> ---
>> The C3 ISP driver and device-tree bindings have been
>> submitted. To facilitate using the C3 ISP driver, the
>> related device nodes need to be added.
>
> No need to resend until the bindings are merged.
>
> Neil
>
https://lore.kernel.org/all/20250427-c3isp-v9-1-e0fe09433d94@amlogic.com/
https://lore.kernel.org/all/20250427-c3isp-v9-3-e0fe09433d94@amlogic.com/
https://lore.kernel.org/all/20250427-c3isp-v9-5-e0fe09433d94@amlogic.com/
The device-tree bindings for C3 ISP have been merged into the Linux
kernel v6.16.
Thanks.
>> ---
>> .../boot/dts/amlogic/amlogic-c3-c308l-aw419.dts | 84
>> +++++++++++++++++++++
>> arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi | 88
>> ++++++++++++++++++++++
>> 2 files changed, 172 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
>> b/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
>> index 45f8631f9feb..e026604c55e6 100644
>> --- a/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
>> +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts
>> @@ -17,6 +17,7 @@ / {
>> aliases {
>> serial0 = &uart_b;
>> spi0 = &spifc;
>> + i2c2 = &i2c2;
>> };
>>
>> memory@0 {
>> @@ -146,6 +147,36 @@ sdcard: regulator-sdcard {
>> regulator-boot-on;
>> regulator-always-on;
>> };
>> +
>> + camera_vdddo_1v8: regulator-camera-1v8 {
>> + compatible = "regulator-fixed";
>> + regulator-name = "CAMERA_VDDDO";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <1800000>;
>> + vin-supply = <&vcc_3v3>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> +
>> + camera_vdda_2v9: regulator-camera-2v9 {
>> + compatible = "regulator-fixed";
>> + regulator-name = "CAMERA_VDDA";
>> + regulator-min-microvolt = <2900000>;
>> + regulator-max-microvolt = <2900000>;
>> + vin-supply = <&vcc_5v>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> +
>> + camera_vddd_1v2: regulator-camera-1v2 {
>> + compatible = "regulator-fixed";
>> + regulator-name = "CAMERA_VDDD";
>> + regulator-min-microvolt = <1200000>;
>> + regulator-max-microvolt = <1200000>;
>> + vin-supply = <&vcc_3v3>;
>> + regulator-boot-on;
>> + regulator-always-on;
>> + };
>> };
>>
>> &uart_b {
>> @@ -258,3 +289,56 @@ &sd {
>> vmmc-supply = <&sdcard>;
>> vqmmc-supply = <&sdcard>;
>> };
>> +
>> +&i2c2 {
>> + status = "okay";
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&i2c2_pins1>;
>> + clock-frequency = <100000>; /* default 100k */
>> +
>> + imx290: sensor0@1a {
>> + compatible = "sony,imx290";
>> + reg = <0x1a>;
>> + clocks = <&clkc_pll CLKID_MCLK0>;
>> + clock-names = "xclk";
>> + clock-frequency = <37125000>;
>> + assigned-clocks = <&clkc_pll CLKID_MCLK_PLL>,
>> + <&clkc_pll CLKID_MCLK0>;
>> + assigned-clock-rates = <74250000>, <37125000>;
>> +
>> + vdddo-supply = <&camera_vdddo_1v8>;
>> + vdda-supply = <&camera_vdda_2v9>;
>> + vddd-supply = <&camera_vddd_1v2>;
>> +
>> + reset-gpios = <&gpio GPIOE_4 GPIO_ACTIVE_LOW>;
>> +
>> + port {
>> + imx290_out: endpoint {
>> + data-lanes = <1 2 3 4>;
>> + link-frequencies = /bits/ 64 <222750000
>> 148500000>;
>> + remote-endpoint = <&c3_mipi_csi_in>;
>> + };
>> + };
>> + };
>> +};
>> +
>> +&csi2 {
>> + status = "okay";
>> +
>> + ports {
>> + port@0 {
>> + c3_mipi_csi_in: endpoint {
>> + remote-endpoint = <&imx290_out>;
>> + data-lanes = <1 2 3 4>;
>> + };
>> + };
>> + };
>> +};
>> +
>> +&adap {
>> + status = "okay";
>> +};
>> +
>> +&isp {
>> + status = "okay";
>> +};
>> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
>> b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
>> index cb9ea3ca6ee0..a62fd8534209 100644
>> --- a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
>> +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
>> @@ -992,5 +992,93 @@ mdio0: mdio {
>> #size-cells = <0>;
>> };
>> };
>> +
>> + csi2: csi2@ff018000 {
>> + compatible = "amlogic,c3-mipi-csi2";
>> + reg = <0x0 0xff018000 0x0 0x100>,
>> + <0x0 0xff019000 0x0 0x300>,
>> + <0x0 0xff01a000 0x0 0x100>;
>> + reg-names = "aphy", "dphy", "host";
>> + power-domains = <&pwrc PWRC_C3_MIPI_ISP_WRAP_ID>;
>> + clocks = <&clkc_periphs CLKID_VAPB>,
>> + <&clkc_periphs CLKID_CSI_PHY0>;
>> + clock-names = "vapb", "phy0";
>> + assigned-clocks = <&clkc_periphs CLKID_VAPB>,
>> + <&clkc_periphs CLKID_CSI_PHY0>;
>> + assigned-clock-rates = <0>, <200000000>;
>> + status = "disabled";
>> +
>> + ports {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + port@0 {
>> + reg = <0>;
>> + };
>> +
>> + port@1 {
>> + reg = <1>;
>> + c3_mipi_csi_out: endpoint {
>> + remote-endpoint =
>> <&c3_adap_in>;
>> + };
>> + };
>> + };
>> + };
>> +
>> + adap: adap@ff010000 {
>> + compatible = "amlogic,c3-mipi-adapter";
>> + reg = <0x0 0xff010000 0x0 0x100>,
>> + <0x0 0xff01b000 0x0 0x100>,
>> + <0x0 0xff01d000 0x0 0x200>;
>> + reg-names = "top", "fd", "rd";
>> + power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
>> + clocks = <&clkc_periphs CLKID_VAPB>,
>> + <&clkc_periphs CLKID_ISP0>;
>> + clock-names = "vapb", "isp0";
>> + assigned-clocks = <&clkc_periphs CLKID_VAPB>,
>> + <&clkc_periphs CLKID_ISP0>;
>> + assigned-clock-rates = <0>, <400000000>;
>> + status = "disabled";
>> +
>> + ports {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + port@0 {
>> + reg = <0>;
>> + c3_adap_in: endpoint {
>> + remote-endpoint =
>> <&c3_mipi_csi_out>;
>> + };
>> + };
>> +
>> + port@1 {
>> + reg = <1>;
>> + c3_adap_out: endpoint {
>> + remote-endpoint =
>> <&c3_isp_in>;
>> + };
>> + };
>> + };
>> + };
>> +
>> + isp: isp@ff000000 {
>> + compatible = "amlogic,c3-isp";
>> + reg = <0x0 0xff000000 0x0 0xf000>;
>> + reg-names = "isp";
>> + power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
>> + clocks = <&clkc_periphs CLKID_VAPB>,
>> + <&clkc_periphs CLKID_ISP0>;
>> + clock-names = "vapb", "isp0";
>> + assigned-clocks = <&clkc_periphs CLKID_VAPB>,
>> + <&clkc_periphs CLKID_ISP0>;
>> + assigned-clock-rates = <0>, <400000000>;
>> + interrupts = <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>;
>> + status = "disabled";
>> +
>> + port {
>> + c3_isp_in: endpoint {
>> + remote-endpoint = <&c3_adap_out>;
>> + };
>> + };
>> + };
>> };
>> };
>>
>> ---
>> base-commit: 84b92a499e7eca54ba1df6f6c6e01766025943f1
>> change-id: 20250731-b4-c3isp-16531391a1cb
>>
>> Best regards,
>
© 2016 - 2026 Red Hat, Inc.